re-written save and level data system :)

This commit is contained in:
Haze Weathers 2023-01-27 09:51:50 -05:00
parent f3debf74cf
commit 45ddbd5c04
13 changed files with 177 additions and 93 deletions

36
game.gd
View file

@ -44,6 +44,9 @@ var current_level = 0 #Current level being played
var current_file = 1 #Current save file
var shards_collected = [false,false,false,false,false,false,false,false,false,false]
func _ready():
Save.load_file(current_file)
#Instances a node
func instance_node(node:PackedScene,x:float,y:float,parent):
var Instance = node.instance()
@ -80,25 +83,20 @@ func clear_collectibles():
#Save
func save():
var save = ConfigFile.new()
save.load(str("user://file") + str(Game.current_file) + str(".pr"))
if Game.shards == 5 && Game.golds == 50:
save.set_value(str(current_level),"100% High Score",Game.score)
save.set_value(str(current_level),"100% Time",Game.time)
else:
save.set_value(str(current_level),"Any% High Score",Game.score)
save.set_value(str(current_level),"Any% Time",Game.time)
if Game.shards_collected[0] == true: save.set_value(str(current_level),"Shard0",Game.shards_collected[0])
if Game.shards_collected[1] == true: save.set_value(str(current_level),"Shard1",Game.shards_collected[1])
if Game.shards_collected[2] == true: save.set_value(str(current_level),"Shard2",Game.shards_collected[2])
if Game.shards_collected[3] == true: save.set_value(str(current_level),"Shard3",Game.shards_collected[3])
if Game.shards_collected[4] == true: save.set_value(str(current_level),"Shard4",Game.shards_collected[4])
if Game.shards_collected[5] == true: save.set_value(str(current_level),"Shard5",Game.shards_collected[5])
if Game.shards_collected[6] == true: save.set_value(str(current_level),"Shard6",Game.shards_collected[6])
if Game.shards_collected[7] == true: save.set_value(str(current_level),"Shard7",Game.shards_collected[7])
if Game.shards_collected[8] == true: save.set_value(str(current_level),"Shard8",Game.shards_collected[8])
if Game.shards_collected[9] == true: save.set_value(str(current_level),"Shard9",Game.shards_collected[9])
save.save(str("user://file") + str(current_file) + str(".pr"))
var save_id = LevelData.levels[current_level].save_id
var save_data = Save.get_level_data(save_id)
var is_100 = shards >= 5 && golds >= 50
# set score and time depending on completion
if score > save_data["score_100" if is_100 else "score_any"]:
Save.set_score(save_id, score, is_100)
if time < save_data["time_100" if is_100 else "time_any"]:
Save.set_time(save_id, time, is_100)
# set shards
for i in 8:
if shards_collected[i]:
Save.set_shard_collected(save_id, i, true)
# save file
Save.save_file(current_file)
#Convert seconds into M:SS:MS
func timeify(input):