forked from team-sg/hero-mark-2
re-written save and level data system :)
This commit is contained in:
parent
f3debf74cf
commit
45ddbd5c04
13 changed files with 177 additions and 93 deletions
36
game.gd
36
game.gd
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue