more savegame tweaks

This commit is contained in:
derek
2024-12-02 16:24:41 -06:00
parent eee708c7f1
commit c30ccff06c
8 changed files with 60 additions and 44 deletions

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=4 uid="uid://ba0jycejax6n7"]
[gd_scene load_steps=12 format=4 uid="uid://neb8fxkrade0"]
[ext_resource type="Script" path="res://scripts/bullet_cam.gd" id="1_uvdg3"]
[ext_resource type="AudioStream" uid="uid://dqj4cx05f25jj" path="res://assets/Audio/punch-body-hard-SBA-300156881.wav" id="3_t6e3w"]
@@ -95,7 +95,7 @@ script = ExtResource("1_uvdg3")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.789394)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.789394)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.35947)
fov = 150.0
[node name="Cylinder" type="MeshInstance3D" parent="."]

View File

@@ -150,7 +150,7 @@ func die():
else:
SaveLoad.player_deaths = 1
SaveLoad.save_persistent_data()
SaveLoad.clear_save_game_data()
var deadmsg = DEAD_ANNOUNCE.instantiate()
get_parent().add_child(deadmsg)
var instance_dead = dead_player.instantiate()

View File

@@ -53,8 +53,8 @@ func _ready():
start_rotation = self.rotation
random_spread_start = random_spread_amt
ammo_current = level_control.ammo_current[gun_index]
ammo_reserve = level_control.ammo_reserve[gun_index]
#ammo_current = level_control.ammo_current[gun_index]
#ammo_reserve = level_control.ammo_reserve[gun_index]
if fire_mode == 0:

View File

@@ -49,17 +49,11 @@ var cycle_count_start
var cycle_count
var rng = RandomNumberGenerator.new()
var gun_index
#var ammo_current
var ammo_reserve
# Called when the node enters the scene tree for the first time.
func _ready():
random_spread_start = random_spread_amt
ammo_current = level_control.ammo_current[gun_index]
ammo_reserve = level_control.ammo_reserve[gun_index]
if fire_mode == 0:
cycle_count = 1
cycle_count_start = 1

View File

@@ -67,8 +67,6 @@ var bullet_array = []
var rng = RandomNumberGenerator.new()
var gun_index
var casings_chamber_last
#var ammo_current
var ammo_reserve
# Called when the node enters the scene tree for the first time.
func _ready():
@@ -76,9 +74,6 @@ func _ready():
start_rotation = self.rotation
random_spread_start = random_spread_amt
ammo_current = level_control.ammo_current[gun_index]
ammo_reserve = level_control.ammo_reserve[gun_index]
casings_chamber_last = max_ammo
casing_array = [casing0,casing1,casing2,casing3,casing4,casing5]

View File

@@ -37,11 +37,8 @@ var cycle_count
@onready var player = get_tree().current_scene.player
@onready var level_control = get_tree().current_scene
@onready var ammo_current
var rng = RandomNumberGenerator.new()
var gun_index
#var ammo_current
var ammo_reserve
# Called when the node enters the scene tree for the first time.
func _ready():
@@ -49,9 +46,6 @@ func _ready():
start_rotation = self.rotation
random_spread_start = random_spread_amt
ammo_current = level_control.ammo_current[gun_index]
ammo_reserve = level_control.ammo_reserve[gun_index]
if fire_mode == 0:
cycle_count = 1

View File

@@ -7,11 +7,16 @@ var player_deaths
var enemies_killed
#GAME DATA
var data_cleared
var player_loc
var player_rot
var player_health
var player_money
var held_guns
var current_gun
var current_ammo
var reserve_ammo
var enemies = []
## SAVE DATA PATHS
@@ -57,22 +62,46 @@ func save_game_data():
var level_control = get_tree().current_scene
var player = level_control.player
var file = FileAccess.open(game_save_path, FileAccess.WRITE)
#ASSIGN DATA TO VARIABLES
data_cleared = false
player_loc = player.global_position
player_rot = player.global_rotation
player_health = level_control.health
player_money = level_control.money
held_guns = save_resource_path(level_control.held_guns)
current_gun = level_control.current_gun_index
current_ammo = level_control.ammo_current
reserve_ammo = level_control.ammo_reserve
#SAVE DATA
file.store_var(data_cleared)
file.store_var(player_loc)
file.store_var(player_rot)
file.store_var(player_health)
file.store_var(player_money)
file.store_var(held_guns)
file.store_var(current_gun)
file.store_var(current_ammo)
file.store_var(reserve_ammo)
file.store_var(enemies)
file.close()
func clear_save_game_data():
var file = FileAccess.open(game_save_path, FileAccess.WRITE)
data_cleared = true
file.store_var(data_cleared)
file.store_var(player_loc)
file.store_var(player_rot)
file.store_var(player_health)
file.store_var(player_money)
file.store_var(held_guns)
file.store_var(current_gun)
file.store_var(current_ammo)
file.store_var(reserve_ammo)
file.store_var(enemies)
func load_save_game_data():
var level_control = get_tree().current_scene
var player = level_control.player
@@ -81,20 +110,31 @@ func load_save_game_data():
var file = FileAccess.open(game_save_path, FileAccess.READ)
#GET DATA
data_cleared = file.get_var()
if !data_cleared:
player_loc = file.get_var()
player_rot = file.get_var()
player_health = file.get_var()
player_money = file.get_var()
var held_guns_encoded = file.get_var()
held_guns = load_resource_path(held_guns_encoded)
current_gun = file.get_var()
current_ammo = file.get_var()
reserve_ammo = file.get_var()
enemies = file.get_var()
#APPLY DATA
player.global_position = player_loc
player.global_rotation = player_rot
level_control.health = player_health
level_control.money = player_money
level_control.held_guns = held_guns
player.gun.queue_free()
level_control.gun_spawn(current_gun)
level_control.ammo_current = current_ammo
level_control.ammo_reserve = reserve_ammo
file.close()
else:
print("no data saved...")
@@ -123,8 +163,6 @@ func save_resource_path(array):
var resource_path = i.resource_path
if resource_path != "":
final_array.append(resource_path)
print("Resource Path: ", resource_path)
print("FINAL ARRAY ", final_array)
return final_array
func load_resource_path(array):
@@ -132,5 +170,4 @@ func load_resource_path(array):
for i in array:
var i_loaded = load(i)
final_array.append(i_loaded)
print("loaded ",final_array)
return final_array

View File

@@ -36,7 +36,6 @@ extends Node3D
@onready var player = get_tree().current_scene.player
@onready var level_control = get_tree().current_scene
@onready var ammo_current
@onready var tracker_marker = load("res://assets/tracker_marker.tscn")
@onready var bullet : Resource = load("res://assets/tracker_bullet.tscn")
@onready var tracker_indicator_material = tracker_indicator.get_surface_override_material(0)
@@ -51,8 +50,7 @@ var cycle_count_start
var cycle_count
var rng = RandomNumberGenerator.new()
var gun_index
#var ammo_current
var ammo_reserve
const tracker_null_color = Color(0.743, 0.359, 0)
const tracker_assigned_color = Color(0, 0.853, 0)
@@ -64,8 +62,6 @@ func _ready():
tracker_check_mesh.visible = false
random_spread_start = random_spread_amt
ammo_current = level_control.ammo_current[gun_index]
ammo_reserve = level_control.ammo_reserve[gun_index]
if fire_mode == 0: