80 lines
1.7 KiB
GDScript
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)
|