Update bee animations, game over component UI, and game state handling. Set up game over conditions based on the number of dead bees.
This commit is contained in:
parent
2a4a578f19
commit
f4e2169009
11 changed files with 203 additions and 37 deletions
|
|
@ -4,8 +4,11 @@ var placing_drone : bool = false
|
|||
|
||||
var level_timer : float = 0.0
|
||||
|
||||
var level_number : int = 0
|
||||
|
||||
var level_started : bool = false
|
||||
var level_complete : bool = false
|
||||
var game_over : bool = false
|
||||
|
||||
var gathered_nectar : int = 0 :
|
||||
get:
|
||||
|
|
@ -15,9 +18,17 @@ var gathered_nectar : int = 0 :
|
|||
if gathered_nectar > required_nectar and !level_complete:
|
||||
game_win()
|
||||
|
||||
@export var required_nectar : int = 100
|
||||
@export var level_par : int = 2
|
||||
@export var drones_used : int = 0
|
||||
var required_nectar : int = 100
|
||||
var level_par : int = 2
|
||||
var drones_used : int = 0
|
||||
var bees_available : int = 0
|
||||
var dead_bees : int = 0 :
|
||||
get:
|
||||
return dead_bees
|
||||
set(value):
|
||||
dead_bees = value
|
||||
if dead_bees >= bees_available and !game_over:
|
||||
game_lose()
|
||||
|
||||
var level_points : int = 0 :
|
||||
get:
|
||||
|
|
@ -34,9 +45,12 @@ var judge_level_par : int = 0 :
|
|||
return 0
|
||||
|
||||
func _process(delta):
|
||||
if level_started and !level_complete:
|
||||
if level_started and !level_complete and !game_over:
|
||||
level_timer += delta
|
||||
|
||||
func bee_died():
|
||||
dead_bees += 1
|
||||
|
||||
func add_nectar():
|
||||
gathered_nectar += 1
|
||||
|
||||
|
|
@ -53,10 +67,15 @@ func game_win():
|
|||
Log.pr("Game win")
|
||||
level_complete = true
|
||||
HighScoreMgr.add_honey(gathered_nectar)
|
||||
# get_tree().paused = true
|
||||
HighScoreMgr.update_highscore(level_number, level_points)
|
||||
HighScoreMgr.add_dead_bees(dead_bees)
|
||||
HighScoreMgr.save()
|
||||
|
||||
func game_lose():
|
||||
pass
|
||||
Log.pr("Game lose")
|
||||
game_over = true
|
||||
HighScoreMgr.add_dead_bees(dead_bees)
|
||||
HighScoreMgr.save()
|
||||
|
||||
func reset():
|
||||
level_timer = 0.0
|
||||
|
|
@ -64,3 +83,4 @@ func reset():
|
|||
level_complete = false
|
||||
gathered_nectar = 0
|
||||
drones_used = 0
|
||||
dead_bees = 0
|
||||
|
|
|
|||
|
|
@ -33,7 +33,28 @@ func load():
|
|||
|
||||
func add_honey(honey : int):
|
||||
loaded_data.total_honey_collected += honey
|
||||
save()
|
||||
|
||||
func add_dead_bees(dead : int):
|
||||
loaded_data.total_bees_killed += dead
|
||||
|
||||
func update_highscore(level : int, points : int) -> void:
|
||||
var current_highscore = get_level_highscore(level)
|
||||
|
||||
if points > current_highscore:
|
||||
match level:
|
||||
1:
|
||||
loaded_data.level_1_score = points
|
||||
2:
|
||||
loaded_data.level_2_score = points
|
||||
3:
|
||||
loaded_data.level_3_score = points
|
||||
4:
|
||||
loaded_data.level_4_score = points
|
||||
5:
|
||||
loaded_data.level_5_score = points
|
||||
6:
|
||||
loaded_data.level_6_score = points
|
||||
pass
|
||||
|
||||
func debug_save_high_score():
|
||||
loaded_data.level_1_score = 3000
|
||||
|
|
@ -41,3 +62,20 @@ func debug_save_high_score():
|
|||
|
||||
func debug_output():
|
||||
Log.pr("High Scores", loaded_data.level_1_score)
|
||||
|
||||
func get_level_highscore(level : int) -> int:
|
||||
match level:
|
||||
1:
|
||||
return loaded_data.level_1_score
|
||||
2:
|
||||
return loaded_data.level_2_score
|
||||
3:
|
||||
return loaded_data.level_3_score
|
||||
4:
|
||||
return loaded_data.level_4_score
|
||||
5:
|
||||
return loaded_data.level_5_score
|
||||
6:
|
||||
return loaded_data.level_6_score
|
||||
|
||||
return 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue