ChronoSpace/scenes/globals/globals.gd

80 lines
1.7 KiB
GDScript

extends Node
var destroyedShips: int = 0
var currentDelay: float = 1.0
var player: Player = null
var currentWave: int = 0
var enemyCount: int = 0
var touchscreen: bool = false
var UPGRADES: Array[Upgrade] = [
TimeGhostUpgrade.new(),
SpeedUpgrade.new(),
SelfHealUpgrade.new(),
MinigunUpgrade.new(),
ShotgunUpgrade.new(),
RailgunUpgrade.new(),
Heal50Upgrade.new(),
Heal100Upgrade.new(),
HealthUpgrade.new(),
#DashUpgrade.new(),
#StrafeUpgrade.new(),
#DamageUpgrade.new()
]
var currentUpgrades: Array[Upgrade] = UPGRADES
signal waveComplete
func _ready() -> void:
process_mode = Node.PROCESS_MODE_ALWAYS
reset()
func _physics_process(delta: float) -> void:
if Input.is_action_just_pressed("fullscreen"):
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
elif DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_WINDOWED:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
func setPlayer(_player: Player):
player = _player
func getPlayer() -> Player:
return player
func reset():
currentDelay = 1.0
currentWave = 0
enemyCount = 0
destroyedShips = 0
currentUpgrades = UPGRADES
touchscreen = false
#func nextWave():
#currentWave += 1
#enemyCount = 0
#waveComplete.emit()
func enemyDestroyed():
destroyedShips += 1
enemyCount -= 1
if enemyCount <= 0:
await get_tree().create_timer(1).timeout
waveComplete.emit()
func getUpgrades() -> Array[Upgrade]:
return currentUpgrades
func getUpgrade(upgrade: int):
return currentUpgrades[upgrade]
func removeUpgrade(upgrade: int):
currentUpgrades.pop_at(upgrade)
func removeSpeedUPgrade():
for i in currentUpgrades:
if i is SpeedUpgrade:
currentUpgrades.erase(i)