extends Node2D var can_target = [] var weapon_dict = { "SingleRocketMk1" : "res://scenes/weapons/presets/SingleRocketMk1.tscn", "DoubleLaserMk1" : "res://scenes/weapons/presets/DoubleLaserMk1.tscn", "SingleLaserMk1" : "res://scenes/weapons/presets/SingleLaserMk1.tscn" } var bought_weapon : Dictionary = weapon_dict.duplicate() var color_player var color_base var color_enemy @export var map_width = 8192 @export var map_height = 8192 @onready var ship = $MainShip @onready var bases = $Bases @onready var enemy_faction = $EnemyFaction signal enemy_destroyed func _ready(): randomize() recolor() for key in bought_weapon: bought_weapon[key] = false bought_weapon["SingleLaserMk1"] = true ship.camera.limit_left = -map_width/2.0 ship.camera.limit_right = map_width/2.0 ship.camera.limit_top = -map_height/2.0 ship.camera.limit_bottom = map_height/2.0 enemy_destroyed.connect(ship.enemy_destroyed) if Game.profile.profile_meta.has('game_load'): Game.profile.profile_meta.erase('game_load') var save = Game.profile.profile_meta['game'] ship.money = save['money'] ship.hull.hp = save['hp'] ship.hull.fuel = save['fuel'] ship.hull.ammunition = save['ammo'] ship.hull.cargo = save['cargo'] if save.has('primaryweapon'): for node in ship.primary_slot.get_children(): node.queue_free() var weapon_inst = Game.get_weapon(save['primaryweapon']).instantiate() weapon_inst.id = save['primaryweapon'] ship.primary_slot.add_child(weapon_inst) if save.has('secondaryweapon'): for node in ship.secondary_slot.get_children(): node.queue_free() 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): can_target.append(body) func removetargetlist(body : Node2D): if can_target.has(body): can_target.erase(body) func _process(_delta): if Input.is_action_just_released("pause"): if get_tree().paused: unpause() else: pause() func pause(): var menu = get_node_or_null("MainShip/GUI/BaseMenu") if menu != null: menu.visible = false get_tree().paused = true ship.pause_controller.visible = true func unpause(): get_tree().paused = false ship.pause_controller.visible = false var menu = get_node_or_null("MainShip/GUI/BaseMenu") if menu != null: menu.visible = true func recolor(): color_player = Color.from_hsv(randf(), randf_range(0.8, 1), randf_range(0.8, 1)) color_base = Color.from_hsv(randf(), randf_range(0.8, 1), randf_range(0.8, 1)) color_enemy = Color.from_hsv(randf(), randf_range(0.8, 1), randf_range(0.8, 1)) ship.modulate = color_player bases.modulate = color_base enemy_faction.modulate = color_enemy enemy_faction.changeitemscolor() bases.changeitemscolor() ship.changeinterfacecolor() var menu = get_node_or_null("MainShip/GUI/StarterBaseMenu") if menu != null: menu.modulate = bases.modulate func enemydestroyed(enemy): enemy_destroyed.emit(enemy)