mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 23:27:57 -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
|
### Electric Trap
|
||||||
* No longer needs to be powered by a Turbine
|
* 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 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
|
### Turret
|
||||||
* No longer needs to be powered by a Turbine
|
* No longer needs to be powered by a Turbine
|
||||||
|
@ -7,96 +7,52 @@ startelectrictrapdeploy( weapon )
|
|||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "equip_electrictrap_zm_taken" );
|
self endon( "equip_electrictrap_zm_taken" );
|
||||||
|
|
||||||
self thread maps/mp/zombies/_zm_equip_electrictrap::watchforcleanup();
|
self thread maps/mp/zombies/_zm_equip_electrictrap::watchforcleanup();
|
||||||
electricradius = 45;
|
electricradius = 45;
|
||||||
|
self.weapon = weapon;
|
||||||
|
|
||||||
if ( !isDefined( self.electrictrap_health ) )
|
if ( !isDefined( self.electrictrap_health ) )
|
||||||
{
|
{
|
||||||
self.electrictrap_health = 60;
|
self.electrictrap_health = 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isDefined( weapon ) )
|
if ( isDefined( weapon ) )
|
||||||
{
|
{
|
||||||
weapon trap_power_on();
|
wait 0.5;
|
||||||
if ( !weapon.power_on )
|
|
||||||
{
|
self trap_power_on( weapon );
|
||||||
self iprintlnbold( &"ZOMBIE_NEED_LOCAL_POWER" );
|
|
||||||
}
|
|
||||||
self thread maps/mp/zombies/_zm_equip_electrictrap::electrictrapthink( weapon, electricradius );
|
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 );
|
self thread maps/mp/zombies/_zm_buildables::delete_on_disconnect( weapon );
|
||||||
|
|
||||||
weapon waittill( "death" );
|
weapon waittill( "death" );
|
||||||
|
|
||||||
if ( isDefined( level.electrap_sound_ent ) )
|
if ( isDefined( level.electrap_sound_ent ) )
|
||||||
{
|
{
|
||||||
level.electrap_sound_ent playsound( "wpn_zmb_electrap_stop" );
|
level.electrap_sound_ent playsound( "wpn_zmb_electrap_stop" );
|
||||||
level.electrap_sound_ent delete();
|
level.electrap_sound_ent delete();
|
||||||
level.electrap_sound_ent = undefined;
|
level.electrap_sound_ent = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
self notify( "etrap_cleanup" );
|
self notify( "etrap_cleanup" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trap_power_on()
|
trap_power_on( weapon )
|
||||||
{
|
{
|
||||||
self.power_on = 1;
|
weapon.power_on = 1;
|
||||||
self.power_on_time = getTime() - 2000; // activates the trap right away
|
weapon.power_on_time = getTime() - 2000; // ::electrictrapthink doesn't start until after 2 seconds
|
||||||
self notify( "stop_attracting_zombies" );
|
weapon notify( "stop_attracting_zombies" );
|
||||||
|
|
||||||
if ( !isDefined( level.electrap_sound_ent ) )
|
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 playsound( "wpn_zmb_electrap_start" );
|
||||||
level.electrap_sound_ent playloopsound( "wpn_zmb_electrap_loop", 2 );
|
level.electrap_sound_ent playloopsound( "wpn_zmb_electrap_loop", 2 );
|
||||||
self thread maps/mp/zombies/_zm_equip_electrictrap::trapfx();
|
weapon 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
electrictrapdecay( weapon )
|
electrictrapdecay( weapon )
|
||||||
@ -104,6 +60,7 @@ electrictrapdecay( weapon )
|
|||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "equip_electrictrap_zm_taken" );
|
self endon( "equip_electrictrap_zm_taken" );
|
||||||
|
|
||||||
while ( isDefined( weapon ) )
|
while ( isDefined( weapon ) )
|
||||||
{
|
{
|
||||||
if ( weapon.power_on )
|
if ( weapon.power_on )
|
||||||
@ -116,9 +73,22 @@ electrictrapdecay( weapon )
|
|||||||
self maps/mp/zombies/_zm_equip_electrictrap::cleanupoldtrap();
|
self maps/mp/zombies/_zm_equip_electrictrap::cleanupoldtrap();
|
||||||
self.electrictrap_health = undefined;
|
self.electrictrap_health = undefined;
|
||||||
self thread maps/mp/zombies/_zm_equipment::equipment_release( level.electrictrap_name );
|
self thread maps/mp/zombies/_zm_equipment::equipment_release( level.electrictrap_name );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wait 1;
|
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/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_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::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_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::init, scripts/zm/replaced/_zm_banking::init);
|
||||||
replaceFunc(maps/mp/zombies/_zm_banking::bank_deposit_box, scripts/zm/replaced/_zm_banking::bank_deposit_box);
|
replaceFunc(maps/mp/zombies/_zm_banking::bank_deposit_box, scripts/zm/replaced/_zm_banking::bank_deposit_box);
|
||||||
@ -29,6 +30,7 @@ main()
|
|||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
level.grenade_safe_to_bounce = ::grenade_safe_to_bounce;
|
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();
|
screecher_spawner_changes();
|
||||||
zombie_spawn_location_changes();
|
zombie_spawn_location_changes();
|
||||||
|
Reference in New Issue
Block a user