added leaderboard drop down menu and started on leaderboard test

This commit is contained in:
derek
2025-02-27 17:06:49 -06:00
parent 46820fed89
commit 096b505cfa
8 changed files with 145 additions and 42 deletions

View File

@@ -13,27 +13,41 @@ var current_ammo
var reserve_ammo
## SAVE DATA PATHS
var persistent_data_save_path = "user://persistent_data.save"
func _ready() -> void:
SignalBus.shot_fired.connect(shot_fired)
func save_persistent_data():
var file = FileAccess.open("user://persistent_data.save", FileAccess.WRITE)
var file = FileAccess.open(persistent_data_save_path, FileAccess.WRITE)
file.store_var(GameGlobals.user_id)
var all_user_leaderboards_file = []
for i in GameGlobals.all_user_leaderboards:
all_user_leaderboards_file.append(GameGlobals.current_user_leaderboards)
file.store_var(GameGlobals.last_leaderboard_id)
file.store_var(GameGlobals.user_names)
file.store_var(GameGlobals.all_user_leaderboards)
file.close()
func load_persistent_data():
var file = FileAccess.open("user://persistent_data.save", FileAccess.WRITE)
GameGlobals.user_id = file.get_var()
GameGlobals.all_user_leaderboards = file.get_var()
file.close()
if FileAccess.file_exists(persistent_data_save_path):
var file = FileAccess.open(persistent_data_save_path, FileAccess.READ)
var user_id = file.get_var()
var last_leaderboard_id = file.get_var()
var user_names = file.get_var()
var all_user_leaderboards = file.get_var()
GameGlobals.user_id = str(user_id)
GameGlobals.last_leaderboard_id = str(last_leaderboard_id)
GameGlobals.user_names = user_names
GameGlobals.all_user_leaderboards = all_user_leaderboards
file.close()
else:
print("No file found...")
func save_user_data():
var user_save_path = str("user://user_",GameGlobals.user_id,"_data.save")
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.leaderboard_name),"_leaderboard","_data.save")
var file = FileAccess.open(user_save_path, FileAccess.WRITE)
#cache data before saving and creating checksum in case it changes between data saving and checksum generating
@@ -65,12 +79,19 @@ func save_user_data():
file.close()
func check_user_data_exists():
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save")
if FileAccess.file_exists(user_save_path):
return true
else:
return false
func load_user_data():
var user_save_path = str("user://user_",GameGlobals.user_id,"_data.save")
var user_save_path = str("user://user_",str(GameGlobals.user_id),"_",str(GameGlobals.all_user_leaderboards[GameGlobals.user_id][GameGlobals.last_leaderboard_id]),"_leaderboard","_data.save")
if FileAccess.file_exists(user_save_path):
var file = FileAccess.open(user_save_path, FileAccess.READ)
GameGlobals.last_hit_path = file.get_var()
GameGlobals.leaderboard_name = file.get_var()
var file_leaderboard_name = file.get_var()
GameGlobals.current_level = str(file.get_var())
var money = set_nulls_zero(file.get_var())
var deposited_money = set_nulls_zero(file.get_var())
@@ -82,6 +103,12 @@ func load_user_data():
var held_guns_encoded = file.get_var()
GameGlobals.money = money
GameGlobals.deposited_money = deposited_money
GameGlobals.health = health
GameGlobals.high_score = high_score
GameGlobals.player_deaths = player_deaths
GameGlobals.shots_fired = shots_fired
GameGlobals.held_guns = load_resource_path(held_guns_encoded)
GameGlobals.gun_ammo = file.get_var()
GameGlobals.ammo_reserve = file.get_var()
@@ -92,7 +119,7 @@ func load_user_data():
var checksum = file.get_var()
print("Checksum : ",checksum)
var check_data = [user_save_path,GameGlobals.leaderboard_name,money,deposited_money,health,high_score,player_deaths,shots_fired]
var check_data = [user_save_path,file_leaderboard_name,money,deposited_money,health,high_score,player_deaths,shots_fired]
print("CHECK DATA : ",check_data)
print("CHECKSUM CALC : ",HelperFuncs.checksum(check_data))
file.close()
@@ -103,6 +130,16 @@ func load_user_data():
print("DATA NOT VALID")
else:
print("no data saved...")
GameGlobals.money = 0
GameGlobals.deposited_money = 0
GameGlobals.health = 10
GameGlobals.high_score = 0
GameGlobals.player_deaths = 0
GameGlobals.shots_fired = 0
GameGlobals.held_guns = []
GameGlobals.gun_ammo = {}
GameGlobals.ammo_reserve = {}
GameGlobals.current_gun_index = 0
func save_game_data(level_name):
@@ -130,7 +167,6 @@ func save_game_data(level_name):
file.store_line(json_string)
file.close()
save_persistent_data()
func check_save_game_exists(level_name):
var game_save_path = str("user://",GameGlobals.leaderboard_name,"_",level_name,"_gamesave.save")