Monster respawns when loading save

This commit is contained in:
Rob Kelly 2025-04-22 15:26:55 -06:00
parent f560b88de8
commit 656e1d26bb
3 changed files with 13 additions and 12 deletions

View File

@ -275,7 +275,7 @@ func serialize() -> Dictionary:
} }
func deserialize(data: Dictionary) -> void: func deserialize(state: Dictionary) -> void:
@warning_ignore("unsafe_cast") @warning_ignore("unsafe_cast")
inventory.assign(data["inventory"] as Dictionary) inventory.assign(state["inventory"] as Dictionary)
#endregion #endregion

View File

@ -76,15 +76,15 @@ func on_alert_raised(new_level: int) -> void:
func on_alert_cleared() -> void: func on_alert_cleared() -> void:
# Destroy all but one grunk beasts # Destroy all grunk beasts
var beasts := World.instance.get_tree().get_nodes_in_group(BEAST_GROUP) for b: Node in World.instance.get_tree().get_nodes_in_group(BEAST_GROUP):
if not beasts: b.queue_free()
return
@warning_ignore("unsafe_cast") # And spawn one back in, if needed
var survivor := beasts.pick_random() as GrunkBeast if World.instance.manager.alert_level >= 2:
for beast: Node in beasts: spawn_beast()
if beast != survivor:
beast.queue_free()
survivor.clear_aggro()
## Set the state of spooky effects after a level is initialized & any save state is loaded.
func after_level_init() -> void:
on_alert_cleared()

View File

@ -58,6 +58,7 @@ func load_level(level: PackedScene, save: SaveState = null) -> void:
if save: if save:
save.load_to_world(self) save.load_to_world(self)
print("Done!") print("Done!")
spook_manager.after_level_init()
func on_player_death() -> void: func on_player_death() -> void: