DIFF

BarbedWireTrigger.c

//! DEPRECATED UNUSED prototype for damage by BarbedWire, do not use as example
class BarbedWireTrigger : Trigger
{
	ItemBase 			m_ParentBarbedWire;
	const static int	SOUNDS_COLLISION_COUNT						= 4;
	const static int	SOUNDS_SHOCK_COUNT							= 4;
	const static string m_SoundsCollision[SOUNDS_COLLISION_COUNT]	= {"barbedFenceCollision1", "barbedFenceCollision2", "barbedFenceCollision3", "barbedFenceCollision4"};
	const static string m_SoundsShock[SOUNDS_SHOCK_COUNT] 			= {"electricFenceShock1", "electricFenceShock2", "electricFenceShock3", "electricFenceShock4"};

	// When a player / AI touches the Barbed Wire
	override void OnEnter( Object obj )
	{
		if ( g_Game.IsServer() )
		{
			if ( m_ParentBarbedWire )
			{
				if ( obj.IsInherited(PlayerBase) )
				{
					// When a player touches the barbed wire
					string cfg = "CfgVehicles BarbedWire barbedWireShockEnergyConsumption";
					float needed_energy = g_Game.ConfigGetFloat(cfg);
					bool energy_consumed = m_ParentBarbedWire.GetCompEM().ConsumeEnergy(needed_energy);
					PlayerBase player = PlayerBase.Cast( obj );
					
					if ( energy_consumed )
					{
						// TO DO: 
						//		-Do electrical damage.
						//		-Cause bleeding?
						//		-Do some damage!
						
						player.MessageImportant( "*SCRATCH and ELECTROCUTION*" );
						
						// Play sound
						SoundCollision();
						SoundElectricShock();
					}
					else
					{
						// TO DO: 
						//		-Cause bleeding?
						//		-Do some damage!
						
						player.MessageImportant( "*SCRATCH*" );
						
						// Play sound
						SoundCollision();
					}
				}
				else
				{
					// When an AI Agent touches the barbed wire
					if ( obj.IsInherited(ManBase) )
					{
						ManBase AI_unit = ManBase.Cast( obj );
						AI_unit.SetHealth("", "", 0);
					}
				}
			}
		}
	}
	
	// Sets parent object for this trigger
	void SetParentObject( ItemBase wire )
	{
		if ( g_Game.IsServer() )
		{
			m_ParentBarbedWire = wire;
		}
	}

	// Plays an electric shock sound
	void SoundElectricShock()
	{
		int random_index = Math.RandomInt(0, SOUNDS_SHOCK_COUNT);
		string sound_type = m_SoundsShock[random_index];
		PlaySound(sound_type, 50);
	}
	
	// Plays a collision sound
	void SoundCollision()
	{
		int random_index = Math.RandomInt(0, SOUNDS_COLLISION_COUNT);
		string sound_type = m_SoundsCollision[random_index];
		PlaySound(sound_type, 50);
	}
}