11extends VBoxContainer
22
33var _start_time = - 1
4- var _level = GlobalScene .get_param (
5- "level" , preload ( "res://scripts/levels.gd" ). LEVELS [ 0 ] )
4+ var _level = GlobalScene .get_param ("level" ). new ( ArrayModel . new (
5+ GlobalScene . get_param ( "size" ), GlobalScene . get_param ( "data_type" )) )
66
77func _ready ():
88 set_process (false )
9- $ HUDBorder/HUD/Level .text = _level .new (ArrayModel .new ()).NAME
9+ $ HUDBorder/HUD/Level .text = _level .NAME
10+ _level .connect ("done" , self , "_on_Level_done" )
1011
1112func _process (delta ):
1213 $ HUDBorder/HUD/Score .text = "%.3f " % get_score ()
@@ -15,11 +16,8 @@ func _on_Timer_timeout():
1516 set_process (true )
1617 _start_time = OS .get_ticks_msec ()
1718 $ Display/Label .queue_free () # Delete ready text
18- var level = _level .new (ArrayModel .new (
19- GlobalScene .get_param ("size" , ArrayModel .DEFAULT_SIZE )))
20- level .connect ("done" , self , "_on_Level_done" , [level ])
21- $ Display .add_child (ArrayView .new (level ))
22- level .set_process_input (true )
19+ $ Display .add_child (ArrayView .new (_level ))
20+ _level .set_process_input (true )
2321
2422func get_score ():
2523 return stepify ((OS .get_ticks_msec () - _start_time ) / 1000.0 , 0.001 )
@@ -28,7 +26,7 @@ func _input(event):
2826 if event .is_action_pressed ("ui_cancel" ):
2927 _on_Button_pressed ("levels" )
3028
31- func _on_Level_done (level ):
29+ func _on_Level_done ():
3230 set_process (false )
3331 var time = get_score ()
3432 var restart = Button .new ()
@@ -41,6 +39,10 @@ func _on_Level_done(level):
4139 back .connect ("pressed" , self , "_on_Button_pressed" , ["levels" ])
4240 var score = Label .new ()
4341 score .text = "%.3f " % time
42+ if GlobalScene .get_param ("data_type" ) != ArrayModel .DATA_TYPES .RANDOM_UNIQUE :
43+ score .text += " (only random unique data counts toward a high score!)"
44+ else :
45+ GlobalScore .save_score (_level .NAME , _level .array .size , time )
4446 score .align = Label .ALIGN_RIGHT
4547 score .size_flags_horizontal = Control .SIZE_EXPAND_FILL
4648 $ HUDBorder/HUD/Level .queue_free ()
@@ -50,8 +52,9 @@ func _on_Level_done(level):
5052 $ HUDBorder/HUD .add_child (back )
5153 $ HUDBorder/HUD .add_child (score )
5254 restart .grab_focus ()
53- GlobalScore .save_score (level .NAME , level .array .size , time )
5455
5556func _on_Button_pressed (scene ):
5657 GlobalScene .change_scene ("res://scenes/" + scene + ".tscn" ,
57- {"level" : _level , "size" : GlobalScene .get_param ("size" )})
58+ {"level" : GlobalScene .get_param ("level" ),
59+ "size" : GlobalScene .get_param ("size" ),
60+ "data_type" : GlobalScene .get_param ("data_type" )})
0 commit comments