84 lines
2.6 KiB
GDScript
84 lines
2.6 KiB
GDScript
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 base = $StarterBase
|
|
@onready var enemy_faction = $EnemyFaction
|
|
|
|
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
|
|
|
|
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']
|
|
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)
|
|
|
|
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():
|
|
get_tree().paused = true
|
|
ship.pause_controller.visible = true
|
|
|
|
func unpause():
|
|
get_tree().paused = false
|
|
ship.pause_controller.visible = false
|
|
|
|
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
|
|
base.modulate = color_base
|
|
enemy_faction.modulate = color_enemy
|
|
enemy_faction.changeitemscolor()
|
|
ship.changeinterfacecolor()
|
|
var menu = get_node_or_null("MainShip/GUI/StarterBaseMenu")
|
|
if menu != null:
|
|
menu.modulate = base.modulate
|