4 const static int SOUNDS_SPARK_COUNT = 4;
5 const static int SOUNDS_CUT_COUNT = 3;
6 const static int SOUNDS_COLLISION_COUNT = 4;
7 const static int SOUNDS_SHOCK_COUNT = 4;
8 const static float RANDOM_SPARK_INTERVAL = 5.0;
10 const static string m_SoundsSpark[SOUNDS_SPARK_COUNT] = {
"electricFenceSpark1",
"electricFenceSpark2",
"electricFenceSpark3",
"electricFenceSpark4"};
11 const static string m_SoundsCut[SOUNDS_CUT_COUNT] = {
"barbedFenceCut1",
"barbedFenceCut2",
"barbedFenceCut3"};
12 const static string m_SoundsCollision[SOUNDS_COLLISION_COUNT] = {
"barbedFenceCollision1",
"barbedFenceCollision2",
"barbedFenceCollision3",
"barbedFenceCollision4"};
13 const static string m_SoundsShock[SOUNDS_SHOCK_COUNT] = {
"electricFenceShock1",
"electricFenceShock2",
"electricFenceShock3",
"electricFenceShock4"};
14 const static string m_SoundBuzzLoop =
"electricFenceBuzzLoop1";
16 SoundOnVehicle m_BuzzSoundLoop;
18 ref
Timer m_SparkEvent;
27 const string SOUND_MOUNT =
"putDown_BarbedWire_SoundSet";
34 m_TriggerActive =
false;
38 RegisterNetSyncVariableBool(
"m_IsMounted" );
59 GetInventory().GetCurrentInventoryLocation( inventory_location );
60 return base_building.GetInventory().GetSlotLock( inventory_location.GetSlot() );
71 m_IsMounted = is_mounted;
85 GetInventory().GetCurrentInventoryLocation( inventory_location );
86 bool is_mounted = base_building.GetInventory().GetSlotLock( inventory_location.GetSlot() );
87 string slot_name =
InventorySlots.GetSlotName( inventory_location.GetSlot() );
89 base_building.UpdateAttachmentVisuals( slot_name, is_mounted );
90 base_building.UpdateAttachmentPhysics( slot_name, is_mounted );
100 GetInventory().GetCurrentInventoryLocation( inventory_location );
101 base_building.GetInventory().SetSlotLock( inventory_location.GetSlot(), lock_state );
119 super.OnVariablesSynchronized();
121 if ( ( m_IsMounted && !m_LastMountedState ) || ( !m_IsMounted && m_LastMountedState ) )
124 PlaySoundSet( m_MountSound, SOUND_MOUNT, 0.1, 0.1 );
132 super.OnStoreSave( ctx );
137 if ( !super.OnStoreLoad( ctx, version ) )
145 if ( !ctx.Read( is_mounted ) )
157 super.AfterStoreLoad();
189 override void OnWork(
float consumed_energy ) {}
205 super.OnInventoryEnter(player);
206 HideSelection(
"placing");
207 ShowSelection(
"zbytek");
210 GetCompEM().UnplugThis();
211 GetCompEM().UnplugAllDevices();
221 m_AreaDamage.SetHitZones({
"RightLeg",
"LeftLeg",
"RightFoot",
"LeftFoot"});
224 m_TriggerActive =
true;
231 m_AreaDamage.SetHitZones({
"RightLeg",
"LeftLeg",
"RightFoot",
"LeftFoot"});
234 m_TriggerActive =
true;
240 m_TriggerActive =
false;
271 int random_index =
Math.RandomInt(0, SOUNDS_CUT_COUNT);
272 string sound_type = m_SoundsCut[random_index];
282 int random_index =
Math.RandomInt(0, SOUNDS_SPARK_COUNT);
283 string sound_type = m_SoundsSpark[random_index];
293 if (!m_BuzzSoundLoop)
295 m_BuzzSoundLoop = PlaySoundLoop(m_SoundBuzzLoop, 50);
307 GetGame().ObjectDelete(m_BuzzSoundLoop);
308 m_BuzzSoundLoop = NULL;
318 int random_index =
Math.RandomInt(0, SOUNDS_SHOCK_COUNT);
319 string sound_type = m_SoundsShock[random_index];
329 int random_index =
Math.RandomInt(0, SOUNDS_COLLISION_COUNT);
330 string sound_type = m_SoundsCollision[random_index];
340 if ( GetCompEM().IsPlugged() && GetCompEM().IsSwitchedOn() )
351 MiscGameplayFunctions.DealAbsoluteDmg(
this, 1000);
359 super.OnItemLocationChanged(old_owner, new_owner);
374 super.OnPlacementComplete( player, position, orientation );
379 HideSelection(
"zbytek");
381 if (!GetHierarchyParent())
383 if (GetCompEM().IsPlugged() && GetCompEM().IsWorking() )
394 return "placeBarbedWire_SoundSet";
399 return "barbedwire_deploy_SoundSet";
void AddAction(typename actionName)
class BaseBuildingBase extends ItemBase bsbDebugPrint(string s)
Wrapper class for managing sound through SEffectManager.
provides access to slot configuration
void CreateElectrifiedDamageTrigger()
void DestroyDamageTrigger()
override void OnInventoryEnter(Man player)
override void OnWork(float consumed_energy)
override void OnIsPlugged(EntityAI source_device)
override bool OnStoreLoad(ParamsReadContext ctx, int version)
bool GetSlotLockedState()
override void OnWorkStart()
override void OnItemLocationChanged(EntityAI old_owner, EntityAI new_owner)
void PlayDeployLoopSound()
override void SetActions()
ref AreaDamageManager m_AreaDamage
override void PostAreaDamageActions()
void CreateDamageTrigger()
ref EffectSound m_DeployLoopSound
DEPRECATED.
override string GetDeploySoundset()
override void OnWorkStop()
override void OnStoreSave(ParamsWriteContext ctx)
override void AfterStoreLoad()
void SoundElectricShock()
void SetMountedState(bool is_mounted)
void LockAttachmentSlot(bool lock_state)
void SoundBuzzLoopStart()
override void OnVariablesSynchronized()
override void OnIsUnplugged(EntityAI last_energy_source)
override string GetLoopDeploySoundset()
override void OnPlacementComplete(Man player, vector position="0 0 0", vector orientation="0 0 0")
override void PreAreaDamageActions()
void UpdateAttachmentSlot()
void StopDeployLoopSound()
DEPRECATED.
Serialization general interface. Serializer API works with:
override string GetDebugName()
ref AreaDamageManager m_AreaDamage
proto native CGame GetGame()
override void SetTakeable(bool pState)
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)