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");
54 for (
int i; i < 4; i++)
68 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);
233 CloseDoor(doorIndex);
239 for (
int index = 1; index <= 4; index++)
241 int bit = 1 << (index - 1);
246 if (!IsDoorOpen(doorIndex))
251 if (IsDoorOpen(doorIndex))
252 CloseDoor(doorIndex);
259 for (
int index = 1; index <= 4; index++)
261 int bit = 1 << (index - 1);
287 return doorIndex - 8;
311 if (!super.CanDoorBeOpened(doorIndex, checkIfLocked))
317 return IsDoorClosed(4) && IsDoorClosed(5);
319 return IsDoorClosed(4) && IsDoorClosed(5);
321 return IsDoorClosed(6) && IsDoorClosed(7);
323 return IsDoorClosed(6) && IsDoorClosed(7);
337 return super.CanDoorBeLocked(doorIndex);
342 return doorIndex - 4;
347 return (doorIndex >= 4 && doorIndex <= 7);
352 return (doorIndex >= 8 && doorIndex <= 11);
361 return IsDoorOpen(doorIndex) && !IsDoorOpening(doorIndex);
363 return super.CanDoorBeClosed(doorIndex);
370 for (
int i = 1; i < count + 1; i++)
373 string memoryPointNameMin =
"darkness_" +i+
"_min";
374 string memoryPointNameMax =
"darkness_" +i+
"_max";
375 vector memPosMin = GetMemoryPointPos(memoryPointNameMin);
376 vector memPosMax = GetMemoryPointPos(memoryPointNameMax);
377 vector triggerSize = memPosMax - memPosMin;
378 vector triggerPosLocal = memPosMin + (triggerSize * 0.5);
379 EUndergroundTriggerType type = EUndergroundTriggerType.INNER;
380 string linkeDoorSelection =
"";
383 type = EUndergroundTriggerType.TRANSITIONING;
388 type = EUndergroundTriggerType.TRANSITIONING;
393 data.
m_Size = triggerSize;
397 dataArr.Insert(data);
412 vector extMax = data.m_Size * 0.5;
414 #ifdef DIAG_DEVELOPER
415 trigger.m_Local =
true;
418 trigger.SetExtents(extMin, extMax);
430 debug_output =
"IsDoorOpen(4) " + IsDoorOpen(4)+
"\n";
431 debug_output +=
"IsDoorOpen(5) " + IsDoorOpen(5)+
"\n";
432 debug_output +=
"IsDoorOpen(6) " + IsDoorOpen(6)+
"\n";
433 debug_output +=
"IsDoorOpen(7) " + IsDoorOpen(7)+
"\n";
437 debug_output =
"this is client";
445 super.OnVariablesSynchronized();
Param1< int > DoorStartParams
Param2< int, bool > DoorFinishParams
bool IsPlaying()
Returns true when the Effect is playing, false otherwise.
proto native bool RegisterNetworkStaticObject(Object object)
Static objects cannot be replicated by default (there are too many objects on the map)....
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
Wrapper class for managing sound through SEffectManager.
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)
array< ref UndergroundBunkerTriggerData > GetTriggersData(int count)
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)
void SpawnTriggers(int count)
static void UnregisterBunker(Land_WarheadStorage_Main bunker)
static void RegisterBunker(Land_WarheadStorage_Main bunker)
void Init(UndergroundBunkerTriggerData data)
string m_LinkedDoorSelection
EUndergroundTriggerType m_Type
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()