mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 07:08:06 -05:00
Electric Trap equipment changes
Decrease active time from 60 seconds to 30 seconds Can kill unlimited zombies at once Add back startup time (0.5 seconds instead of 2 seconds)
This commit is contained in:
@ -218,9 +218,10 @@
|
||||
|
||||
### Electric Trap
|
||||
* No longer needs to be powered by a Turbine
|
||||
* Gets destroyed after being deployed for 60 seconds
|
||||
* Gets destroyed after being deployed for 30 seconds
|
||||
* Kills on any round (normally stops killing after round 50)
|
||||
* Kills immediately after being deployed (normally waits 2 seconds)
|
||||
* Can kill unlimited zombies at once
|
||||
* Decreased startup time from 2 seconds to 0.5 seconds
|
||||
|
||||
### Turret
|
||||
* No longer needs to be powered by a Turbine
|
||||
|
@ -7,96 +7,52 @@ startelectrictrapdeploy( weapon )
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
self endon( "equip_electrictrap_zm_taken" );
|
||||
|
||||
self thread maps/mp/zombies/_zm_equip_electrictrap::watchforcleanup();
|
||||
electricradius = 45;
|
||||
self.weapon = weapon;
|
||||
|
||||
if ( !isDefined( self.electrictrap_health ) )
|
||||
{
|
||||
self.electrictrap_health = 60;
|
||||
self.electrictrap_health = 30;
|
||||
}
|
||||
|
||||
if ( isDefined( weapon ) )
|
||||
{
|
||||
weapon trap_power_on();
|
||||
if ( !weapon.power_on )
|
||||
{
|
||||
self iprintlnbold( &"ZOMBIE_NEED_LOCAL_POWER" );
|
||||
}
|
||||
wait 0.5;
|
||||
|
||||
self trap_power_on( weapon );
|
||||
self thread maps/mp/zombies/_zm_equip_electrictrap::electrictrapthink( weapon, electricradius );
|
||||
self thread maps/mp/zombies/_zm_equip_electrictrap::electrictrapdecay( weapon );
|
||||
self thread electrictrapdecay( weapon );
|
||||
self thread maps/mp/zombies/_zm_buildables::delete_on_disconnect( weapon );
|
||||
|
||||
weapon waittill( "death" );
|
||||
|
||||
if ( isDefined( level.electrap_sound_ent ) )
|
||||
{
|
||||
level.electrap_sound_ent playsound( "wpn_zmb_electrap_stop" );
|
||||
level.electrap_sound_ent delete();
|
||||
level.electrap_sound_ent = undefined;
|
||||
}
|
||||
|
||||
self notify( "etrap_cleanup" );
|
||||
}
|
||||
}
|
||||
|
||||
trap_power_on()
|
||||
trap_power_on( weapon )
|
||||
{
|
||||
self.power_on = 1;
|
||||
self.power_on_time = getTime() - 2000; // activates the trap right away
|
||||
self notify( "stop_attracting_zombies" );
|
||||
weapon.power_on = 1;
|
||||
weapon.power_on_time = getTime() - 2000; // ::electrictrapthink doesn't start until after 2 seconds
|
||||
weapon notify( "stop_attracting_zombies" );
|
||||
|
||||
if ( !isDefined( level.electrap_sound_ent ) )
|
||||
{
|
||||
level.electrap_sound_ent = spawn( "script_origin", self.origin );
|
||||
level.electrap_sound_ent = spawn( "script_origin", weapon.origin );
|
||||
}
|
||||
|
||||
level.electrap_sound_ent playsound( "wpn_zmb_electrap_start" );
|
||||
level.electrap_sound_ent playloopsound( "wpn_zmb_electrap_loop", 2 );
|
||||
self thread maps/mp/zombies/_zm_equip_electrictrap::trapfx();
|
||||
}
|
||||
|
||||
electrictrapthink( weapon, electricradius )
|
||||
{
|
||||
weapon endon( "death" );
|
||||
radiussquared = electricradius * electricradius;
|
||||
while ( isDefined( weapon ) )
|
||||
{
|
||||
if ( weapon.power_on )
|
||||
{
|
||||
zombies = getaiarray( level.zombie_team );
|
||||
_a354 = zombies;
|
||||
_k354 = getFirstArrayKey( _a354 );
|
||||
while ( isDefined( _k354 ) )
|
||||
{
|
||||
zombie = _a354[ _k354 ];
|
||||
if ( isDefined( zombie ) && isalive( zombie ) )
|
||||
{
|
||||
if ( isDefined( zombie.ignore_electric_trap ) && zombie.ignore_electric_trap )
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( distancesquared( weapon.origin, zombie.origin ) < radiussquared )
|
||||
{
|
||||
weapon maps/mp/zombies/_zm_equip_electrictrap::zap_zombie( zombie );
|
||||
wait 0.15;
|
||||
}
|
||||
maps/mp/zombies/_zm_equip_electrictrap::etrap_choke();
|
||||
}
|
||||
}
|
||||
_k354 = getNextArrayKey( _a354, _k354 );
|
||||
}
|
||||
players = get_players();
|
||||
_a373 = players;
|
||||
_k373 = getFirstArrayKey( _a373 );
|
||||
while ( isDefined( _k373 ) )
|
||||
{
|
||||
player = _a373[ _k373 ];
|
||||
if ( is_player_valid( player ) && distancesquared( weapon.origin, player.origin ) < radiussquared )
|
||||
{
|
||||
player thread maps/mp/zombies/_zm_traps::player_elec_damage();
|
||||
maps/mp/zombies/_zm_equip_electrictrap::etrap_choke();
|
||||
}
|
||||
maps/mp/zombies/_zm_equip_electrictrap::etrap_choke();
|
||||
_k373 = getNextArrayKey( _a373, _k373 );
|
||||
}
|
||||
}
|
||||
wait 0.1;
|
||||
}
|
||||
weapon thread maps/mp/zombies/_zm_equip_electrictrap::trapfx();
|
||||
}
|
||||
|
||||
electrictrapdecay( weapon )
|
||||
@ -104,6 +60,7 @@ electrictrapdecay( weapon )
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
self endon( "equip_electrictrap_zm_taken" );
|
||||
|
||||
while ( isDefined( weapon ) )
|
||||
{
|
||||
if ( weapon.power_on )
|
||||
@ -116,9 +73,22 @@ electrictrapdecay( weapon )
|
||||
self maps/mp/zombies/_zm_equip_electrictrap::cleanupoldtrap();
|
||||
self.electrictrap_health = undefined;
|
||||
self thread maps/mp/zombies/_zm_equipment::equipment_release( level.electrictrap_name );
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
wait 1;
|
||||
}
|
||||
}
|
||||
|
||||
etrap_destroy()
|
||||
{
|
||||
maps/mp/zombies/_zm_equipment::equipment_disappear_fx( self.weapon.origin, undefined, self.weapon.angles );
|
||||
self.electrictrap_health = undefined;
|
||||
}
|
||||
|
||||
etrap_choke()
|
||||
{
|
||||
// no choke
|
||||
}
|
@ -17,6 +17,7 @@ main()
|
||||
replaceFunc(maps/mp/zm_transit_utility::solo_tombstone_removal, scripts/zm/replaced/zm_transit_utility::solo_tombstone_removal);
|
||||
replaceFunc(maps/mp/zombies/_zm_weap_emp_bomb::emp_detonate, scripts/zm/replaced/_zm_weap_emp_bomb::emp_detonate);
|
||||
replaceFunc(maps/mp/zombies/_zm_equip_electrictrap::startelectrictrapdeploy, scripts/zm/replaced/_zm_equip_electrictrap::startelectrictrapdeploy);
|
||||
replaceFunc(maps/mp/zombies/_zm_equip_electrictrap::etrap_choke, scripts/zm/replaced/_zm_equip_electrictrap::etrap_choke);
|
||||
replaceFunc(maps/mp/zombies/_zm_equip_turret::startturretdeploy, scripts/zm/replaced/_zm_equip_turret::startturretdeploy);
|
||||
replaceFunc(maps/mp/zombies/_zm_banking::init, scripts/zm/replaced/_zm_banking::init);
|
||||
replaceFunc(maps/mp/zombies/_zm_banking::bank_deposit_box, scripts/zm/replaced/_zm_banking::bank_deposit_box);
|
||||
@ -29,6 +30,7 @@ main()
|
||||
init()
|
||||
{
|
||||
level.grenade_safe_to_bounce = ::grenade_safe_to_bounce;
|
||||
level.placeable_equipment_destroy_fn["equip_electrictrap_zm"] = scripts/zm/replaced/_zm_equip_electrictrap::etrap_destroy;
|
||||
|
||||
screecher_spawner_changes();
|
||||
zombie_spawn_location_changes();
|
||||
|
Reference in New Issue
Block a user