//// Molotov-cocktails By HyperHeart  
//// Thanks SuperDave for the help!
//// Thanks to Mattie for Napalm, This is a child from them.
//// Thanks to Wonder for BananaBombs, This is a child from them.

block load
{
	es_xset cocktail_ver 1.0
	es_xmakepublic cocktail_ver
        es_xmsg #multi "#green[Molotov-cocktails]#defaultBy:#lightgreenHyper"
	es_setinfo cocktail_oldnoisy server_var(eventscripts_noisy)
	es_setinfo eventscripts_noisy 1
	//Set the Damage they enflict
	es_setinfo cocktail_damage 700
	//Set there Damage radius
	es_setinfo cocktail_radius 250
	es_xset molo 0
	es_xset nadenull 0
	es_xset nademodel 0
        es_xset handle 0
        es_xset index 0
        es_xset nadeindex 0
        es_xset playerhandle 0
	isnull nadenull eventscripts_currentmap
	ifx false(nadenull) do
	{
		es_xdoblock cocktail/precachemodel
	}

	es_xdoblock corelib/noisy_on
}

event es_map_start
{
	es_xdoblock cocktail/precachemodel
}

block precachemodel
{
        es_xprecachemodel nademodel "models/props_junk/garbage_glassbottle003a.mdl"
}

event weapon_fire
{
	if (event_var(weapon) = "hegrenade") then es_xdelayed 0.1 es_xdoblock cocktail/ignite
         {
            if (event_var(weapon) = "hegrenade") then es_emitsound player event_var(userid) ambient/fire/mtov_flame2.wav 1.0 0.3
            {
             if (grenade in event_var(weapon)) do
	      {
		es_xdelayed 0.1 es_xdoblock cocktail/dochange
		}
	 }
    }
}

block dochange
{
	es_xcreateentitylist molotov hegrenade_projectile
	es_xforeachkey molo in molotov "es_setindexprop server_var(molo) CBaseEntity.m_nModelIndex server_var(nademodel)"
        es_fire event_var(userid) hegrenade_projectile color "255 255 255"
	es_xkeygroupdelete molotov
}

event grenade_bounce
{
         es_xcexec_all play physics/glass/glass_bottle_impact_hard3.wav
}

event hegrenade_detonate
{
	es_xset origin 0
	es_format origin "origin %1 %2 %3" event_var(x) event_var(y) event_var(z)
	es_entcreate event_var(userid) env_fire
        es_xdelayed 0.1 es_xcexec_all play physics/glass/glass_bottle_break2.wav
        es_fire event_var(userid) hegrenade_projectile DispatchEffect WaterSurfaceExplosion 
	es_fire event_var(userid) env_fire addoutput server_var(origin)
	es_fire event_var(userid) env_fire addoutput "firesize 220"
	es_fire event_var(userid) env_fire addoutput "health 4"
	es_fire event_var(userid) env_fire addoutput "firetype Normal"
	es_fire event_var(userid) env_fire addoutput "spawnflags 16 8 128"
	es_fire event_var(userid) env_fire addoutput "damagescale -1"
	es_fire event_var(userid) env_fire StartFire
        es_getplayerhandle playerhandle event_var(userid)
        es_xcreateentitylist grenadelist hegrenade_projectile
        es_xforeachkey index in grenadelist "es_getindexprop handle server_var(index) CBaseEntity.m_hOwnerEntity;if (server_var(handle) equalto server_var(playerhandle)) then es_xcopy nadeindex index"
        es_emitsound entity server_var(nadeindex) ambient/explosions/explode_8.wav 1.0 0.7
        es_xkeygroupdelete grenadelist
        es_give event_var(userid) weapon_hegrenade 
	} 

event player_hurt
{
	if (event_var(weapon) = "hegrenade") do
    {
      es_fire event_var(userid) !self ignite
      es_fire event_var(userid) entityflame addoutput "OnUser1 !self,kill,1,6" 
      es_fire event_var(userid) entityflame FireUser1       
    }

}

block ignite
{
	es_fire event_var(userid) hegrenade_projectile ignite
	es_setinfo grenid 0
	es_getentityindex grenid hegrenade_projectile
	if (server_var(grenid) > 0 ) do
	{
		if (server_var(cocktail_damage) notlessthan 0) then es_xsetindexprop server_var(grenid) "CBaseCSGrenadeProjectile.baseclass.m_flDamage" server_var(cocktail_damage)
		if (server_var(cocktail_radius) notlessthan 0) then es_xsetindexprop server_var(grenid) "CBaseCSGrenadeProjectile.baseclass.m_DmgRadius" server_var(cocktail_radius)
	}
}

event player_death
{
if (event_var(weapon) = "hegrenade") do
       {
       es_setinfo mystring 0    
       es_format mystring "%1 just killed %2 with a [Molotov-cocktail]!" event_var(es_attackername) event_var(es_username) event_var(weapon) 
       es_msg server_var(mystring)
       }
}

block unload
{
	es_setinfo eventscripts_noisy server_var(cocktail_oldnoisy)
	es_xdoblock corelib/noisy_off
}




