extends Resource class_name MajorityJudgmentGrading """ An ordered list of grades, from worst to best. It's VERY IMPORTANT that the grades be NON-AMBIGUOUS, that everyone would sort the grades in the same order if they were given shuffled. """ # Array of MajorityJudgmentGrade # From worst to best export(Array) var grades:Array setget set_grades, get_grades static func make_empty(): return load("res://addons/majority_judgment/MajorityJudgmentGrading.gd").new() static func make_quality_6(): var grading = make_empty() grading.set_grades([ MajorityJudgmentGrade.make("To Reject"), MajorityJudgmentGrade.make("Poor"), MajorityJudgmentGrade.make("Passable"), MajorityJudgmentGrade.make("Good"), MajorityJudgmentGrade.make("Very Good"), MajorityJudgmentGrade.make("Excellent"), ]) return grading func set_grades(_grades:Array): assert(_grades, "Provide an array of MajorityJudgmentGrade") grades = _grades for i in range(grades.size()): grades[i].worth = i func get_grades() -> Array: return grades func get_colors() -> Array: assert(grades.size() == 6, "WIP") return [ Color("#e0361c"), Color("#ee6e00"), Color("#fdb200"), Color("#c6d700"), Color("#7ec239"), Color("#02ab58"), # Color("#007e3d"), ] func get_color_of_grade(grade_index:int): var colors = get_colors() grade_index = clamp(grade_index, 0, colors.size()-1) return colors[grade_index]