1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\system_shared;
6 #using scripts\shared\util_shared;
7 #using scripts\shared\vehicle_shared;
9 #insert scripts\shared\shared.gsh;
10 #insert scripts\shared\version.gsh;
11 #insert scripts\mp\killstreaks\_killstreaks.gsh;
12 #using scripts\shared\visionset_mgr_shared;
14 #using scripts\mp\_util;
15 #using scripts\mp\_vehicle;
17 #precache( "client_fx", "killstreaks/fx_agr_emp_stun" );
19 #using_animtree ( "mp_vehicles" );
28 level.aiTankKillstreakBundle = bundle;
30 level._ai_tank_fx = [];
31 level._ai_tank_fx[
"light_green" ] =
"killstreaks/fx_agr_vlight_eye_grn";
32 level._ai_tank_fx[
"light_red" ] =
"killstreaks/fx_agr_vlight_eye_red";
33 level._ai_tank_fx[
"stun" ] =
"killstreaks/fx_agr_emp_stun";
47 function spawned( localClientNum, killstreak_duration )
50 self.killstreakBundle = level.aiTankKillstreakBundle;
53 function missile_fire( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
55 self endon(
"entityshutdown" );
58 if (
self HasAnimTree() ==
false )
59 self UseAnimTree( #animtree );
61 missiles_loaded = newVal;
65 self SetAnimRestart( %o_drone_tank_missile1_fire, 1.0, 0.0, 0.5 );
67 else if ( newVal == 1 )
69 self SetAnimRestart( %o_drone_tank_missile2_fire, 1.0, 0.0, 0.5 );
71 else if ( newVal == 0 )
73 self SetAnimRestart( %o_drone_tank_missile3_fire, 1.0, 0.0, 0.5 );
75 else if ( newVal == 3 )
77 self SetAnimRestart( %o_drone_tank_missile_full_reload, 1.0, 0.0, 1.0 );
84 function update_hud( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
86 self endon(
"disconnect" );
90 vehicle = GetPlayerVehicle(
self );
91 if ( isdefined( vehicle ) )
99 if (
self isLocalClientDriver( localClientNum ) || IsSpectating( localClientNum ) )
107 ammo_ui_data_model = GetUIModel( GetUIModelForController( localClientNum ),
"vehicle.ammo" );
109 if ( isdefined( ammo_ui_data_model ) )
110 SetUIModelValue( ammo_ui_data_model, missiles_loaded );
116 function tank_stun( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
118 self endon(
"entityshutdown" );
119 self endon(
"death" );
123 self notify(
"light_disable" );
134 function death( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
136 player = GetLocalPlayer( localClientNum );
138 if ( !isdefined( player ) )
143 if ( player GetInKillcam( localClientNum ) )
151 self notify(
"light_disable" );
157 self.stun_fx = PlayFxOnTag( localClientNum, level._ai_tank_fx[
"stun" ],
self,
"tag_origin" );
158 PlaySound( localClientNum,
"veh_talon_shutdown",
self.origin );
163 if ( isdefined(
self.stun_fx ) )
165 StopFx( localClientNum,
self.stun_fx );
166 self.stun_fx = undefined;
172 self notify(
"driving_rumble" );
174 self endon(
"entityshutdown" );
175 self endon(
"death" );
176 self endon(
"driving_rumble" );
180 if ( IsInVehicle( localClientNum,
self ) )
182 speed =
self GetSpeed();
184 if ( speed >= 40 || speed <= -40 )
186 player = GetLocalPlayer( localClientNum );
188 if ( isdefined( player ) )
190 player Earthquake( 0.1, 0.1,
self.origin, 200 );