more working with saves, tweaked ladder, made a mug and wet floor sign

This commit is contained in:
derek
2024-12-03 16:59:21 -06:00
parent ad11da38f8
commit dd960cc00e
22 changed files with 460 additions and 153 deletions

View File

@@ -21,45 +21,45 @@ var rot_amount : float
# Called when the node enters the scene tree for the first time.
func _ready():
SignalBus.enemy_killed.connect(enemy_in_room_killed)
#SignalBus.enemy_count_changed.connect(assign_enemies)
SignalBus.game_loaded.connect(assign_elements)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if enemies.size() > 0:
#calculate move position for each child
for i in enemies:
if i.player_in_view == true:
#by number of minions determine the amount they should rotate around the player to be evenly distributed
number_enemies = enemies.size()
#return current array index
var enemy_rot_amount = enemies.find(i) * deg_to_rad(360 / number_enemies)
var player_pos = i.player.global_transform.origin
var enemy_pos = player_pos + Vector3(4,0,0)
var nav_pos : Vector3
nav_pos.x = player_pos.x + (enemy_pos.x-player_pos.x)*cos(enemy_rot_amount) - (enemy_pos.z-player_pos.z)*sin(enemy_rot_amount)
nav_pos.z = player_pos.z + (enemy_pos.x-player_pos.x)*sin(enemy_rot_amount) - (enemy_pos.z-player_pos.z)*cos(enemy_rot_amount)
i.nav_agent.set_target_position(nav_pos)
var next_nav_point = i.nav_agent.get_next_path_position()
i.hive_velocity = (next_nav_point - i.global_transform.origin).normalized() * i.SPEED
elif i.player_in_view != true and i.player_last_seen != null:
i.nav_agent.set_target_position(i.player_last_seen)
var next_nav_point = i.nav_agent.get_next_path_position()
i.hive_velocity = (next_nav_point - i.global_transform.origin).normalized() * i.SPEED
# loot on last enemy
if enemies.size() == 1:
if GameGlobals.game_loaded:
if enemies.size() > 0:
#calculate move position for each child
for i in enemies:
i.loot_amount = 20 #assign loot to the last enemy drop from this section
i.last_enemy = true
else:
enemy_in_room_killed()
if i.player_in_view == true:
#by number of minions determine the amount they should rotate around the player to be evenly distributed
number_enemies = enemies.size()
#return current array index
var enemy_rot_amount = enemies.find(i) * deg_to_rad(360 / number_enemies)
var player_pos = i.player.global_transform.origin
var enemy_pos = player_pos + Vector3(4,0,0)
var nav_pos : Vector3
nav_pos.x = player_pos.x + (enemy_pos.x-player_pos.x)*cos(enemy_rot_amount) - (enemy_pos.z-player_pos.z)*sin(enemy_rot_amount)
nav_pos.z = player_pos.z + (enemy_pos.x-player_pos.x)*sin(enemy_rot_amount) - (enemy_pos.z-player_pos.z)*cos(enemy_rot_amount)
i.nav_agent.set_target_position(nav_pos)
var next_nav_point = i.nav_agent.get_next_path_position()
i.hive_velocity = (next_nav_point - i.global_transform.origin).normalized() * i.SPEED
elif i.player_in_view != true and i.player_last_seen != null:
i.nav_agent.set_target_position(i.player_last_seen)
var next_nav_point = i.nav_agent.get_next_path_position()
i.hive_velocity = (next_nav_point - i.global_transform.origin).normalized() * i.SPEED
# loot on last enemy
if enemies.size() == 1:
for i in enemies:
i.loot_amount = 20 #assign loot to the last enemy drop from this section
i.last_enemy = true
else:
enemy_in_room_killed()
func assign_enemies():
func assign_elements():
for i in self.get_children():
if i.is_in_group("enemy"):
enemies.append(i)
@@ -69,6 +69,7 @@ func assign_enemies():
room_checks.append(i)
i.room_entered.connect(room_entered)
i.room_exited.connect(room_exited)
print("ENEMIES IN ROOM - ",enemies)
func enemy_in_room_killed():
var enemy_count = 0