Files
SpaceBots/.svn/pristine/f0/f0544b732bb7b725ad57f43239ef3408804faf2f.svn-base
2026-01-21 23:51:53 +01:00

45 lines
1.1 KiB
Plaintext

extends MapLogic
class_name ShipLogic
var roomList: Array[BasicRoom]
var power: bool = true
var hullBreached: bool = false
const HULL_BREACHED_CONDITION_DROP_SPEED: float = 0.8
var shipCondition: float = 100.0
var shipFuel: float = 100.0
@export var anouncerVoiceEmitter: FmodEventEmitter3D
@export var controllRoom: ControlRoom
@export var breakableRoom: CorridorDeadEndBreakable
func _process(delta: float) -> void:
finishAstarSetup()
if Multiplayer.alivePlayerDict.size() == 0:
looseMission()
if hullBreached:
shipCondition -= HULL_BREACHED_CONDITION_DROP_SPEED * delta
updateShipConditionScreen()
func addRoomToRoomList(room: BasicRoom):
roomList.push_back(room)
func updateLights():
for room in roomList:
room.showLights(power)
func collisionWithAstroid():
onCollision.emit()
hullBreached = true
shipCondition -= 10
if breakableRoom:
breakableRoom.updateWallVisibility(false)
if anouncerVoiceEmitter:
anouncerVoiceEmitter.play_one_shot()
func updateShipConditionScreen():
if controllRoom:
controllRoom.shipConditionDisplayNumber = clamp(shipCondition + 1,0,100)