3 protected const string SLOT_TRIGGER =
"TriggerRemoteDetonator_Receiver";
17 RegisterNetSyncVariableInt(
"m_RAIB.m_PairDeviceNetIdLow");
18 RegisterNetSyncVariableInt(
"m_RAIB.m_PairDeviceNetIdHigh");
23 if (!
g_Game.IsMultiplayer())
51 if (!super.OnStoreLoad(ctx, version))
57 bool locked = GetInventory().GetSlotLock(slotId);
60 GetInventory().SetSlotLock(slotId,
false);
61 locked = GetInventory().GetSlotLock(slotId);
70 super.OnStoreSave(ctx);
77 super.OnVariablesSynchronized();
90 super.EEItemLocationChanged(oldLoc, newLoc);
101 GetInventory().GetCurrentInventoryLocation(il);
107 ClockBase timer = ClockBase.Cast(attachment);
108 if (timer && !timer.IsAlarmOn())
123 return FindAttachmentBySlotName(
slotName) != null;
132 return !
GetArmed() && super.IsTakeable();
150 super.OnWasAttached(parent, slot_id);
154 if (parent && parent.IsInherited(ExplosivesBase))
162 super.OnWasDetached(parent, slot_id);
164 if (parent && !parent.IsInherited(ExplosivesBase))
183 super.EEHealthLevelChanged(oldLevel, newLevel, zone);
189 for (
int attachmentIdx = 0; attachmentIdx < GetInventory().AttachmentCount(); attachmentIdx++)
191 ItemBase attachment =
ItemBase.Cast(GetInventory().GetAttachmentFromIndex(attachmentIdx));
194 attachment.UnlockFromParent();
195 attachment.SetHealth(
"",
"", 0.0);
223 if (!super.CanBeArmed())
247 SetHealth(
"",
"", 0.0);
256 SetHealth(
"",
"", 0.0);
265 super.OnDisarmed(pWithTool);
270 for (
int att = 0; att < GetInventory().AttachmentCount(); att++)
272 ItemBase attachment =
ItemBase.Cast(GetInventory().GetAttachmentFromIndex(att));
275 attachment.UnlockFromParent();
276 if (attachment.IsInherited(RemoteDetonator))
280 GetInventory().DropEntity(
InventoryMode.SERVER,
this, attachment);
281 attachment.SetHealth(
"",
"", 0.0);
297 super.EEItemAttached(item, slot_name);
305 super.EEItemDetached(item, slot_name);
316 receiver.UpdateLED(pState,
true);
326 for (
int att = 0; att < GetInventory().AttachmentCount(); att++)
328 ItemBase attachment =
ItemBase.Cast(GetInventory().GetAttachmentFromIndex(att));
331 attachment.LockToParent();
356 return "placePlasticExplosive_SoundSet";
361 return "plasticexplosive_deploy_SoundSet";
366 return "ImprovisedExplosive_disarm_SoundSet";
371 return "ImprovisedExplosive_disarm_SoundSet";
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
void AddAction(typename actionName)
PlayerSpawnPreset slotName
void OnEntityKilled(Object killer, EntityAI target)
AnalyticsManagerServer GetAnalyticsServer()
provides access to slot configuration
override bool EEOnDamageCalculated(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
override void OnStoreSave(ParamsWriteContext ctx)
override void EEItemAttached(EntityAI item, string slot_name)
override void UpdateLED(int pState)
void OnTriggerDetached(EntityAI entity)
override EntityAI GetPairDevice()
override bool CanBeArmed()
override void OnActivatedByItem(notnull ItemBase item)
override void OnDisarmed(bool pWithTool)
override void LockTriggerSlots()
override bool CanBeDisarmed()
void OnTriggerAttached(EntityAI entity)
override bool CanReceiveAttachment(EntityAI attachment, int slotId)
override void PairRemote(notnull EntityAI trigger)
override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
override string GetDisarmSoundset()
override bool IsTakeable()
override void EOnInit(IEntity other, int extra)
override void OnVariablesSynchronized()
void UpdateVisuals(EntityAI entity)
override void EEKilled(Object killer)
special behaviour - do not call super from ExplosivesBase
const string ANIM_PHASE_TRIGGER_REMOTE
override bool OnStoreLoad(ParamsReadContext ctx, int version)
override void OnWasDetached(EntityAI parent, int slot_id)
override bool CanDisplayAttachmentSlot(int slot_id)
override void EEItemDetached(EntityAI item, string slot_name)
override bool IsDeployable()
override string GetDeploySoundset()
override string GetLoopDeploySoundset()
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
override void OnWasAttached(EntityAI parent, int slot_id)
override RemotelyActivatedItemBehaviour GetRemotelyActivatedItemBehaviour()
override void UnlockTriggerSlots()
const string SLOT_TRIGGER
override void SetActions()
override string GetArmSoundset()
ref RemotelyActivatedItemBehaviour m_RAIB
override bool HasLockedTriggerSlots()
void OnVariableSynchronized()
Serialization general interface. Serializer API works with:
DamageType
exposed from C++ (do not change)
void SetArmed(bool state)
void SetParticleExplosion(int particle)
override void UnpairRemote()
void SetAmmoType(string pAmmoType)
proto native CGame GetGame()
InventoryLocationType
types of Inventory Location
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override void SetTakeable(bool pState)
RemoteDetonatorTrigger RemoteDetonator RemoteDetonatorReceiver()