more working with saves, tweaked ladder, made a mug and wet floor sign
This commit is contained in:
@@ -48,9 +48,11 @@ func _ready():
|
||||
|
||||
##LOAD DATA
|
||||
SaveLoad.load_persistent_data()
|
||||
|
||||
#refresh_scene()
|
||||
if SaveLoad.data_cleared:
|
||||
refresh_scene()
|
||||
GameGlobals.game_loaded = true
|
||||
SignalBus.emit_signal("game_loaded")
|
||||
else:
|
||||
SaveLoad.load_save_game_data()
|
||||
|
||||
@@ -61,8 +63,6 @@ func _ready():
|
||||
if crown_target:
|
||||
crown_target.add_child(crown_spawn)
|
||||
crown_spawn.position = Vector3(0,2,0)
|
||||
else:
|
||||
get_tree().get_root().add_child(crown_spawn)
|
||||
#global randomize function
|
||||
randomize()
|
||||
|
||||
|
||||
3
scripts/game_globals.gd
Normal file
3
scripts/game_globals.gd
Normal file
@@ -0,0 +1,3 @@
|
||||
extends Node
|
||||
|
||||
var game_loaded = false
|
||||
@@ -12,6 +12,7 @@ func _process(delta):
|
||||
func _on_body_entered(body):
|
||||
if body.is_in_group("player"):
|
||||
body.is_climbing = true
|
||||
body.global_position.y += .1
|
||||
|
||||
|
||||
func _on_body_exited(body):
|
||||
|
||||
@@ -197,7 +197,7 @@ func _physics_process(delta):
|
||||
velocity.x = lerp(velocity.x, direction.x * speed, delta * 6.5) + (direction.x * DASH_SPEED)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed, delta * 6.5) + (direction.z * DASH_SPEED)
|
||||
#ladder movement
|
||||
elif is_climbing:
|
||||
elif is_climbing and !is_on_floor():
|
||||
gravity = 0.0
|
||||
if direction:
|
||||
velocity.y = -direction.z * speed * .75
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -100,7 +100,7 @@ func save_game_data():
|
||||
file.store_line(json_string)
|
||||
|
||||
file.close()
|
||||
|
||||
|
||||
save_persistent_data()
|
||||
|
||||
func clear_save_game_data():
|
||||
@@ -177,7 +177,9 @@ func load_save_game_data():
|
||||
level_control.ammo_reserve = reserve_ammo
|
||||
|
||||
file.close()
|
||||
#SignalBus.emit_signal("enemy_count_changed")
|
||||
await get_tree().create_timer(1).timeout #need to fix this
|
||||
SignalBus.emit_signal("game_loaded")
|
||||
GameGlobals.game_loaded = true
|
||||
else:
|
||||
print("no data saved...")
|
||||
|
||||
|
||||
@@ -6,3 +6,4 @@ signal enemy_hit()
|
||||
signal enemy_killed()
|
||||
signal king_killed()
|
||||
signal enemy_count_changed()
|
||||
signal game_loaded()
|
||||
|
||||
Reference in New Issue
Block a user