‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_gadget_turret_deploy.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\flagsys_shared;
6 #using scripts\shared\hackable;
7 #using scripts\shared\turret_shared;
8 #using scripts\shared\vehicle_shared;
9 #using scripts\shared\vehicles\_deploy_turret;
10 #using scripts\shared\util_shared;
11 
12 #using scripts\shared\abilities\_ability_player;
13 #using scripts\shared\abilities\_ability_power;
14 #using scripts\shared\abilities\_ability_util;
15 
16 #insert scripts\shared\shared.gsh;
17 #insert scripts\shared\version.gsh;
18 #insert scripts\shared\abilities\_ability_util.gsh;
19 
20 #define GADGET_FLAG "gadget_turret_deploy_on"
21 #define GADGET_READY_FLAG "gadget_turret_deploy_ready"
22 #define GADGET_RECOVER_FLAG "gadget_turret_recover_ready"
23 
24 #using scripts\shared\system_shared;
25 
26 #define TURRET_EXPLODE "weapon/fx_betty_exp"
27 #define TURRET_SPAWN "vehicle/fx_elec_teleport_escort_drone"
28 
29 #precache( "fx", TURRET_SPAWN );
30 #precache( "fx", TURRET_EXPLODE );
31 
32 #precache( "triggerstring", "WEAPON_GADGET_TURRET_RECOVER_LB" );
33 #precache( "triggerstring", "WEAPON_GADGET_TURRET_RECOVER_RB" );
34 
35 ‪REGISTER_SYSTEM( "gadget_deploy_turret", &‪__init__, undefined )
36 
37 #define TURRET_MODEL "wpn_t7_sentry_gun_gadget"
38 #define TURRET_MODEL_RED "wpn_t7_sentry_gun_gadget_red"
39 #define TURRET_OFFSET (0,0,0)
40 
41 // misc
42 #define TURRET_RECOVERY_DISTANCE GetDvarFloat("scr_turret_recovery_distance")
43 #define TURRET_RECOVERY_ANGLEDOT 0.7
44 #define TURRET_RECOVERY_HOLDTIME GetDvarInt( "g_useholdtime" )
45 #define TURRET_RECOVERY_PROMPT_0 &"WEAPON_GADGET_TURRET_RECOVER_RB"
46 #define TURRET_RECOVERY_PROMPT_1 &"WEAPON_GADGET_TURRET_RECOVER_LB"
47 #define TURRET_TIMEOUT_SELF_DESTRUCT GetDvarFloat("scr_turret_timeout_self_destruct")
48 //hacking
49 #define TURRET_HACK_TIMER GetDvarFloat("scr_turret_hack_timer")
50 #define TURRET_HACKER_TIME GetDvarFloat("scr_turret_hack_time")
51 #define TURRET_HACKER_COST GetDvarFloat("scr_turret_hack_power_mult")
52 
53 // power use
54 #define TURRET_DRAIN_POWER_USE GetDvarFloat("scr_turret_drain_power_use")
55 #define TURRET_BURST_POWER_USE GetDvarFloat("scr_turret_burst_power_use")
56 #define TURRET_BURST_POWER_CUTOFF GetDvarFloat("scr_turret_burst_power_cutoff")
57 #define TURRET_BURST_POWER_RESUME GetDvarFloat("scr_turret_burst_power_resume")
58 #define TURRET_DROP_POWER_USE GetDvarFloat("scr_turret_drop_power_use")
59 #define TURRET_RECOVER_POWER_USE GetDvarFloat("scr_turret_recover_power_use")
60 
61 #define TURRET_FOV_COS GetDvarFloat("scr_turret_fov_cos")
62 #define TURRET_FOV_COS_BUSY GetDvarFloat("scr_turret_fov_cos_busy")
63 #define TURRET_MAX_SIGHT_DIST_SQ (GetDvarFloat("scr_turret_max_sight_dist") * GetDvarFloat("scr_turret_max_sight_dist"))
64 #define TURRET_SIGHT_LATENCY GetDvarInt("scr_turret_sight_latency")
65 
66 
67 
68 function ‪__init__()
69 {
76 
78 
80 
81  ‪clientfield::register( "vehicle", "retrievable", ‪VERSION_SHIP, 1, "int" );
82  ‪clientfield::register( "vehicle", "unplaceable", ‪VERSION_SHIP, 1, "int" );
83 
84  ‪clientfield::register( "vehicle", "toggle_keyline", ‪VERSION_SHIP, 1, "int" );
85  ‪clientfield::register( "vehicle", "dt_damage_state", ‪VERSION_SHIP, 2, "int" );
86  ‪clientfield::register( "vehicle", "vehicle_hack", ‪VERSION_SHIP, 1, "int" );
87 
88  level.gadgetTurretDeploy = GetWeapon( ‪get_gadget_name() );
89  level.gadgetTurretRecover = GetWeapon( ‪get_gadget_recover_name() );
90 
92 }
93 
95 {
96  return "gadget_turret_deploy";
97 }
98 
100 {
101  return "gadget_turret_recover";
102 }
103 
105 {
106  level._effect["turret_spawn_fx"] = ‪TURRET_SPAWN;
107  level._effect["turret_explode"] = ‪TURRET_EXPLODE;
108 }
109 
111 {
112  return self ‪flagsys::get( ‪GADGET_FLAG );
113 }
114 
116 {
117  return false;
118 }
119 
121 {
122 }
123 
124 function ‪gadget_turret_deploy_on_give(slot, weapon)
125 {
126 }
127 
129 {
130  //self notify( "gadget_turret_deploy_taken" );
131  // executed when gadget is removed from the players inventory
132 }
133 
135 {
136  // setup up stuff on player connect
137 }
138 
140 {
141 }
142 
143 #define TURRET_CARRY_DIST 30
144 
146 {
147  carry_dist = ‪TURRET_CARRY_DIST;
148  carry_angles = (1,0,0);
149  carry_offset = (carry_dist,0,0);
150 
152  self.pre_turret_weapon = self getcurrentweapon();
154  {
156 
158  while( self IsSwitchingWeapons() )
159  {
161  }
162 
163  if ( self GadgetPowerChange( slot, 0 ) < ‪TURRET_DROP_POWER_USE )
164  return false;
165 
166  if( self ‪gadget_turret_deploy_is_inuse(slot) )
167  {
168  self endon( "gadget_turret_deploy_taken" );
169 
171 
172  self.turretAngles = self.angles;
173  self.turretOrigin = self.origin + ‪TURRET_OFFSET +AnglesToForward(self.angles) * ‪TURRET_CARRY_DIST;
174 
175  self.temp_turret = ‪vehicle::spawn( ‪TURRET_MODEL, "td", "turret_gadget_deploy", self.turretOrigin, self.turretAngles );
176  self.temp_turret SetModel( ‪TURRET_MODEL );
177  self.temp_turret NotSolid();
178  self CarryTurret(self.temp_turret, carry_offset, carry_angles);
179 
182 
183  while( self ‪gadget_turret_deploy_is_inuse(slot) && IsDefined(self.temp_turret))
184  {
185  self.turret_placement = self canPlayerPlaceTurret();
186  if( !IsDefined(self.turret_placement) || !self.turret_placement["result"] )
187  {
188  self.temp_turret ‪clientfield::set( "unplaceable", 1 );
189  //self.temp_turret SetModel( TURRET_MODEL_RED );
190  }
191  else
192  {
193  self.temp_turret ‪clientfield::set( "unplaceable", 0 );
194  //self.temp_turret SetModel( TURRET_MODEL );
195  }
196 
198  }
199 
201 
202  if (IsDefined(self.temp_turret) )
203  {
204  self stopCarryTurret(self.temp_turret);
205  self.temp_turret ‪turret_delete();
206  self.temp_turret=undefined;
207  }
208  }
209  }
210  else
211  {
212  self thread ‪watch_turret_recovery(slot);
213  self SwitchToWeapon(self.pre_turret_weapon);
214  }
215 }
216 
217 function ‪can_recover_turret(turret)
218 {
219  if ( ‪IS_TRUE(turret.is_hacked) )
220  return false;
221 
222  if ( self GadgetPowerChange( self.turret_slot, 0 ) < ‪TURRET_RECOVER_POWER_USE )
223  return false;
224 
225  origin = self.origin;
226  forward = AnglesToForward( self.angles );
227 
228  if ( DistanceSquared( origin, turret.origin ) < ( ‪TURRET_RECOVERY_DISTANCE * ‪TURRET_RECOVERY_DISTANCE ) )
229  {
230  to_obj = VectorNormalize( turret.origin-origin );
231  dot = VectorDot( to_obj, forward );
232  if ( dot >= ‪TURRET_RECOVERY_ANGLEDOT )
233  {
234  return true;
235  }
236  }
237  return false;
238 }
239 
240 function ‪button_pressed(slot)
241 {
242  if ( slot )
243  return self secondaryoffhandbuttonpressed();
244  return self fragbuttonpressed();
245 }
246 
248 {
249  hold_start = GetTime();
250  while( IsDefined(self.turret) && ‪button_pressed(slot))
251  {
252  if ( ‪can_recover_turret(self.turret) )
253  {
254  if ( GetTime() - hold_start > ‪TURRET_RECOVERY_HOLDTIME )
255  {
257  self.turret ‪turret_delete();
258  self.turret = undefined;
259  return;
260  }
261  }
262  else
263  {
264  hold_start = GetTime();
265  }
267  }
268 }
269 
271 {
272  if( IsDefined(self.turret_placement) && self.turret_placement["result"] )
273  {
275  {
276  self thread ‪deploy_turret(slot);
277  }
278  }
280  self notify( "gadget_turret_off" );
282 }
283 
284 #define HEADICON_OFFSET (0, 0, 70)
285 
286 
287 function ‪set_player_turret(turret)
288 {
289  turret notify("owner_change");
290  if (IsDefined(turret.owner))
291  {
292  old_owner = turret.owner;
293  old_owner.turret = undefined;
294  }
295  if ( IsDefined( self.turret ) )
296  {
297  self.turret ‪turret_delete();
298  }
299  self.turret = turret;
300  if (IsDefined(turret))
301  {
302  turret.owner = self;
303  turret SetTeam(self.team);
304  if (IsDefined(level.setEntityHeadIcon) )
305  {
306  turret [[level.setEntityHeadIcon]]( self.team, self, ‪HEADICON_OFFSET );
307  }
308  turret thread ‪watch_player_death(self);
309  self thread ‪switch_player_gadget();
310  }
311 }
312 
314 {
315  self endon("disconnect");
317  if ( self HasWeapon( level.gadgetTurretDeploy ) )
318  {
319  self TakeWeapon( level.gadgetTurretDeploy );
320  self GiveWeapon( level.gadgetTurretRecover );
321  }
322 
323  self.turret waittill("death");
324 
325  if ( self HasWeapon( level.gadgetTurretRecover ) )
326  {
327  self TakeWeapon( level.gadgetTurretRecover );
328  self GiveWeapon( level.gadgetTurretDeploy );
329  }
331 
332 }
333 
334 
335 
336 function ‪watch_player_death( owner )
337 {
338  self notify("owner_change");
339  self endon("owner_change");
340  self endon("death");
341 
342  //owner waittill("death_or_disconnect");
343  owner waittill("disconnect");
344 
345  while( ‪IS_TRUE(self.is_hacked) )
346  {
348  }
349 
350  self ‪turret_delete();
351 }
352 
353 
355 {
356  ‪trace = bullettrace( self.origin, self.origin + (0,0,-2000), false, self );
357  if ( ‪trace["fraction"] < 0.99 )
358  {
359  self.origin = ‪trace["position"];
360  return true;
361  }
362  return false;
363 }
364 
365 
366 
367 function ‪deploy_turret(slot)
368 {
369  self.turretOrigin = self.turret_placement["origin"];
370  self.turretAngles = self.turret_placement["angles"];
371  self stopCarryTurret(self.temp_turret);
372 
373  if (!self.temp_turret ‪drop_to_ground())
374  {
375  self.temp_turret ‪turret_delete();
376  return;
377  }
378 
379  turret = self.temp_turret; //vehicle::spawn( TURRET_MODEL, "td", "turret_gadget_deploy", self.turretOrigin, self.turretAngles );
380 
381  turret DisconnectPaths();
382 
383  self.temp_turret = undefined;
384  self ‪set_player_turret(turret);
385  turret SetOwner(self);
386  turret Solid();
387 
388  turret.fovcosine = ‪TURRET_FOV_COS;
389  turret.fovcosinebusy = ‪TURRET_FOV_COS_BUSY;
390  turret.maxsightdistsqrd = ‪TURRET_MAX_SIGHT_DIST_SQ;
391  turret.sightlatency = ‪TURRET_SIGHT_LATENCY;
392 
393  turret endon( "death" );
394 
395 
396  self.turret_slot = slot;
401 
402  ‪vehicle::init( self.turret );
403  self.turret ‪vehicle::lights_off();
404 
405  turret.hackable_progress_prompt = &"WEAPON_HACKING_TURRET";
406  turret.hackable_cost_mult = ‪TURRET_HACKER_COST;
407  turret.hackable_hack_time = ‪TURRET_HACKER_TIME;
409 
410  self.turret.prompt_trigger = ‪Spawn( "trigger_radius_use", self.turretOrigin + (0,0,30) , 0, ‪TURRET_RECOVERY_DISTANCE, ‪TURRET_RECOVERY_DISTANCE);
411  if ( slot )
412  self.turret.prompt_trigger SetHintString(‪TURRET_RECOVERY_PROMPT_1);
413  else
414  self.turret.prompt_trigger SetHintString(‪TURRET_RECOVERY_PROMPT_0);
415  self.turret.prompt_trigger SetCursorHint( "HINT_NOICON" );
416  self.turret.prompt_trigger setInvisibleToAll();
417  self.turret.prompt_trigger SetTeamForTrigger( self.team );
418  self.turret.prompt_trigger setVisibleToPlayer( self );
419  self.turret.prompt_trigger UseTriggerRequireLookAt();
420 
422  if ( ‪TURRET_DRAIN_POWER_USE > 0 )
423  {
424  self thread ‪turret_drain_power();
425  }
426 
429 
430  self.turret ‪vehicle::lights_on();
431  self.turret ‪clientfield::set( "toggle_keyline", 1 );
432  self.turret ‪clientfield::set( "retrievable", 1 );
433  self.turret.dt_damage_callback = &‪turret_update_damage;
434  self.turret ‪turret_update_damage();
435 
437  {
439 
440  if ( IsDefined( turret ) )
441  {
442  turret ‪turret_delete();
443  }
444  }
445 }
446 
448 {
450  health_factor = self.health / self.healthmax;
451 
452  new_health = 0;
453  while( new_health < level.deploy_turret_damage_states-1 &&
454  health_factor <= level.deploy_turret_damage_amt[new_health+1] )
455  {
456  new_health = new_health+1;
457  }
458 
459  if ( !‪IS_EQUAL( self.dt_damage_state, new_health ) )
460  {
461  self ‪clientfield::set( "dt_damage_state", new_health );
462  self.dt_damage_state = new_health;
463  if ( new_health >= level.deploy_turret_damage_states-1 )
464  self thread ‪turret_delete( 3.0, true );
465 
466  }
467 }
468 
469 #define TURRET_DAMAGE_STATES 2
470 #define TURRET_DAMAGE_AMT_1 0.5
471 #define TURRET_DAMAGE_FX_1 "destruct/fx_dest_turret_1"
472 #define TURRET_DAMAGE_AMT_2 0.25
473 #define TURRET_DAMAGE_FX_2 "destruct/fx_dest_turret_2"
474 
476 {
477  level.deploy_turret_damage_states = ‪TURRET_DAMAGE_STATES + 2;
478  level.deploy_turret_damage_amt = [];
479  level.deploy_turret_damage_fx = [];
480  level.deploy_turret_damage_amt[0] = 1.0;
481  level.deploy_turret_damage_fx[0] = undefined;
482  level.deploy_turret_damage_amt[1] = ‪TURRET_DAMAGE_AMT_1;
483  level.deploy_turret_damage_fx[1] = ‪TURRET_DAMAGE_FX_1;
484  level.deploy_turret_damage_amt[2] = ‪TURRET_DAMAGE_AMT_2;
485  level.deploy_turret_damage_fx[2] = ‪TURRET_DAMAGE_FX_2;
486  level.deploy_turret_damage_amt[3] = 0.0;
487  level.deploy_turret_damage_fx[3] = undefined;
488 
489 }
490 
491 
493 {
494  self endon("disconnect");
495  wait 0.5;
496  while( IsDefined(self.turret) )
497  {
500  }
501 }
502 
503 
505 {
506  if ( ‪IS_TRUE(turret.is_hacked) )
507  return 100;
508 
509  dpower = -1 * delta * ‪use;
510 
511  power = self GadgetPowerChange( self.turret_slot, dpower );
512 
513  if (power <=0)
514  {
515  turret ‪turret_delete();
516  }
517 
518  return power;
519 }
520 
522 {
523  self notify("resume_turret_power");
524  self endon("resume_turret_power");
525  startpower = self GadgetPowerChange( self.turret_slot, 0 );
526  while( IsDefined(self) && IsDefined(self.turret) )
527  {
528  curpower = self GadgetPowerChange( self.turret_slot, 0 );
529  self GadgetPowerChange( self.turret_slot, startpower-curpower );
530 
532  }
533 }
534 
535 
536 
537 function ‪turret_delete( time, ‪explode )
538 {
539  self ‪clientfield::set( "toggle_keyline", 0 );
540  self ‪clientfield::set( "retrievable", 0 );
541  if ( IsDefined(self.owner) )
542  {
543  self.owner.turret = undefined;
544  }
545  if ( IsDefined(self.prompt_trigger) )
546  {
547  self.prompt_trigger delete();
548  self.prompt_trigger=undefined;
549  }
550  if (IsDefined(time))
551  {
552  wait time;
553  }
554  if ( ‪IS_TRUE(‪explode) )
555  {
556  ‪PlayFx( level._effect["turret_explode"], self.origin+(0,0,20) );
557  }
558  if (IsDefined(self))
559  {
560  self Ghost();
561  }
562  wait 1;
563  if (IsDefined(self))
564  {
565  self delete();
566  }
567 }
568 
569 
570 
571 
572 
573 function ‪turret_can_be_hacked( player )
574 {
575  if ( isdefined( player ) && isdefined( player.team ) && ( player.team == "spectator" ))
576  {
577  return false;
578  }
579 
580  v_eye = player ‪util::get_eye();
581  b_can_see = SightTracePassed( v_eye, self.origin + (0,0,30), false, self );
582 
583  if ( !b_can_see )
584  {
585  return false;
586  }
587 
588  if ( isdefined( player ) && isdefined( player.team ))
589  {
590  team = player.team;
591 
592  // using the player team to determine team base games
593  if ( team == "free" )
594  {
595  owner = self.owner;
596  if ( ‪IS_TRUE(self.is_hacked) )
597  owner = self.hacker;
598 
599  if ( isdefined( owner ) && owner == player )
600  {
601  return false;
602  }
603  }
604  else if ( self.team == team )
605  {
606  return false;
607  }
608  }
609 
610  return true;
611 }
612 
613 function ‪turret_hack_start( hacker )
614 {
615  self.owner thread ‪keep_power_constant();
616  self ‪clientfield::set( "vehicle_hack", 1 );
617  self ‪vehicle::lights_off();
618 }
619 
620 function ‪turret_hack_fail( hacker )
621 {
622  self.owner notify( "resume_turret_power" );
623  self ‪vehicle::lights_on();
624  self ‪clientfield::set( "vehicle_hack", 0 );
625 }
626 
627 function ‪turret_hacked( hacker )
628 {
629  self notify("turret_hacked");
630  self endon("turret_hacked");
631  self endon( "death" );
632  if ( ‪TURRET_HACK_TIMER <= 0 )
633  {
634  self.is_hacked = 1;
635  self.hacker = hacker;
636  hacker ‪set_player_turret(self);
637  }
638  else
639  {
640  if (hacker != self.owner)
641  {
642  self.prompt_trigger setInvisibleToPlayer( self.owner );
643  self SetTeam(hacker.team);
644  if (IsDefined(level.setEntityHeadIcon) )
645  {
646  self [[level.setEntityHeadIcon]]( hacker.team, self.owner, ‪HEADICON_OFFSET );
647  }
648  self.hacker = hacker;
649  self.is_hacked = 1;
650  self ‪vehicle::lights_on();
651  self.owner thread ‪keep_power_constant();
652  self thread ‪wait_and_clear_hack();
654  self ‪vehicle::lights_off();
657  }
658  self.owner notify( "resume_turret_power" );
659  self ‪clientfield::set( "vehicle_hack", 0 );
660  self.is_hacked = 0;
661  self.hacker = undefined;
662  if (IsDefined(self.owner))
663  {
664  self.prompt_trigger setVisibleToPlayer( self.owner );
665  self SetTeam(self.owner.team);
666  if (IsDefined(level.setEntityHeadIcon) )
667  {
668  self [[level.setEntityHeadIcon]]( self.owner.team, self.owner, ‪HEADICON_OFFSET );
669  }
670  }
671  else
672  {
673  self ‪turret_delete();
674  }
675  }
676  self ‪vehicle::lights_on();
677 
678 }
679 
681 {
683  self ‪clientfield::set( "vehicle_hack", 0 );
684 }
685 
686 
687 
‪setup_turret_damage_states
‪function setup_turret_damage_states()
Definition: _gadget_turret_deploy.gsc:475
‪TURRET_DAMAGE_FX_2
‪#define TURRET_DAMAGE_FX_2
Definition: _gadget_turret_deploy.gsc:473
‪turret_precache
‪function turret_precache()
Definition: _gadget_turret_deploy.gsc:104
‪TURRET_HACKER_TIME
‪#define TURRET_HACKER_TIME
Definition: _gadget_turret_deploy.gsc:50
‪register_gadget_is_flickering_callbacks
‪function register_gadget_is_flickering_callbacks(type, flickering_func)
Definition: _ability_player.gsc:299
‪lights_off
‪function lights_off(localClientNum)
Definition: vehicle_shared.csc:652
‪wait_and_clear_hack
‪function wait_and_clear_hack()
Definition: _gadget_turret_deploy.gsc:680
‪TURRET_TIMEOUT_SELF_DESTRUCT
‪#define TURRET_TIMEOUT_SELF_DESTRUCT
Definition: _gadget_turret_deploy.gsc:47
‪turret_hacked
‪function turret_hacked(hacker)
Definition: _gadget_turret_deploy.gsc:627
‪switch_player_gadget
‪function switch_player_gadget()
Definition: _gadget_turret_deploy.gsc:313
‪register_gadget_possession_callbacks
‪function register_gadget_possession_callbacks(type, on_give, on_take)
Definition: _ability_player.gsc:221
‪TURRET_RECOVERY_PROMPT_0
‪#define TURRET_RECOVERY_PROMPT_0
Definition: _gadget_turret_deploy.gsc:45
‪gadget_turret_deploy_on_give
‪function gadget_turret_deploy_on_give(slot, weapon)
Definition: _gadget_turret_deploy.gsc:124
‪watch_player_death
‪function watch_player_death(owner)
Definition: _gadget_turret_deploy.gsc:336
‪TURRET_BURST_POWER_RESUME
‪#define TURRET_BURST_POWER_RESUME
Definition: _gadget_turret_deploy.gsc:57
‪drop_to_ground
‪function drop_to_ground()
Definition: _gadget_turret_deploy.gsc:354
‪gadget_turret_deploy_on_connect
‪function gadget_turret_deploy_on_connect()
Definition: _gadget_turret_deploy.gsc:134
‪turret_update_damage
‪function turret_update_damage()
Definition: _gadget_turret_deploy.gsc:447
‪clear
‪function clear(str_flag)
Definition: flag_shared.csc:130
‪TURRET_DAMAGE_AMT_1
‪#define TURRET_DAMAGE_AMT_1
Definition: _gadget_turret_deploy.gsc:470
‪register_gadget_is_inuse_callbacks
‪function register_gadget_is_inuse_callbacks(type, inuse_func)
Definition: _ability_player.gsc:289
‪VERSION_SHIP
‪#define VERSION_SHIP
Definition: version.gsh:36
‪gadget_turret_deploy_on
‪function gadget_turret_deploy_on(slot)
Definition: _gadget_turret_deploy.gsc:145
‪TURRET_SPAWN
‪#define TURRET_SPAWN
Definition: _gadget_turret_deploy.gsc:27
‪HEADICON_OFFSET
‪#define HEADICON_OFFSET
Definition: _gadget_turret_deploy.gsc:284
‪TURRET_SIGHT_LATENCY
‪#define TURRET_SIGHT_LATENCY
Definition: _gadget_turret_deploy.gsc:64
‪TURRET_MODEL
‪#define TURRET_MODEL
Definition: _gadget_turret_deploy.gsc:37
‪trace
‪function trace(from, to, target)
Definition: grapple.gsc:369
‪TURRET_RECOVER_POWER_USE
‪#define TURRET_RECOVER_POWER_USE
Definition: _gadget_turret_deploy.gsc:59
‪turret_hack_start
‪function turret_hack_start(hacker)
Definition: _gadget_turret_deploy.gsc:613
‪spawn
‪function spawn(v_origin=(0, 0, 0), v_angles=(0, 0, 0))
Definition: struct.csc:23
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪get
‪function get(kvp_value, kvp_key="targetname")
Definition: struct.csc:13
‪GADGET_FLAG
‪#define GADGET_FLAG
Definition: _gadget_turret_deploy.gsc:20
‪register_gadget_flicker_callbacks
‪function register_gadget_flicker_callbacks(type, on_flicker)
Definition: _ability_player.gsc:253
‪gadget_turret_deploy_off
‪function gadget_turret_deploy_off(slot)
Definition: _gadget_turret_deploy.gsc:270
‪use
‪function use(str_name, str_key="targetname", ent, b_assert=true)
Definition: trigger_shared.gsc:1059
‪TURRET_HACKER_COST
‪#define TURRET_HACKER_COST
Definition: _gadget_turret_deploy.gsc:51
‪watch_turret_recovery
‪function watch_turret_recovery(slot)
Definition: _gadget_turret_deploy.gsc:247
‪gadget_turret_deploy_is_inuse
‪function gadget_turret_deploy_is_inuse(slot)
Definition: _gadget_turret_deploy.gsc:110
‪turret_delete
‪function turret_delete(time, explode)
Definition: _gadget_turret_deploy.gsc:537
‪TURRET_RECOVERY_HOLDTIME
‪#define TURRET_RECOVERY_HOLDTIME
Definition: _gadget_turret_deploy.gsc:44
‪get_gadget_name
‪function get_gadget_name()
Definition: _gadget_turret_deploy.gsc:94
‪gadget_turret_deploy_on_take
‪function gadget_turret_deploy_on_take(slot)
Definition: _gadget_turret_deploy.gsc:128
‪__init__
‪function __init__()
Definition: _gadget_turret_deploy.gsc:68
‪turret_can_be_hacked
‪function turret_can_be_hacked(player)
Definition: _gadget_turret_deploy.gsc:573
‪TURRET_DAMAGE_FX_1
‪#define TURRET_DAMAGE_FX_1
Definition: _gadget_turret_deploy.gsc:471
‪wait_network_frame
‪function wait_network_frame(n_count=1)
Definition: util_shared.gsc:64
‪GADGET_TYPE_TURRET_DEPLOY
‪#define GADGET_TYPE_TURRET_DEPLOY
Definition: _ability_util.gsh:12
‪explode
‪function explode()
Definition: _straferun.gsc:705
‪gadget_turret_deploy_is_flickering
‪function gadget_turret_deploy_is_flickering(slot)
Definition: _gadget_turret_deploy.gsc:115
‪turret_gadget_deploy_think
‪function turret_gadget_deploy_think(player, power_callback, cutoff_power, resume_power)
Definition: _deploy_turret.gsc:30
‪GADGET_RECOVER_FLAG
‪#define GADGET_RECOVER_FLAG
Definition: _gadget_turret_deploy.gsc:22
‪set_player_turret
‪function set_player_turret(turret)
Definition: _gadget_turret_deploy.gsc:287
‪GADGET_READY_FLAG
‪#define GADGET_READY_FLAG
Definition: _gadget_turret_deploy.gsc:21
‪TURRET_FOV_COS_BUSY
‪#define TURRET_FOV_COS_BUSY
Definition: _gadget_turret_deploy.gsc:62
‪register_gadget_activation_callbacks
‪function register_gadget_activation_callbacks(type, turn_on, turn_off)
Definition: _ability_player.gsc:237
‪get_gadget_recover_name
‪function get_gadget_recover_name()
Definition: _gadget_turret_deploy.gsc:99
‪SERVER_FRAME
‪#define SERVER_FRAME
Definition: shared.gsh:264
‪keep_power_constant
‪function keep_power_constant()
Definition: _gadget_turret_deploy.gsc:521
‪TURRET_FOV_COS
‪#define TURRET_FOV_COS
Definition: _gadget_turret_deploy.gsc:61
‪add_hackable_object
‪function add_hackable_object(obj, test_callback, start_callback, fail_callback, complete_callback)
Definition: hackable.gsc:29
‪TURRET_DAMAGE_STATES
‪#define TURRET_DAMAGE_STATES
Definition: _gadget_turret_deploy.gsc:469
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪Spawn
‪function Spawn(parent, onDeathCallback)
Definition: _flak_drone.gsc:427
‪init
‪function init()
Definition: struct.csc:1
‪turret_owner_power_callback
‪function turret_owner_power_callback(turret, delta, use=TURRET_BURST_POWER_USE)
Definition: _gadget_turret_deploy.gsc:504
‪TURRET_CARRY_DIST
‪#define TURRET_CARRY_DIST
Definition: _gadget_turret_deploy.gsc:143
‪can_recover_turret
‪function can_recover_turret(turret)
Definition: _gadget_turret_deploy.gsc:217
‪turret_drain_power
‪function turret_drain_power()
Definition: _gadget_turret_deploy.gsc:492
‪TURRET_BURST_POWER_CUTOFF
‪#define TURRET_BURST_POWER_CUTOFF
Definition: _gadget_turret_deploy.gsc:56
‪turret_hack_fail
‪function turret_hack_fail(hacker)
Definition: _gadget_turret_deploy.gsc:620
‪set
‪function set(str_field_name, n_value)
Definition: clientfield_shared.gsc:34
‪IS_EQUAL
‪#define IS_EQUAL(__a, __b)
Definition: shared.gsh:250
‪button_pressed
‪function button_pressed(slot)
Definition: _gadget_turret_deploy.gsc:240
‪TURRET_RECOVERY_ANGLEDOT
‪#define TURRET_RECOVERY_ANGLEDOT
Definition: _gadget_turret_deploy.gsc:43
‪TURRET_EXPLODE
‪#define TURRET_EXPLODE
Definition: _gadget_turret_deploy.gsc:26
‪TURRET_HACK_TIMER
‪#define TURRET_HACK_TIMER
Definition: _gadget_turret_deploy.gsc:49
‪TURRET_DRAIN_POWER_USE
‪#define TURRET_DRAIN_POWER_USE
Definition: _gadget_turret_deploy.gsc:54
‪TURRET_DAMAGE_AMT_2
‪#define TURRET_DAMAGE_AMT_2
Definition: _gadget_turret_deploy.gsc:472
‪gadget_turret_deploy_failed_activate
‪function gadget_turret_deploy_failed_activate()
Definition: _gadget_turret_deploy.gsc:139
‪gadget_turret_deploy_on_flicker
‪function gadget_turret_deploy_on_flicker(slot)
Definition: _gadget_turret_deploy.gsc:120
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪deploy_turret
‪function deploy_turret(slot)
Definition: _gadget_turret_deploy.gsc:367
‪TURRET_DROP_POWER_USE
‪#define TURRET_DROP_POWER_USE
Definition: _gadget_turret_deploy.gsc:58
‪on_connect
‪function on_connect()
Definition: _arena.gsc:20
‪register_gadget_failed_activate_callback
‪function register_gadget_failed_activate_callback(type, failed_activate)
Definition: _ability_player.gsc:309
‪TURRET_OFFSET
‪#define TURRET_OFFSET
Definition: _gadget_turret_deploy.gsc:39
‪TURRET_RECOVERY_PROMPT_1
‪#define TURRET_RECOVERY_PROMPT_1
Definition: _gadget_turret_deploy.gsc:46
‪lights_on
‪function lights_on(localClientNum, team)
Definition: vehicle_shared.csc:404
‪TURRET_BURST_POWER_USE
‪#define TURRET_BURST_POWER_USE
Definition: _gadget_turret_deploy.gsc:55
‪TURRET_MAX_SIGHT_DIST_SQ
‪#define TURRET_MAX_SIGHT_DIST_SQ
Definition: _gadget_turret_deploy.gsc:63
‪TURRET_RECOVERY_DISTANCE
‪#define TURRET_RECOVERY_DISTANCE
Definition: _gadget_turret_deploy.gsc:42
‪WAIT_SERVER_FRAME
‪#define WAIT_SERVER_FRAME
Definition: shared.gsh:265
‪get_eye
‪function get_eye()
Definition: util_shared.csc:948
‪PlayFx
‪function PlayFx(name)
Definition: _counteruav.gsc:390