diff --git a/scripts/Space.gd b/scripts/Space.gd index 2c47b2f..4def922 100644 --- a/scripts/Space.gd +++ b/scripts/Space.gd @@ -50,6 +50,16 @@ func _ready(): var weapon_inst = Game.get_weapon(save['secondaryweapon']).instantiate() weapon_inst.id = save['secondaryweapon'] ship.secondary_slot.add_child(weapon_inst) + if save.has('quest'): + var data = save['quest'] + var type = data['type'] as Quest.TYPE + var restrictions : Array[Quest.RESTRICTIONS] = [] + for rest in data['restrictions']: + restrictions.append(rest as Quest.RESTRICTIONS) + ship.quest.create(type, data['progress_max'], data['reward_money'], restrictions, data['data']) + if data['got_reward']: + ship.quest.new = true + ship.quest_completed = true func addtargetlist(body : Node2D): if !can_target.has(body): diff --git a/scripts/game.gd b/scripts/game.gd index 66b1cd6..afa0f06 100644 --- a/scripts/game.gd +++ b/scripts/game.gd @@ -11,6 +11,7 @@ const DEFAULT_WEAPON = preload("res://scenes/weapons/presets/SingleLaserMk1.tscn const salt = "2ndbeam" const gameversion = "Ictar 1.1" +const beta = false static var profile : Profile = Profile.new() @@ -30,6 +31,15 @@ static func profile_save(scene : Node) -> void: "money" : scene.ship.money, "cargo" : scene.ship.hull.cargo } + if !scene.ship.quest.new or scene.ship.quest_completed: + profile.profile_meta['game']['quest'] = { + 'type' : scene.ship.quest.type, + 'progress_max' : scene.ship.quest.progress_max, + 'reward_money' : scene.ship.quest.reward_money, + 'restrictions' : scene.ship.quest.restrictions, + 'data' : scene.ship.quest.data, + 'got_reward' : scene.ship.quest_completed + } if scene.ship.primary_slot.get_child_count() > 0: profile.profile_meta['game']['primaryweapon'] = scene.ship.primary_slot.get_child(0).id if scene.ship.secondary_slot.get_child_count() > 0: diff --git a/scripts/menu/BaseMenu.gd b/scripts/menu/BaseMenu.gd index a7ee30c..3e9918c 100644 --- a/scripts/menu/BaseMenu.gd +++ b/scripts/menu/BaseMenu.gd @@ -135,7 +135,7 @@ func quest_status_update(): var restriction_typing = { Quest.RESTRICTIONS.NO_DEATHS : '- Destruction of your ship will lead to quest failure.', Quest.RESTRICTIONS.NO_WEAPON : '- Using any weapon (even accidently) is prohibited.', - Quest.RESTRICTIONS.TIMER : '- You have {sec} seconds to complete the quest since it is accepted.' + Quest.RESTRICTIONS.TIMER : '- You have {sec} seconds to complete the quest.' } if upd_quest.data.has('timer'): restriction_typing[Quest.RESTRICTIONS.TIMER] = restriction_typing[Quest.RESTRICTIONS.TIMER].format({"sec" : upd_quest.data['timer']}) diff --git a/scripts/misc/VersionLabel.gd b/scripts/misc/VersionLabel.gd index 83a0a6f..1c3530c 100644 --- a/scripts/misc/VersionLabel.gd +++ b/scripts/misc/VersionLabel.gd @@ -4,3 +4,6 @@ func _ready(): text = "GammaCosmicRays version {version}".format({"version" : Game.gameversion}) if OS.has_feature("editor"): text += " uncompiled\nThis is a debug/prerelease version." + else: + if Game.beta: + text += " beta\nThis is a closed beta version." diff --git a/scripts/objects/MainShip.gd b/scripts/objects/MainShip.gd index b6ec54b..f62c4e9 100644 --- a/scripts/objects/MainShip.gd +++ b/scripts/objects/MainShip.gd @@ -57,7 +57,7 @@ func timer_failed(): return kill_quest(false) -func enemy_destroyed(enemy): +func enemy_destroyed(_enemy): if quest.new: return if quest.type == quest.TYPE.ELIMINATION: