40 lines
1.3 KiB
Lua
40 lines
1.3 KiB
Lua
-- Star Wars Empire at War: Secrets of a Fallen Empire
|
|
-- Lua Script: //Scripts/GameObject/SecondaryMerchantDock_Capturable.lua
|
|
-- Author: Galyana
|
|
-- Updated: 8 February, 2026
|
|
|
|
require("PGStateMachine")
|
|
|
|
-- Once this object has fully transitioned to a playable side it spits out units for its owner
|
|
|
|
function Definitions()
|
|
Define_State("State_Waiting_For_Control", State_Waiting_For_Control);
|
|
Define_State("State_Controlled", State_Controlled);
|
|
end
|
|
|
|
function State_Waiting_For_Control(message)
|
|
if message == OnEnter then
|
|
Object.Set_Garrison_Spawn(false)
|
|
elseif message == OnUpdate then
|
|
faction = Object.Get_Owner().Get_Faction_Name()
|
|
if faction == "REBEL" or faction == "EMPIRE" or faction == "UNDERWORLD" or faction == "HUTTS" or faction == "PIRATES" then
|
|
Set_Next_State("State_Controlled")
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Once captured, lock the structure for X seconds to allow garrison to spawn
|
|
function State_Controlled(message)
|
|
if message == OnEnter then
|
|
Object.Set_Garrison_Spawn(true)
|
|
Object.Disable_Capture(true)
|
|
Sleep(20)
|
|
Object.Disable_Capture(false)
|
|
-- Loop back to initial state if control is lost
|
|
elseif message == OnUpdate then
|
|
faction = Object.Get_Owner().Get_Faction_Name()
|
|
if faction == "NEUTRAL" then
|
|
Set_Next_State("State_Waiting_For_Control")
|
|
end
|
|
end
|
|
end |