cosmic/scripts/Ship/hull.gd

38 lines
1,020 B
GDScript

extends RigidBody2D
class_name Hull
## Shortcut to get_parent()
@onready var ship: Ship = get_parent()
## Hull ID to use with the Game.get_module func
@export var id: String = "hull"
## Max HP of the hull
@export var max_hp: float = 30.0
## Maximum amount of ammunition to be carried
@export var max_ammunition: Dictionary = {
"n/a": 0, # don't change this k thx
"Laser Energy": 100.0,
"Rockets": 10,
}
## Current ammunition. Change this with set_ammunition
@onready var ammunition: Dictionary = max_ammunition
## Current HP of the hull. If it reaches zero, it emits parent's destroyed signal
@onready var hp: float = max_hp:
set(new_hp):
if new_hp > 0:
hp = new_hp
else:
ship.destroyed.emit()
## Adds amount to ammunition, returns true if it was successful
func add_ammunition(which: String, value: float) -> bool:
if ammunition[which] + value < 0:
return false
ammunition[which] += value;
if ammunition[which] > max_ammunition[which]:
ammunition[which] = max_ammunition[which]
return true