mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 07:08:06 -05:00
147 lines
4.4 KiB
Plaintext
147 lines
4.4 KiB
Plaintext
#include maps\mp\zombies\_zm_riotshield;
|
|
#include maps\mp\_utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\zombies\_zm_weap_riotshield;
|
|
#include maps\mp\zombies\_zm_buildables;
|
|
#include maps\mp\zombies\_zm_equipment;
|
|
#include maps\mp\zombies\_zm_weapons;
|
|
|
|
doriotshielddeploy( origin, angles )
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
self endon( "start_riotshield_deploy" );
|
|
self notify( "deployed_riotshield" );
|
|
self maps\mp\zombies\_zm_buildables::track_placed_buildables( level.riotshield_name );
|
|
|
|
if ( isdefined( self.current_equipment ) && self.current_equipment == level.riotshield_name )
|
|
self maps\mp\zombies\_zm_equipment::equipment_to_deployed( level.riotshield_name );
|
|
|
|
zoffset = level.riotshield_placement_zoffset;
|
|
shield_ent = self spawnriotshieldcover( origin + ( 0, 0, zoffset ), angles );
|
|
item_ent = deployriotshield( self, shield_ent );
|
|
primaries = self getweaponslistprimaries();
|
|
|
|
self maps\mp\zombies\_zm_weapons::switch_back_primary_weapon(self.riotshield_prev_wep);
|
|
|
|
if ( isdefined( level.equipment_planted ) )
|
|
self [[ level.equipment_planted ]]( shield_ent, level.riotshield_name, self );
|
|
|
|
if ( isdefined( level.equipment_safe_to_drop ) )
|
|
{
|
|
if ( !self [[ level.equipment_safe_to_drop ]]( shield_ent ) )
|
|
{
|
|
self notify( "destroy_riotshield" );
|
|
shield_ent delete();
|
|
item_ent delete();
|
|
return;
|
|
}
|
|
}
|
|
|
|
self.riotshieldretrievetrigger = item_ent;
|
|
self.riotshieldentity = shield_ent;
|
|
self thread watchdeployedriotshieldents();
|
|
self thread deleteshieldondamage( self.riotshieldentity );
|
|
self thread deleteshieldmodelonweaponpickup( self.riotshieldretrievetrigger );
|
|
self thread deleteriotshieldonplayerdeath();
|
|
self thread watchshieldtriggervisibility( self.riotshieldretrievetrigger );
|
|
self.riotshieldentity thread watchdeployedriotshielddamage();
|
|
return shield_ent;
|
|
}
|
|
|
|
trackriotshield()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
self.hasriotshield = self hasweapon( level.riotshield_name );
|
|
self.hasriotshieldequipped = self getcurrentweapon() == level.riotshield_name;
|
|
self.shield_placement = 0;
|
|
|
|
if ( self.hasriotshield )
|
|
{
|
|
if ( self.hasriotshieldequipped )
|
|
{
|
|
self.shield_placement = 1;
|
|
self updateriotshieldmodel();
|
|
}
|
|
else
|
|
{
|
|
self.shield_placement = 2;
|
|
self updateriotshieldmodel();
|
|
}
|
|
}
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "weapon_change", newweapon );
|
|
|
|
foreach (wep in self getWeaponsListPrimaries())
|
|
{
|
|
if (wep == newweapon)
|
|
{
|
|
self.riotshield_prev_wep = newweapon;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ( newweapon == level.riotshield_name )
|
|
{
|
|
if ( self.hasriotshieldequipped )
|
|
continue;
|
|
|
|
if ( isdefined( self.riotshieldentity ) )
|
|
self notify( "destroy_riotshield" );
|
|
|
|
self.shield_placement = 1;
|
|
self updateriotshieldmodel();
|
|
|
|
self.hasriotshield = 1;
|
|
self.hasriotshieldequipped = 1;
|
|
continue;
|
|
}
|
|
|
|
if ( self ismantling() && newweapon == "none" )
|
|
continue;
|
|
|
|
if ( self.hasriotshieldequipped )
|
|
{
|
|
assert( self.hasriotshield );
|
|
self.hasriotshield = self hasweapon( level.riotshield_name );
|
|
|
|
if ( isdefined( self.riotshield_hidden ) && self.riotshield_hidden )
|
|
{
|
|
|
|
}
|
|
else if ( self.hasriotshield )
|
|
self.shield_placement = 2;
|
|
else if ( isdefined( self.shield_ent ) )
|
|
assert( self.shield_placement == 3 );
|
|
else
|
|
self.shield_placement = 0;
|
|
|
|
self updateriotshieldmodel();
|
|
self.hasriotshieldequipped = 0;
|
|
continue;
|
|
}
|
|
|
|
if ( self.hasriotshield )
|
|
{
|
|
if ( !self hasweapon( level.riotshield_name ) )
|
|
{
|
|
self.shield_placement = 0;
|
|
self updateriotshieldmodel();
|
|
self.hasriotshield = 0;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if ( self hasweapon( level.riotshield_name ) )
|
|
{
|
|
self.shield_placement = 2;
|
|
self updateriotshieldmodel();
|
|
self.hasriotshield = 1;
|
|
}
|
|
}
|
|
} |