mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 15:17:57 -05:00
More Jet Gun changes
Kills enemies that are in the ground, traversing, or behind barriers Awards points for kills Add back no longer kills when not firing correctly Add back overheating resets the heat value to 0
This commit is contained in:
@ -145,7 +145,6 @@ onplayerspawned()
|
||||
self thread war_machine_explode_on_impact();
|
||||
|
||||
self thread jetgun_heatval_changes();
|
||||
self thread jetgun_overheated_fix();
|
||||
|
||||
self thread additionalprimaryweapon_save_weapons();
|
||||
self thread additionalprimaryweapon_restore_weapons();
|
||||
@ -208,7 +207,6 @@ post_all_players_spawned()
|
||||
level.limited_weapons["ray_gun_zm"] = undefined;
|
||||
level.limited_weapons["raygun_mark2_zm"] = 1;
|
||||
level.zombie_vars["emp_stun_range"] = 420;
|
||||
//level.zombies_vars["jetgun_grind_range"] = 256; // TODO: get this to work
|
||||
level.zombie_vars["slipgun_reslip_rate"] = 0;
|
||||
level.zombie_ai_limit_screecher = 1;
|
||||
level.explode_overheated_jetgun = 0;
|
||||
@ -3637,30 +3635,6 @@ jetgun_heatval_changes()
|
||||
}
|
||||
}
|
||||
|
||||
jetgun_overheated_fix()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !maps/mp/zombies/_zm_weapons::is_weapon_included( "jetgun_zm" ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
self waittill( "jetgun_overheated" );
|
||||
|
||||
weapon_org = self gettagorigin( "tag_weapon" );
|
||||
self dodamage( 50, weapon_org );
|
||||
self playsound( "wpn_jetgun_explo" );
|
||||
|
||||
wait 0.05;
|
||||
|
||||
self.jetgun_heatval = 100;
|
||||
self.jetgun_overheating = 0;
|
||||
}
|
||||
}
|
||||
|
||||
jetgun_remove_forced_weapon_switch()
|
||||
{
|
||||
foreach (buildable in level.zombie_include_buildables)
|
||||
|
@ -3,6 +3,90 @@
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps/mp/zombies/_zm_weap_jetgun;
|
||||
|
||||
is_jetgun_firing()
|
||||
{
|
||||
if(!self attackButtonPressed())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return abs( self get_jetgun_engine_direction() ) > 0.2;
|
||||
}
|
||||
|
||||
jetgun_check_enemies_in_range( zombie, view_pos, drag_range_squared, gib_range_squared, grind_range_squared, cylinder_radius_squared, forward_view_angles, end_pos, invert )
|
||||
{
|
||||
if ( !isDefined( zombie ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( zombie enemy_killed_by_jetgun() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( isDefined( zombie.is_avogadro ) && zombie.is_avogadro )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( isDefined( zombie.isdog ) && zombie.isdog )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( isDefined( zombie.isscreecher ) && zombie.isscreecher )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( isDefined( self.animname ) && self.animname == "quad_zombie" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
test_origin = zombie getcentroid();
|
||||
test_range_squared = distancesquared( view_pos, test_origin );
|
||||
if ( test_range_squared > drag_range_squared )
|
||||
{
|
||||
zombie jetgun_debug_print( "range", ( 1, 0, 1 ) );
|
||||
return;
|
||||
}
|
||||
normal = vectornormalize( test_origin - view_pos );
|
||||
dot = vectordot( forward_view_angles, normal );
|
||||
if ( abs( dot ) < 0.7 )
|
||||
{
|
||||
zombie jetgun_debug_print( "dot", ( 1, 0, 1 ) );
|
||||
return;
|
||||
}
|
||||
radial_origin = pointonsegmentnearesttopoint( view_pos, end_pos, test_origin );
|
||||
if ( distancesquared( test_origin, radial_origin ) > cylinder_radius_squared )
|
||||
{
|
||||
zombie jetgun_debug_print( "cylinder", ( 1, 0, 1 ) );
|
||||
return;
|
||||
}
|
||||
if ( zombie damageconetrace( view_pos, self ) == 0 )
|
||||
{
|
||||
zombie jetgun_debug_print( "cone", ( 1, 0, 1 ) );
|
||||
return;
|
||||
}
|
||||
if ( test_range_squared < grind_range_squared )
|
||||
{
|
||||
level.jetgun_fling_enemies[ level.jetgun_fling_enemies.size ] = zombie;
|
||||
level.jetgun_grind_enemies[ level.jetgun_grind_enemies.size ] = dot < 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !isDefined( zombie.ai_state ) || zombie.ai_state != "find_flesh" && zombie.ai_state != "zombieMoveOnBus" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( isDefined( zombie.in_the_ground ) && zombie.in_the_ground )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( test_range_squared < drag_range_squared && dot > 0 )
|
||||
{
|
||||
level.jetgun_drag_enemies[ level.jetgun_drag_enemies.size ] = zombie;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jetgun_grind_zombie( player )
|
||||
{
|
||||
player endon( "death" );
|
||||
@ -21,10 +105,52 @@ jetgun_grind_zombie( player )
|
||||
}
|
||||
self.nodeathragdoll = 1;
|
||||
self.handle_death_notetracks = ::jetgun_handle_death_notetracks;
|
||||
player maps/mp/zombies/_zm_score::add_to_player_score(50 * maps/mp/zombies/_zm_score::get_points_multiplier(player));
|
||||
self dodamage( self.health + 666, player.origin, player );
|
||||
}
|
||||
}
|
||||
|
||||
handle_overheated_jetgun()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
while ( 1 )
|
||||
{
|
||||
self waittill( "jetgun_overheated" );
|
||||
|
||||
if ( self getcurrentweapon() == "jetgun_zm" )
|
||||
{
|
||||
weapon_org = self gettagorigin( "tag_weapon" );
|
||||
|
||||
if ( isDefined( level.explode_overheated_jetgun ) && level.explode_overheated_jetgun )
|
||||
{
|
||||
self thread maps/mp/zombies/_zm_equipment::equipment_release( "jetgun_zm" );
|
||||
pcount = get_players().size;
|
||||
pickup_time = 360 / pcount;
|
||||
maps/mp/zombies/_zm_buildables::player_explode_buildable( "jetgun_zm", weapon_org, 250, 1, pickup_time );
|
||||
}
|
||||
else if ( isDefined( level.unbuild_overheated_jetgun ) && level.unbuild_overheated_jetgun )
|
||||
{
|
||||
self thread maps/mp/zombies/_zm_equipment::equipment_release( "jetgun_zm" );
|
||||
maps/mp/zombies/_zm_buildables::unbuild_buildable( "jetgun_zm", 1 );
|
||||
self dodamage( 50, weapon_org );
|
||||
}
|
||||
else if ( isDefined( level.take_overheated_jetgun ) && level.take_overheated_jetgun )
|
||||
{
|
||||
self thread maps/mp/zombies/_zm_equipment::equipment_release( "jetgun_zm" );
|
||||
self dodamage( 50, weapon_org );
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
self.jetgun_overheating = undefined;
|
||||
self.jetgun_heatval = undefined;
|
||||
self playsound( "wpn_jetgun_explo" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jetgun_network_choke()
|
||||
{
|
||||
// no choke
|
||||
|
@ -16,7 +16,10 @@ main()
|
||||
replaceFunc(maps/mp/zm_transit::lava_damage_depot, scripts/zm/replaced/zm_transit::lava_damage_depot);
|
||||
replaceFunc(maps/mp/zm_transit_gamemodes::init, scripts/zm/replaced/zm_transit_gamemodes::init);
|
||||
replaceFunc(maps/mp/zm_transit_utility::solo_tombstone_removal, scripts/zm/replaced/zm_transit_utility::solo_tombstone_removal);
|
||||
replaceFunc(maps/mp/zombies/_zm_weap_jetgun::is_jetgun_firing, scripts/zm/replaced/_zm_weap_jetgun::is_jetgun_firing);
|
||||
replaceFunc(maps/mp/zombies/_zm_weap_jetgun::jetgun_check_enemies_in_range, scripts/zm/replaced/_zm_weap_jetgun::jetgun_check_enemies_in_range);
|
||||
replaceFunc(maps/mp/zombies/_zm_weap_jetgun::jetgun_grind_zombie, scripts/zm/replaced/_zm_weap_jetgun::jetgun_grind_zombie);
|
||||
replaceFunc(maps/mp/zombies/_zm_weap_jetgun::handle_overheated_jetgun, scripts/zm/replaced/_zm_weap_jetgun::handle_overheated_jetgun);
|
||||
replaceFunc(maps/mp/zombies/_zm_weap_jetgun::jetgun_network_choke, scripts/zm/replaced/_zm_weap_jetgun::jetgun_network_choke);
|
||||
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);
|
||||
|
Reference in New Issue
Block a user