23 protected const string LAMPS_SOUND =
"Bunker_Lamp_Hum_SoundSet";
31 protected const string COLOR_LAMP_OFF =
"DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_int.rvmat";
32 protected const string COLOR_LAMP_ON =
"DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_e_int.rvmat";
40 RegisterNetSyncVariableBool(
"m_HasPower");
41 RegisterNetSyncVariableInt(
"m_LeverStatesBits");
42 RegisterNetSyncVariableInt(
"m_IsLowEnergy");
51 for (
int i; i < 4; i++)
60 g_Game.RegisterNetworkStaticObject(
this);
65 for (
int i = 0; i < 12; i++)
116 PlaySoundSetAtMemoryPoint(soundEff,
LAMPS_SOUND,
"lamp" + (i+1).
ToString() +
"_pos",
true, 0.1, 0.1);
131 soundEff.SetAutodestroy(
true);
185 super.OnSpawnByObjectSpawner(item);
193 foreach (
int index,
auto triggerData : jsonData.
Triggers)
195 if (triggerData.CustomSpawn)
201 foreach (
string entry : customStringData)
204 entry.Split(
"=", optionValuePair);
205 if (optionValuePair[0] ==
"undergroundTriggerTag")
207 if (optionValuePair[1] == triggerData.Tag)
276 CloseDoor(doorIndex);
282 for (
int index = 1; index <= 4; index++)
284 int bit = 1 << (index - 1);
289 if (!IsDoorOpen(doorIndex))
294 if (IsDoorOpen(doorIndex))
295 CloseDoor(doorIndex);
302 for (
int index = 1; index <= 4; index++)
304 int bit = 1 << (index - 1);
330 return doorIndex - 8;
354 if (!super.CanDoorBeOpened(doorIndex, checkIfLocked))
360 return IsDoorClosed(4) && IsDoorClosed(5);
362 return IsDoorClosed(4) && IsDoorClosed(5);
364 return IsDoorClosed(6) && IsDoorClosed(7);
366 return IsDoorClosed(6) && IsDoorClosed(7);
380 return super.CanDoorBeLocked(doorIndex);
385 return doorIndex - 4;
390 return (doorIndex >= 4 && doorIndex <= 7);
395 return (doorIndex >= 8 && doorIndex <= 11);
404 return IsDoorOpen(doorIndex) && !IsDoorOpening(doorIndex);
406 return super.CanDoorBeClosed(doorIndex);
415 debug_output =
"IsDoorOpen(4) " + IsDoorOpen(4)+
"\n";
416 debug_output +=
"IsDoorOpen(5) " + IsDoorOpen(5)+
"\n";
417 debug_output +=
"IsDoorOpen(6) " + IsDoorOpen(6)+
"\n";
418 debug_output +=
"IsDoorOpen(7) " + IsDoorOpen(7)+
"\n";
422 debug_output =
"this is client";
430 super.OnVariablesSynchronized();
Param1< int > DoorStartParams
Param2< int, bool > DoorFinishParams
bool IsPlaying()
Returns true when the Effect is playing, false otherwise.
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
Wrapper class for managing sound through SEffectManager.
static void SpawnParentedTriggers(EntityAI parent)
ref array< ref JsonUndergroundAreaTriggerData > Triggers
static void SpawnTriggerCarrier(EntityAI parent, int index, JsonUndergroundAreaTriggerData data)
override void OnSpawnByObjectSpawner(ITEM_SpawnerObject item)
override void OnDoorOpenStart(DoorStartParams params)
const string WARHEAD_BUNKER_TRIGGER
void Land_WarheadStorage_Main()
const string ELECTRICITY_OFF_SOUND
const string MAIN_DOOR_SELECTION1
override bool CanDoorBeClosed(int doorIndex)
void SetLeverStatesServer(int leverBits)
const string ELECTRICITY_ON_SOUND
const float DOOR_AUTOCLOSE_TIME
void AutoCloseDoor(int doorIndex)
void ~Land_WarheadStorage_Main()
const string ALARM_DOOR_OPEN_SOUND
void RemoveDoorTimer(int doorIndex)
override bool CanDoorBeOpened(int doorIndex, bool checkIfLocked=false)
override void DeferredInit()
bool IsStorageDoor(int doorIndex)
ref map< int, ref Timer > m_AutoCloseTimers
const string ALARM_POS_MEMPOINT
int GetBunkerEffectIndexByDoor(int doorIndex)
override void OnDoorOpenFinish(DoorFinishParams params)
void UpdateDoorStateServer()
EffectSound m_SoundDoorLoop[4]
override bool CanDoorBeLocked(int doorIndex)
void SetLowEnergyStateServer(bool state)
const string COLOR_LAMP_ON
override void OnVariablesSynchronized()
const string LAMP_SELECTION
const string ALARM_DOOR_CLOSE_SOUND
const string MAIN_DOOR_SELECTION2
void SetPowerServer(bool hasPower)
override void OnDoorCloseStart(DoorStartParams params)
int GetStorageLightIndexByDoor(int doorIndex)
const string ALARM_DOOR_OPEN_LOOP_SOUND
override void OnDoorCloseFinish(DoorFinishParams params)
const string VENT_POS_MEMPOINT
WarheadStorageLight m_StorageDoorLights[4]
const string VENTILATION_SOUND
void UpdateDoorStateClient()
int GetDoorIndexByLeverIndex(int LeverIndex)
override string GetDebugText()
const string COLOR_LAMP_OFF
ref array< EffectSound > m_PoweredSoundEffects
const string VENT_MAIN_POS_MEMPOINT
bool IsBunkerDoor(int doorIndex)
static void UnregisterBunker(Land_WarheadStorage_Main bunker)
static void RegisterBunker(Land_WarheadStorage_Main bunker)
static JsonUndergroundTriggers GetData()
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
class array< Class T > TStringArray
void Split(string sample, out array< string > output)
Splits string into array of strings separated by 'sample'.
static const string Empty