Updated bee nectar gathering and game levels

The bee's nectar gathering now depends on the current flower nectar level. The return, deposit_nectar, die, and other functions have been updated to return void. Nectar requirements for each game level have been increased tenfold. A new variable 'flower_nectar_level' has been added to manage the amount of nectar in flowers. Also, several functions in GameStateManager were updated to include specific input parameters or return void.
This commit is contained in:
Dan Baker 2024-05-14 19:05:47 +01:00
parent 513b0c92a7
commit a62cd6018e
10 changed files with 40 additions and 24 deletions

View file

@ -23,7 +23,7 @@ func update(_delta : float):
time_at_patch += _delta time_at_patch += _delta
if time_at_patch > 5.0: if time_at_patch > 5.0:
Log.pr("Gathered nectar!") Log.pr("Gathered nectar!")
bee.nectar += 1 bee.nectar += GameState.flower_nectar_level # Add nectar to the bee based on current flower nectar level
state_transition.emit(self, "Idle") state_transition.emit(self, "Idle")
else: else:
state_transition.emit(self, "Idle") state_transition.emit(self, "Idle")

View file

@ -4,7 +4,7 @@ class_name BeeReturning
@onready var bee = get_parent().get_parent() as Bee # I think this is bad but I dont care it works @onready var bee = get_parent().get_parent() as Bee # I think this is bad but I dont care it works
@onready var target = get_tree().get_first_node_in_group("beehive") @onready var target = get_tree().get_first_node_in_group("beehive")
func enter(_msg := {}): func enter(_msg := {}) -> void:
Log.pr("Returning to the hive") Log.pr("Returning to the hive")
bee.bee_position_animation.play("Flying") bee.bee_position_animation.play("Flying")

View file

@ -56,14 +56,14 @@ func get_next_target():
Log.pr("No previous drone") Log.pr("No previous drone")
return null return null
func deposit_nectar(): func deposit_nectar() -> void:
if nectar > 0: if nectar > 0:
GameState.add_nectar() GameState.add_nectar(nectar)
nectar = 0 nectar = 0
latest_target_director = 0 latest_target_director = 0
just_gathering = false just_gathering = false
func die(): func die() -> void:
# Move to the death state # Move to the death state
fsm.force_change_state("Death") fsm.force_change_state("Death")

View file

@ -8,7 +8,7 @@ level_number = 1
level_name = "Level One" level_name = "Level One"
level_description = "Basic game introduction" level_description = "Basic game introduction"
bees_available = 40 bees_available = 40
nectar_required = 40 nectar_required = 400
level_par = 2 level_par = 2
collector_enabled = true collector_enabled = true
dancer_enabled = true dancer_enabled = true

View file

@ -8,7 +8,7 @@ level_number = 2
level_name = "Level Two" level_name = "Level Two"
level_description = "Hazard introduction - pesticide" level_description = "Hazard introduction - pesticide"
bees_available = 40 bees_available = 40
nectar_required = 80 nectar_required = 800
level_par = 3 level_par = 3
collector_enabled = true collector_enabled = true
dancer_enabled = true dancer_enabled = true

View file

@ -8,7 +8,7 @@ level_number = 3
level_name = "Level Three" level_name = "Level Three"
level_description = "Hazard introduction - more pesticide!" level_description = "Hazard introduction - more pesticide!"
bees_available = 60 bees_available = 60
nectar_required = 100 nectar_required = 1000
level_par = 4 level_par = 4
collector_enabled = true collector_enabled = true
dancer_enabled = true dancer_enabled = true

View file

@ -8,7 +8,7 @@ level_number = 4
level_name = "Level Four" level_name = "Level Four"
level_description = "Hazard introduction - it's a dog!" level_description = "Hazard introduction - it's a dog!"
bees_available = 60 bees_available = 60
nectar_required = 100 nectar_required = 1000
level_par = 3 level_par = 3
collector_enabled = true collector_enabled = true
dancer_enabled = true dancer_enabled = true

View file

