Left 4 Dead 2

Left 4 Dead 2

Bile Bomb (Vomit Jar) Slows Tank
 This topic has been pinned, so it's probably important
DARG  [developer] 24 Sep @ 1:00pm
Source Code
Msg("[DARG | YUKI] Activating Bile Bomb Slows Tank\n"); local InternalState = { Tanks = {} BiledTanks = {} SpawnTankThink = false BileHurtTankThink = false } local function TankRunThink() { if ( InternalState.SpawnTankThink ) SpawnTankThink(); if ( InternalState.BileHurtTankThink ) BileHurtTankThink(); EntFire( "worldspawn", "CallScriptFunction", "TankRunThink", 1.0 ); } function OnGameEvent_player_now_it( params ) { local attacker = GetPlayerFromUserID( params["attacker"] ); local victim = GetPlayerFromUserID( params["userid"] ); if ( !attacker || !victim ) return; if ( attacker.IsSurvivor() && victim.GetZombieType() == ZOMBIE_TANK && !InternalState.BiledTanks.rawin( victim ) ) { victim.SetFriction( 2.3 ); InternalState.BiledTanks.rawset( victim, attacker ); if ( InternalState.BiledTanks.len() == 1 ) InternalState.BileHurtTankThink = true; } } function OnGameEvent_player_no_longer_it( params ) { local victim = GetPlayerFromUserID( params["userid"] ); if ( !victim ) return; if ( victim.GetZombieType() == ZOMBIE_TANK && InternalState.BiledTanks.rawin( victim ) ) { victim.SetFriction( 1.0 ); InternalState.BiledTanks.rawdelete( victim ); if ( InternalState.BiledTanks.len() == 0 ) InternalState.BileHurtTankThink = false; } }