/* class TestDestructionEffect : DestructionEffectBase { ref AreaDamageManager m_AreaManager; override void Init() { m_EntityIsTakeable = true; m_ParticlePersistent = ParticleList.GRENADE_M18_GREEN_LOOP; m_ParticleOneTime = ParticleList.GRENADE_M84; m_SoundSetOneTime = "AlarmClock_Destroyed_SoundSet"; m_SoundSetPersistent= "KitchenTimer_Ticking_Loop_SoundSet"; m_ReplaceWithEntity = ""; m_KeepHealthOnReplace = true; m_ReplaceDelay = 1000; m_HasExplosionDamage = true; m_AmmoType = ""; m_DamageType = 0; } override void OnEntityDestroyedOneTimeClient(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedOneTimeServer(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedPersistentClient(EntityAI entity, string zone) { } override void OnEntityDestroyedPersistentServer(EntityAI entity, string zone) { AreaDamageLoopedDeferred_NoVehicle area_damage = new AreaDamageLoopedDeferred_NoVehicle( m_Entity ); area_damage.SetDamageComponentType(AreaDamageComponentTypes.HITZONE); vector min, max; m_Entity.GetBounds(min, max); vector center = m_Entity.GetPosition(); vector orientation = m_Entity.GetOrientation(); area_damage.SetExtents( "-1 -1 -1", "1 1 1" ); area_damage.SetAreaPosition( center ); area_damage.SetAreaOrientation( orientation ); area_damage.SetLoopInterval( 1.0 ); area_damage.SetDeferDuration( 0.2 ); area_damage.SetHitZones( { "Torso","LeftHand","LeftLeg","LeftFoot","RightHand","RightLeg","RightFoot" } ); area_damage.SetAmmoName( "BarbedWireHit" ); area_damage.Spawn(); m_AreaManager = area_damage; } } //-------------------------------------------------------------------- class TestDestructionEffect2 : DestructionEffectBase { override void Init() { m_EntityIsTakeable = false; m_ParticlePersistent = ParticleList.GRENADE_M18_GREEN_LOOP; m_ParticleOneTime = ParticleList.GRENADE_M84; m_SoundSetOneTime = "AlarmClock_Destroyed_SoundSet"; m_SoundSetPersistent= "KitchenTimer_Ticking_Loop_SoundSet"; m_ReplaceWithEntity = ""; m_KeepHealthOnReplace = true; m_ReplaceDelay = 1000; m_HasExplosionDamage = true; m_AmmoType = "LandFuelFeed_Ammo"; m_DamageType = DamageType.EXPLOSION; } override void OnEntityDestroyedOneTimeClient(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedOneTimeServer(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedPersistentClient(EntityAI entity, string zone) { } override void OnEntityDestroyedPersistentServer(EntityAI entity, string zone) { } override void OnExplosionEffects(Object source, Object directHit, int componentIndex, string surface, vector pos, vector surfNormal, float energyFactor, float explosionFactor, bool isWater, string ammoType) { if ( !GetGame().IsDedicatedServer() ) { vector n = surfNormal.VectorToAngles() + "0 90 0"; Particle p1 = ParticleManager.GetInstance().PlayInWorld(ParticleList.SMOKE_GENERIC_WRECK, pos); p1.SetOrientation(n); Particle p2 = ParticleManager.GetInstance().PlayInWorld(ParticleList.EXPLOSION_LANDMINE, pos); p2.SetOrientation(n); Particle p3 = ParticleManager.GetInstance().PlayInWorld(ParticleList.IMPACT_METAL_RICOCHET, pos); p3.SetOrientation(n); Particle p4 = ParticleManager.GetInstance().PlayInWorld(ParticleList.IMPACT_GRAVEL_RICOCHET, pos); p4.SetOrientation(n); } } } */ class DestructionEffectGasCanister : DestructionEffectBase { override void Init() { m_EntityIsTakeable = true; m_ParticlePersistent = ParticleList.NONE; m_ParticleOneTime = ParticleList.RGD5; m_SoundSetOneTime = ""; m_SoundSetPersistent= ""; m_ReplaceWithEntity = ""; m_KeepHealthOnReplace = true; m_ReplaceDelay = 1000; m_HasExplosionDamage = true; m_AmmoType = "GasCanister_Ammo"; m_DamageType = DamageType.EXPLOSION; } override void OnEntityDestroyedOneTimeClient(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedOneTimeServer(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedPersistentClient(EntityAI entity, string zone) { } override void OnEntityDestroyedPersistentServer(EntityAI entity, string zone) { } override void OnExplosionEffects(Object source, Object directHit, int componentIndex, string surface, vector pos, vector surfNormal, float energyFactor, float explosionFactor, bool isWater, string ammoType) { } } class DestructionEffectMetalicMechanism : DestructionEffectBase { override void Init() { m_EntityIsTakeable = true; m_ParticlePersistent = ParticleList.NONE; m_ParticleOneTime = ParticleList.NONE; m_SoundSetOneTime = "AlarmClock_Destroyed_SoundSet"; m_SoundSetPersistent= ""; m_ReplaceWithEntity = ""; m_KeepHealthOnReplace = true; m_ReplaceDelay = 1000; m_HasExplosionDamage = false; m_AmmoType = ""; m_DamageType = DamageType.EXPLOSION; } override void OnEntityDestroyedOneTimeClient(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedOneTimeServer(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedPersistentClient(EntityAI entity, string zone) { } override void OnEntityDestroyedPersistentServer(EntityAI entity, string zone) { } override void OnExplosionEffects(Object source, Object directHit, int componentIndex, string surface, vector pos, vector surfNormal, float energyFactor, float explosionFactor, bool isWater, string ammoType) { } } class DestructionEffectSpookyGoat : DestructionEffectBase { override void Init() { m_EntityIsTakeable = false; m_ParticlePersistent = ParticleList.NONE; m_ParticleOneTime = ParticleList.EXPLOSION_GOAT; m_SoundSetOneTime = ""; m_SoundSetPersistent= ""; m_ReplaceWithEntity = ""; m_KeepHealthOnReplace = false; m_ReplaceDelay = 0; m_HasExplosionDamage = false; m_AmmoType = ""; m_DamageType = DamageType.EXPLOSION; } override void OnEntityDestroyedOneTimeClient(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedOneTimeServer(EntityAI entity, int oldLevel, string zone) { } override void OnEntityDestroyedPersistentClient(EntityAI entity, string zone) { } override void OnEntityDestroyedPersistentServer(EntityAI entity, string zone) { } override void OnExplosionEffects(Object source, Object directHit, int componentIndex, string surface, vector pos, vector surfNormal, float energyFactor, float explosionFactor, bool isWater, string ammoType) { } }