@@ -4,15 +4,7 @@ Common helper library for scoring functions.
44
55extends Node
66
7- const TIERS = ["F" , "D" , "C" , "B" , "A" , "S" ]
8- const COLORS = [
9- Color ("f44336" ),
10- Color ("ff9800" ),
11- Color ("ffeb3b" ),
12- Color ("4caf50" ),
13- Color ("03a9f4" ),
14- Color ("e040fb" ),
15- ]
7+ const VERSION = 0 # Increment when changing save file format
168
179var _save : Dictionary
1810
@@ -24,39 +16,19 @@ func _init():
2416
2517func get_time (name , size ):
2618 if name in _save and str (size ) in _save [name ]:
27- return _save [name ][str (size )][ 0 ]
19+ return _save [name ][str (size )]
2820 return INF
2921
30- func get_tier (name , size ):
31- if name in _save and str (size ) in _save [name ]:
32- return _save [name ][str (size )][1 ]
33- return ""
34-
35- func get_color (name , size ):
36- var tier = get_tier (name , size )
37- return Color .black if tier .empty () else COLORS [TIERS .find (tier )]
38-
39- func calculate_tier (time , moves ):
40- return TIERS [min (int (moves / time ), TIERS .size () - 1 )]
41-
42- func calculate_color (time , moves ):
43- return COLORS [TIERS .find (calculate_tier (time , moves ))]
44-
45- func save_score (name , size , time , moves ):
22+ func save_score (name , size , time ):
4623 if not name in _save :
4724 _save [name ] = {}
4825 if not str (size ) in _save [name ]:
49- _save [name ][str (size )] = [INF , "" ]
50- var prev_time = get_time (name , size )
51- var prev_tier = get_tier (name , size )
52- var tier = calculate_tier (time , moves )
53- var tier_index = TIERS .find (tier )
54- if (prev_tier .empty () or tier_index > TIERS .find (prev_tier )
55- or tier_index == TIERS .find (prev_tier ) and time < prev_time ):
56- _save [name ][str (size )] = [time , tier ]
26+ _save [name ][str (size )] = INF
27+ _save [name ][str (size )] = min (time , get_time (name , size ))
5728 _save ()
5829
5930func _save ():
31+ _save ["VERSION" ] = VERSION
6032 var file = File .new ()
6133 file .open ("user://save.json" , File .WRITE )
6234 file .store_line (to_json (_save ))
0 commit comments