From a62cd6018e89594a7b225fc93ddb640f40e03270 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Tue, 14 May 2024 19:05:47 +0100 Subject: [PATCH] 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. --- entities/bee/states/bee_gather.gd | 2 +- entities/bee/states/bee_returning.gd | 2 +- entities/scripts/bee.gd | 6 ++-- levels/rules/level_1_rules.tres | 2 +- levels/rules/level_2_rules.tres | 2 +- levels/rules/level_3_rules.tres | 2 +- levels/rules/level_4_rules.tres | 2 +- levels/rules/level_5_rules.tres | 2 +- levels/rules/level_6_rules.tres | 2 +- utility/game_state.gd | 42 +++++++++++++++++++--------- 10 files changed, 40 insertions(+), 24 deletions(-) diff --git a/entities/bee/states/bee_gather.gd b/entities/bee/states/bee_gather.gd index 0cadee2..fd4e6f9 100644 --- a/entities/bee/states/bee_gather.gd +++ b/entities/bee/states/bee_gather.gd @@ -23,7 +23,7 @@ func update(_delta : float): time_at_patch += _delta if time_at_patch > 5.0: 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") else: state_transition.emit(self, "Idle") diff --git a/entities/bee/states/bee_returning.gd b/entities/bee/states/bee_returning.gd index 5bbedce..c33e6d5 100644 --- a/entities/bee/states/bee_returning.gd +++ b/entities/bee/states/bee_returning.gd @@ -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 target = get_tree().get_first_node_in_group("beehive") -func enter(_msg := {}): +func enter(_msg := {}) -> void: Log.pr("Returning to the hive") bee.bee_position_animation.play("Flying") diff --git a/entities/scripts/bee.gd b/entities/scripts/bee.gd index 0f8abe0..cd6f2f7 100644 --- a/entities/scripts/bee.gd +++ b/entities/scripts/bee.gd @@ -56,14 +56,14 @@ func get_next_target(): Log.pr("No previous drone") return null -func deposit_nectar(): +func deposit_nectar() -> void: if nectar > 0: - GameState.add_nectar() + GameState.add_nectar(nectar) nectar = 0 latest_target_director = 0 just_gathering = false -func die(): +func die() -> void: # Move to the death state fsm.force_change_state("Death") diff --git a/levels/rules/level_1_rules.tres b/levels/rules/level_1_rules.tres index dfebbbd..4fb0bee 100644 --- a/levels/rules/level_1_rules.tres +++ b/levels/rules/level_1_rules.tres @@ -8,7 +8,7 @@ level_number = 1 level_name = "Level One" level_description = "Basic game introduction" bees_available = 40 -nectar_required = 40 +nectar_required = 400 level_par = 2 collector_enabled = true dancer_enabled = true diff --git a/levels/rules/level_2_rules.tres b/levels/rules/level_2_rules.tres index 6c7f342..e321636 100644 --- a/levels/rules/level_2_rules.tres +++ b/levels/rules/level_2_rules.tres @@ -8,7 +8,7 @@ level_number = 2 level_name = "Level Two" level_description = "Hazard introduction - pesticide" bees_available = 40 -nectar_required = 80 +nectar_required = 800 level_par = 3 collector_enabled = true dancer_enabled = true diff --git a/levels/rules/level_3_rules.tres b/levels/rules/level_3_rules.tres index 086de8e..75cec6b 100644 --- a/levels/rules/level_3_rules.tres +++ b/levels/rules/level_3_rules.tres @@ -8,7 +8,7 @@ level_number = 3 level_name = "Level Three" level_description = "Hazard introduction - more pesticide!" bees_available = 60 -nectar_required = 100 +nectar_required = 1000 level_par = 4 collector_enabled = true dancer_enabled = true diff --git a/levels/rules/level_4_rules.tres b/levels/rules/level_4_rules.tres index 723ca22..742c748 100644 --- a/levels/rules/level_4_rules.tres +++ b/levels/rules/level_4_rules.tres @@ -8,7 +8,7 @@ level_number = 4 level_name = "Level Four" level_description = "Hazard introduction - it's a dog!" bees_available = 60 -nectar_required = 100 +nectar_required = 1000 level_par = 3 collector_enabled = true dancer_enabled = true diff --git a/levels/rules/level_5_rules.tres b/levels/rules/level_5_rules.tres index 6ebc2e8..5bac148 100644 --- a/levels/rules/level_5_rules.tres +++ b/levels/rules/level_5_rules.tres @@ -8,7 +8,7 @@ level_number = 5 level_name = "Level Five" level_description = "Serious Business" bees_available = 100 -nectar_required = 200 +nectar_required = 2000 level_par = 5 collector_enabled = true dancer_enabled = true diff --git a/levels/rules/level_6_rules.tres b/levels/rules/level_6_rules.tres index acc15d6..e7255e2 100644 --- a/levels/rules/level_6_rules.tres +++ b/levels/rules/level_6_rules.tres @@ -8,7 +8,7 @@ level_number = 6 level_name = "Level Six" level_description = "Serious Business" bees_available = 120 -nectar_required = 300 +nectar_required = 3000 level_par = 6 collector_enabled = true dancer_enabled = true diff --git a/utility/game_state.gd b/utility/game_state.gd index a00ccd5..2ddaf0b 100644 --- a/utility/game_state.gd +++ b/utility/game_state.gd @@ -1,7 +1,7 @@ class_name GameStateManager extends Node ## 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 @@ -13,8 +13,23 @@ var level_started : bool = false var level_complete : 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 snail_spawn_interval : float = 10.0 var gathered_nectar : int = 0 : get: @@ -50,26 +65,27 @@ var judge_level_par : int = 0 : else: return 0 -func _process(delta): +func _process(delta) -> void: if level_started and !level_complete and !game_over: level_timer += delta -func bee_died(): +func bee_died() -> void: dead_bees += 1 -func add_nectar(): - gathered_nectar += 1 +# Add the nectar to the total gathered nectar +func add_nectar(nectar : int) -> void: + gathered_nectar += nectar -func add_drone(): +func add_drone() -> void: drones_used += 1 -func remove_drone(): +func remove_drone() -> void: drones_used -= 1 -func game_start(): +func game_start() -> void: level_started = true -func game_win(): +func game_win() -> void: Log.pr("Game win") level_complete = true HighScoreMgr.add_honey(gathered_nectar) @@ -77,13 +93,13 @@ func game_win(): HighScoreMgr.add_dead_bees(dead_bees) HighScoreMgr.save() -func game_lose(): +func game_lose() -> void: Log.pr("Game lose") game_over = true HighScoreMgr.add_dead_bees(dead_bees) HighScoreMgr.save() -func reset(): +func reset() -> void: level_timer = 0.0 level_started = false level_complete = false @@ -92,5 +108,5 @@ func reset(): dead_bees = 0 spawn_snails = false -func reset_cursor(): +func reset_cursor() -> void: Input.set_custom_mouse_cursor(default_cursor, Input.CURSOR_ARROW, Vector2(8, 8))