1 #using scripts\codescripts\struct;
3 #using scripts\shared\aat_shared;
4 #using scripts\shared\array_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\flag_shared;
7 #using scripts\shared\math_shared;
8 #using scripts\shared\system_shared;
9 #using scripts\shared\util_shared;
10 #using scripts\shared\ai\systems\gib;
11 #using scripts\zm\_zm_spawner;
13 #insert scripts\shared\aat_zm.gsh;
14 #insert scripts\shared\shared.gsh;
15 #insert scripts\shared\version.gsh;
17 #using scripts\zm\_zm_stats;
18 #using scripts\zm\_zm_utility;
20 #insert scripts\zm\aats\_zm_aat_fire_works.gsh;
22 #insert scripts\zm\_zm_utility.gsh;
24 #precache( "material", ZM_AAT_FIRE_WORKS_DAMAGE_FEEDBACK_ICON );
26 #namespace zm_aat_fire_works;
55 if(
IS_TRUE(
self.barricade_enter ) )
60 if (
IS_TRUE(
self.is_traversing ) )
65 if( !
IS_TRUE(
self.completed_emerging_into_playable_area ) && !IsDefined(
self.first_node ) )
84 w_summoned_weapon = e_player GetCurrentWeapon();
85 v_target_zombie_origin =
self.origin;
95 v_start_yaw = VectorToAngles( v_firing_pos - v_target_zombie_origin );
96 v_start_yaw = (0, v_start_yaw[1], 0);
100 mdl_weapon.owner = e_player;
101 mdl_weapon.b_aat_fire_works_weapon =
true;
102 mdl_weapon.allow_zombie_to_target_ai =
true;
109 mdl_weapon waittill(
"movedone" );
115 if ( !IsDefined( zombie ) )
118 v_curr_yaw = (0, RandomIntRange( 0, 360 ), 0);
119 v_target_pos = mdl_weapon.origin + VectorScale( AnglesToForward( v_curr_yaw ), 40 );
123 v_target_pos = zombie GetCentroid();
126 mdl_weapon.angles = VectorToAngles( v_target_pos - mdl_weapon.origin );
127 v_flash_pos = mdl_weapon GetTagOrigin(
"tag_flash" );
128 mdl_weapon DontInterpolate();
131 MagicBullet( w_summoned_weapon, v_flash_pos, v_target_pos, mdl_weapon );
137 mdl_weapon waittill(
"movedone" );
152 a_ai_zombies = array::randomize( GetAiTeamArray(
"axis" ) );
155 for ( i = 0; i < a_ai_zombies.size; i++ )
157 zombie = a_ai_zombies[i];
158 test_origin = zombie getcentroid();
173 if ( a_ai_zombies.size )
176 return a_ai_zombies[0];
183 function zm_aat_fire_works_zombie_damage_response( str_mod, str_hit_location, v_hit_origin, e_attacker, n_amount, w_weapon, direction_vec, tagName, modelName, partName, dFlags, inflictor, chargeLevel )
190 if (
IS_TRUE( e_attacker.b_aat_fire_works_weapon ) )
202 if ( isdefined( attacker ) )
204 if (
IS_TRUE( attacker.b_aat_fire_works_weapon ) )
207 if ( isdefined( attacker.owner ) )
209 e_attacking_player = attacker.owner;
223 gibserverutils::gibhead(
self );
227 gibserverutils::gibleftarm(
self );
231 gibserverutils::gibrightarm(
self );
234 gibserverutils::giblegs(
self );
236 self DoDamage(
self.health,
self.origin, e_attacker, w_weapon,
"torso_upper" );
238 if ( IsDefined( e_owner ) && IsPlayer( e_owner ) )