@ -8,7 +8,7 @@ level_number = 5
level_name = "Level Five" level_name = "Level Five"
level_description = "Serious Business" level_description = "Serious Business"
bees_available = 100 bees_available = 100
nectar_required = 200 nectar_required = 2000
level_par = 5 level_par = 5
collector_enabled = true collector_enabled = true
dancer_enabled = true dancer_enabled = true

View file

@ -8,7 +8,7 @@ level_number = 6
level_name = "Level Six" level_name = "Level Six"
level_description = "Serious Business" level_description = "Serious Business"
bees_available = 120 bees_available = 120
nectar_required = 300 nectar_required = 3000
level_par = 6 level_par = 6
collector_enabled = true collector_enabled = true
dancer_enabled = true dancer_enabled = true

View file

@ -1,7 +1,7 @@
class_name GameStateManager extends Node class_name GameStateManager extends Node
## THIS SHOULD NOT EXIST HERE BUT I AM NOT GOING TO MAKE A NEW CLASS FOR IT RIGHT NOW ## THIS SHOULD NOT EXIST HERE BUT I AM NOT GOING TO MAKE A NEW CLASS FOR IT RIGHT NOW
@onready var default_cursor = preload("res://resources/cursors/pointer_a.png") @onready var default_cursor := preload("res://resources/cursors/pointer_a.png")
var placing_drone : bool = false var placing_drone : bool = false
@ -13,8 +13,23 @@ var level_started : bool = false
var level_complete : bool = false var level_complete : bool = false
var game_over : bool = false var game_over : bool = false
## Game Rules ## Game Rules ##############################################################
# Nectar levels - Depleted by snails, increased by bee visits?? Or time, TBD
# TODO: Decide how to renew the nectar levels
# This is capped out at 10... Seems like a good amount
var flower_nectar_level : int = 10 :
get:
return flower_nectar_level
set(value):
if value > 10:
flower_nectar_level = 10
else:
flower_nectar_level = value
# Snails
var spawn_snails : bool = false var spawn_snails : bool = false
var snail_spawn_interval : float = 10.0
var gathered_nectar : int = 0 : var gathered_nectar : int = 0 :
get: get:
@ -50,26 +65,27 @@ var judge_level_par : int = 0 :
else: else:
return 0 return 0
func _process(delta): func _process(delta) -> void:
if level_started and !level_complete and !game_over: if level_started and !level_complete and !game_over:
level_timer += delta level_timer += delta
func bee_died(): func bee_died() -> void:
dead_bees += 1 dead_bees += 1
func add_nectar(): # Add the nectar to the total gathered nectar
gathered_nectar += 1 func add_nectar(nectar : int) -> void:
gathered_nectar += nectar
func add_drone(): func add_drone() -> void:
drones_used += 1 drones_used += 1
func remove_drone(): func remove_drone() -> void:
drones_used -= 1 drones_used -= 1
func game_start(): func game_start() -> void:
level_started = true level_started = true
func game_win(): func game_win() -> void:
Log.pr("Game win") Log.pr("Game win")
level_complete = true level_complete = true
HighScoreMgr.add_honey(gathered_nectar) HighScoreMgr.add_honey(gathered_nectar)
@ -77,13 +93,13 @@ func game_win():
HighScoreMgr.add_dead_bees(dead_bees) HighScoreMgr.add_dead_bees(dead_bees)
HighScoreMgr.save() HighScoreMgr.save()
func game_lose(): func game_lose() -> void:
Log.pr("Game lose") Log.pr("Game lose")
game_over = true game_over = true
HighScoreMgr.add_dead_bees(dead_bees) HighScoreMgr.add_dead_bees(dead_bees)
HighScoreMgr.save() HighScoreMgr.save()
func reset(): func reset() -> void:
level_timer = 0.0 level_timer = 0.0
level_started = false level_started = false
level_complete = false level_complete = false
@ -92,5 +108,5 @@ func reset():
dead_bees = 0 dead_bees = 0
spawn_snails = false spawn_snails = false
func reset_cursor(): func reset_cursor() -> void:
Input.set_custom_mouse_cursor(default_cursor, Input.CURSOR_ARROW, Vector2(8, 8)) Input.set_custom_mouse_cursor(default_cursor, Input.CURSOR_ARROW, Vector2(8, 8))