‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_ability_player.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 #using scripts\shared\array_shared;
3 #using scripts\shared\bots\_bot;
4 #using scripts\shared\callbacks_shared;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\flag_shared;
7 #using scripts\shared\weapons\replay_gun;
8 #using scripts\shared\system_shared;
9 #using scripts\shared\util_shared;
10 #using scripts\shared\visionset_mgr_shared;
11 
12 #using scripts\shared\abilities\_ability_gadgets;
13 #using scripts\shared\abilities\_ability_power;
14 #using scripts\shared\abilities\_ability_util;
15 
16 #using scripts\shared\abilities\gadgets\_gadget_armor; // for loading purposes only - do not use from here
17 #using scripts\shared\abilities\gadgets\_gadget_speed_burst; // for loading purposes only - do not use from here
18 #using scripts\shared\abilities\gadgets\_gadget_camo; // for loading purposes only - do not use from here
19 #using scripts\shared\abilities\gadgets\_gadget_vision_pulse; // for loading purposes only - do not use from here
20 #using scripts\shared\abilities\gadgets\_gadget_hero_weapon; // for loading purposes only - do not use from here
21 #using scripts\shared\abilities\gadgets\_gadget_other; // for loading purposes only - do not use from here
22 #using scripts\shared\abilities\gadgets\_gadget_combat_efficiency; // for loading purposes only - do not use from here
23 #using scripts\shared\abilities\gadgets\_gadget_flashback; // for loading purposes only - do not use from here
24 #using scripts\shared\abilities\gadgets\_gadget_cleanse; // for loading purposes only - do not use from here
25 
26 #using scripts\shared\abilities\gadgets\_gadget_system_overload; // for loading purposes only - do not use from here
27 #using scripts\shared\abilities\gadgets\_gadget_servo_shortout; // for loading purposes only - do not use from here
28 #using scripts\shared\abilities\gadgets\_gadget_exo_breakdown; // for loading purposes only - do not use from here
29 #using scripts\shared\abilities\gadgets\_gadget_surge; // for loading purposes only - do not use from here
30 #using scripts\shared\abilities\gadgets\_gadget_security_breach; // for loading purposes only - do not use from here
31 #using scripts\shared\abilities\gadgets\_gadget_iff_override; // for loading purposes only - do not use from here
32 #using scripts\shared\abilities\gadgets\_gadget_cacophany; // for loading purposes only - do not use from here
33 #using scripts\shared\abilities\gadgets\_gadget_es_strike; // for loading purposes only - do not use from here
34 #using scripts\shared\abilities\gadgets\_gadget_ravage_core; // for loading purposes only - do not use from here
35 #using scripts\shared\abilities\gadgets\_gadget_concussive_wave; // for loading purposes only - do not use from here
36 #using scripts\shared\abilities\gadgets\_gadget_overdrive; // for loading purposes only - do not use from here
37 #using scripts\shared\abilities\gadgets\_gadget_unstoppable_force; // for loading purposes only - do not use from here
38 #using scripts\shared\abilities\gadgets\_gadget_rapid_strike; // for loading purposes only - do not use from here
39 #using scripts\shared\abilities\gadgets\_gadget_sensory_overload; // for loading purposes only - do not use from here
40 #using scripts\shared\abilities\gadgets\_gadget_forced_malfunction; // for loading purposes only - do not use from here
41 #using scripts\shared\abilities\gadgets\_gadget_immolation; // for loading purposes only - do not use from here
42 #using scripts\shared\abilities\gadgets\_gadget_firefly_swarm; // for loading purposes only - do not use from here
43 #using scripts\shared\abilities\gadgets\_gadget_smokescreen; // for loading purposes only - do not use from here
44 #using scripts\shared\abilities\gadgets\_gadget_misdirection; // for loading purposes only - do not use from here
45 #using scripts\shared\abilities\gadgets\_gadget_mrpukey; // for loading purposes only - do not use from here
46 #using scripts\shared\abilities\gadgets\_gadget_active_camo; // for loading purposes only - do not use from here
47 
48 #using scripts\shared\abilities\gadgets\_gadget_shock_field; // for loading purposes only - do not use from here
49 #using scripts\shared\abilities\gadgets\_gadget_resurrect; // for loading purposes only - do not use from here
50 #using scripts\shared\abilities\gadgets\_gadget_heat_wave; // for loading purposes only - do not use from here
51 #using scripts\shared\abilities\gadgets\_gadget_clone; // for loading purposes only - do not use from here
52 #using scripts\shared\abilities\gadgets\_gadget_roulette; // for loading purposes only - do not use from here
53 #using scripts\shared\abilities\gadgets\_gadget_thief; // for loading purposes only - do not use from here
54 
55 #insert scripts\shared\shared.gsh;
56 #insert scripts\shared\version.gsh;
57 #insert scripts\shared\abilities\_ability_util.gsh;
58 #insert scripts\shared\statstable_shared.gsh;
59 
60 #namespace ability_player;
61 
62 ‪REGISTER_SYSTEM( "ability_player", &‪__init__, undefined )
63 
64 //---------------------------------------------------------
65 // Init
66 function ‪__init__()
67 {
69 
71 
72  level thread ‪gadgets_wait_for_game_end();
73 
77 
78  ‪DEFAULT( level._gadgets_level, [] );
79 }
80 
82 {
83 }
84 
86 {
87 }
88 
90 {
91  ‪DEFAULT( self._gadgets_player, [] );
92 }
93 
95 {
96  self thread ‪gadgets_wait_for_death();
97  self.heroAbilityActivateTime = undefined;
98  self.heroAbilityDectivateTime = undefined;
99  self.heroAbilityActive = undefined;
100 }
101 
103 {
104 }
105 
107 {
108  if ( !isPlayer( self ) )
109  return false;
110 
111  for ( i = ‪GADGET_HELD_0; i < ‪GADGET_HELD_COUNT; i++ )
112  {
113  if ( self ‪gadget_is_in_use( i ) )
114  {
115  return true;
116  }
117  }
118 
119  return false;
120 }
121 
123 {
124  for ( slot = ‪GADGET_HELD_0; slot < ‪GADGET_HELD_COUNT; slot++ )
125  {
126  if ( !isdefined( self._gadgets_player[slot] ) )
127  {
128  continue;
129  }
130 
131  gadgetWeapon = self._gadgets_player[slot];
132 
133  powerLeft = self GadgetPowerChange( slot, 0.0 );
134 
135  if ( ‪game_ended && ‪gadget_is_in_use( slot ) )
136  {
137  self GadgetDeactivate( slot, gadgetweapon );
138 
139  if ( gadgetWeapon.gadget_power_round_end_active_penalty > 0 )
140  {
141  powerLeft = powerLeft - gadgetWeapon.gadget_power_round_end_active_penalty;
142  powerLeft = max( 0.0, powerLeft );
143  }
144  }
145 
146  self.pers["held_gadgets_power"][gadgetWeapon] = powerLeft;
147  }
148 }
149 
151 {
152  self endon( "disconnect" );
153 
154  self.pers["held_gadgets_power"] = [];
155 
156  self waittill( "death" );
157 
158  if ( !isdefined( self._gadgets_player ) )
159  {
160  return;
161  }
162 
163  self ‪gadgets_save_power( false );
164 }
165 
167 {
168  level waittill( "game_ended" );
169 
170  players = GetPlayers();
171 
172  foreach ( player in players )
173  {
174  if ( !IsAlive( player ) )
175  {
176  continue;
177  }
178 
179  if ( !isdefined( player._gadgets_player ) )
180  {
181  continue;
182  }
183 
184  player ‪gadgets_save_power( true );
185  }
186 }
187 
188 // Call this to change player class from script
189 function ‪script_set_cclass( cclass, save = true )
190 {
191 }
192 
193 //---------------------------------------------------------
194 // gadgets
195 
196 function ‪update_gadget( weapon )
197 {
198 }
199 
200 function ‪register_gadget( type )
201 {
202  ‪DEFAULT( level._gadgets_level, [] );
203 
204  if ( !IsDefined( level._gadgets_level[ type ] ) )
205  {
206  level._gadgets_level[ type ] = spawnstruct();
207  level._gadgets_level[ type ].should_notify = true;
208  }
209 }
210 
211 function ‪register_gadget_should_notify( type, should_notify )
212 {
213  ‪register_gadget( type );
214 
215  if( isDefined( should_notify ) )
216  {
217  level._gadgets_level[ type ].should_notify = should_notify;
218  }
219 }
220 
221 function ‪register_gadget_possession_callbacks( type, on_give, on_take )
222 {
223  ‪register_gadget( type );
224 
225  ‪DEFAULT(level._gadgets_level[ type ].on_give, []);
226  ‪DEFAULT(level._gadgets_level[ type ].on_take, []);
227  if ( IsDefined(on_give) )
228  {
229  ‪ARRAY_ADD(level._gadgets_level[ type ].on_give,on_give);
230  }
231  if ( IsDefined(on_take) )
232  {
233  ‪ARRAY_ADD(level._gadgets_level[ type ].on_take,on_take);
234  }
235 }
236 
238 {
239  ‪register_gadget( type );
240 
241  ‪DEFAULT(level._gadgets_level[ type ].turn_on, []);
242  ‪DEFAULT(level._gadgets_level[ type ].turn_off, []);
243  if ( IsDefined(‪turn_on) )
244  {
245  ‪ARRAY_ADD(level._gadgets_level[ type ].turn_on,‪turn_on);
246  }
247  if ( IsDefined(‪turn_off) )
248  {
249  ‪ARRAY_ADD(level._gadgets_level[ type ].turn_off,‪turn_off);
250  }
251 }
252 
253 function ‪register_gadget_flicker_callbacks( type, on_flicker )
254 {
255  ‪register_gadget( type );
256 
257  ‪DEFAULT( level._gadgets_level[ type ].on_flicker, [] );
258 
259  if ( IsDefined( on_flicker ) )
260  {
261  ‪ARRAY_ADD( level._gadgets_level[ type ].on_flicker, on_flicker );
262  }
263 }
264 
265 function ‪register_gadget_ready_callbacks( type, ready_func )
266 {
267  ‪register_gadget( type );
268 
269  ‪DEFAULT( level._gadgets_level[ type ].on_ready, [] );
270 
271  if ( IsDefined( ready_func ) )
272  {
273  ‪ARRAY_ADD( level._gadgets_level[ type ].on_ready, ready_func );
274  }
275 }
276 
277 function ‪register_gadget_primed_callbacks( type, primed_func )
278 {
279  ‪register_gadget( type );
280 
281  ‪DEFAULT( level._gadgets_level[ type ].on_primed, [] );
282 
283  if ( IsDefined( primed_func ) )
284  {
285  ‪ARRAY_ADD( level._gadgets_level[ type ].on_primed, primed_func );
286  }
287 }
288 
289 function ‪register_gadget_is_inuse_callbacks( type, inuse_func )
290 {
291  ‪register_gadget( type );
292 
293  if ( IsDefined( inuse_func ) )
294  {
295  level._gadgets_level[ type ].isInUse = inuse_func;
296  }
297 }
298 
299 function ‪register_gadget_is_flickering_callbacks( type, flickering_func )
300 {
301  ‪register_gadget( type );
302 
303  if ( IsDefined( flickering_func ) )
304  {
305  level._gadgets_level[ type ].isFlickering = flickering_func;
306  }
307 }
308 
309 function ‪register_gadget_failed_activate_callback( type, failed_activate )
310 {
311  ‪register_gadget( type );
312 
313  ‪DEFAULT( level._gadgets_level[ type ].failed_activate, [] );
314 
315  if ( IsDefined( failed_activate ) )
316  {
317  ‪ARRAY_ADD( level._gadgets_level[ type ].failed_activate, failed_activate );
318  }
319 }
320 
321 function ‪gadget_is_in_use( slot )
322 {
323  if ( IsDefined( self._gadgets_player[slot] ) )
324  {
325  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
326  {
327  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].isInUse ) )
328  {
329  return self [[level._gadgets_level[ self._gadgets_player[slot].gadget_type ].isInUse]]( slot );
330  }
331  }
332  }
333 
334  return self GadgetIsActive( slot );
335 }
336 
337 function ‪gadget_is_flickering( slot )
338 {
339  if ( !IsDefined( self._gadgets_player[slot] ) )
340  {
341  return false;
342  }
343 
344  if ( !IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].isFlickering ) )
345  {
346  return false;
347  }
348 
349  return self [[level._gadgets_level[ self._gadgets_player[slot].gadget_type ].isFlickering]]( slot );
350 }
351 
352 function ‪give_gadget( slot, weapon )
353 {
354  if ( IsDefined( self._gadgets_player[slot] ) )
355  {
356  self ‪take_gadget( slot, self._gadgets_player[slot] );
357  }
358 
359  for ( eSlot = ‪GADGET_HELD_0; eSlot < ‪GADGET_HELD_COUNT; eSlot++ )
360  {
361  existingGadget = self._gadgets_player[eSlot];
362 
363  if ( IsDefined( existingGadget ) && existingGadget == weapon )
364  {
365  self ‪take_gadget( eSlot, existingGadget );
366  }
367  }
368 
369  self._gadgets_player[slot] = weapon;
370 
371  if ( !IsDefined( self._gadgets_player[slot] ) )
372  {
373  return;
374  }
375 
376  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
377  {
378  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_give ) )
379  {
380  foreach( on_give in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_give )
381  self [[on_give]]( slot, weapon );
382  }
383  }
384 
385  if ( SessionModeIsMultiplayerGame() )
386  {
387  self.heroAbilityName = ( isdefined( weapon ) ? weapon.name : undefined );
388  }
389 }
390 
391 function ‪take_gadget( slot, weapon )
392 {
393  if ( !IsDefined( self._gadgets_player[slot] ) )
394  {
395  return;
396  }
397 
398  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
399  {
400  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_take ) )
401  {
402  foreach( on_take in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_take )
403  self [[on_take]]( slot, weapon );
404  }
405  }
406 
407  self._gadgets_player[slot] = undefined;
408 
409 }
410 
411 function ‪turn_gadget_on( slot, weapon )
412 {
413  if ( !IsDefined( self._gadgets_player[slot] ) )
414  {
415  return;
416  }
417 
418  self.playedGadgetSuccess = false;
419 
420  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
421  {
422  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].turn_on ) )
423  {
424  foreach( ‪turn_on in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].turn_on )
425  {
426  self [[‪turn_on]]( slot, weapon );
427 
428  self trackHeroPowerActivated( game["timepassed"] );
429 
430  level notify( "hero_gadget_activated", self, weapon );
431  self notify( "hero_gadget_activated", weapon );
432  }
433  }
434  }
435 
436  if( IsDefined( level.cybercom ) && IsDefined( level.cybercom._ability_turn_on ) )
437  {
438  self [[level.cybercom._ability_turn_on]]( slot, weapon );
439  }
440 
441  // Make this persistant so we don't re-notify when a new round begins
442  self.pers["heroGadgetNotified"] = false;
443 
444  xuid = self GetXUID();
445 
446 
447  if ( isdefined( level.playGadgetActivate ) )
448  {
449  self [[level.playGadgetActivate]]( weapon );
450  }
451 
452  if ( weapon.gadget_type != ‪GADGET_TYPE_HERO_WEAPON )
453  {
454  if ( isdefined ( self.isNearDeath ) && self.isNearDeath == true )
455  {
456  if ( isdefined( level.heroAbilityActivateNearDeath ) )
457  {
458  [[level.heroAbilityActivateNearDeath]]();
459  }
460  }
461  self.heroAbilityActivateTime = getTime();
462  self.heroAbilityActive = true;
463  self.heroAbility = weapon;
464  }
465 
466  self thread ‪ability_power::power_consume_timer_think( slot, weapon );
467 }
468 
469 function ‪turn_gadget_off( slot, weapon )
470 {
471  if ( !IsDefined( self._gadgets_player[slot] ) )
472  {
473  return;
474  }
475 
476  if ( !IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
477  {
478  return;
479  }
480 
481  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].turn_off ) )
482  {
483  foreach( ‪turn_off in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].turn_off )
484  {
485  self [[‪turn_off]]( slot, weapon );
486 
487  // self.heroweaponShots and self.heroweaponHits may be undefined, and that's ok
488  dead = self.health <= 0;
489  self trackHeroPowerExpired( game["timepassed"], dead, self.heroweaponShots, self.heroweaponHits );
490 
491  }
492  }
493 
494  if( IsDefined( level.cybercom ) && IsDefined( level.cybercom._ability_turn_off ) )
495  {
496  self [[level.cybercom._ability_turn_off]]( slot, weapon );
497  }
498 
499  if ( weapon.gadget_type != ‪GADGET_TYPE_HERO_WEAPON )
500  {
501  if ( self IsEMPJammed() == true )
502  {
503  self GadgetTargetResult( false );
504 
505  if ( isdefined( level.callbackEndHeroSpecialistEMP ) )
506  {
507  if ( isdefined( weapon.gadget_turnoff_onempjammed ) && weapon.gadget_turnoff_onempjammed == true )
508  {
509  self thread [[level.callbackEndHeroSpecialistEMP]]();
510  }
511  }
512  }
513 
514  self.heroAbilityDectivateTime = getTime();
515  self.heroAbilityActive = undefined;
516  self.heroAbility = weapon;
517  }
518 
519  self notify( "heroAbility_off", weapon );
520 
521  xuid = self GetXUID();
522 
523  if ( ‪IS_TRUE( level.oldschool ) )
524  {
525  self TakeWeapon( weapon );
526  }
527 }
528 
529 function ‪gadget_CheckHeroAbilityKill( attacker )
530 {
531  heroAbilityStat = false;
532 
533  if ( isdefined( attacker.heroAbility ) )
534  {
535  switch( attacker.heroAbility.name )
536  {
537  case "gadget_armor":
538  case "gadget_clone":
539  case "gadget_speed_burst":
540  case "gadget_heat_wave":
541  {
542  if ( isdefined( attacker.heroAbilityActive ) || ( isdefined( attacker.heroAbilityDectivateTime ) && attacker.heroAbilityDectivateTime > gettime() - 100 ) )
543  {
544  heroAbilityStat = true;
545  }
546  break;
547  }
548  case "gadget_camo":
549  case "gadget_flashback":
550  case "gadget_resurrect":
551  {
552  if ( isdefined( attacker.heroAbilityActive )
553  || ( isdefined( attacker.heroAbilityDectivateTime ) && attacker.heroAbilityDectivateTime > gettime() - 6000 ) )
554  {
555  heroAbilityStat = true;
556  }
557  break;
558  }
559  case "gadget_vision_pulse":
560  {
561  if ( isdefined( attacker.visionPulseSpottedEnemyTime ) )
562  {
563  timeCutoff = getTime();
564  if ( attacker.visionPulseSpottedEnemyTime + 10000 > timeCutoff )
565  {
566  for ( i = 0; i < attacker.visionPulseSpottedEnemy.size; i++ )
567  {
568  spottedEnemy = attacker.visionPulseSpottedEnemy[i];
569  if ( spottedEnemy == self )
570  {
571  if ( self.lastSpawnTime < attacker.visionPulseSpottedEnemyTime )
572  {
573  heroAbilityStat = true;
574  break;
575  }
576  }
577  }
578  }
579  }
580  }
581  case "gadget_combat_efficiency":
582  {
583  if ( isdefined( attacker._gadget_combat_efficiency ) && attacker._gadget_combat_efficiency == true )
584  {
585  heroAbilityStat = true;
586  break;
587  }
588  else if ( isdefined( attacker.combatEfficiencyLastOnTime ) && attacker.combatEfficiencyLastOnTime > gettime() - 100 )
589  {
590  heroAbilityStat = true;
591  break;
592  }
593  }
594  }
595  }
596  return heroAbilityStat;
597 }
598 
599 
600 function ‪gadget_flicker( slot, weapon )
601 {
602  if ( !IsDefined( self._gadgets_player[slot] ) )
603  {
604  return;
605  }
606 
607  if ( !IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
608  {
609  return;
610  }
611 
612  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_flicker ) )
613  {
614  foreach( on_flicker in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_flicker )
615  self [[on_flicker]]( slot, weapon );
616  }
617 }
618 
619 function ‪gadget_ready( slot, weapon )
620 {
621  if ( !IsDefined( self._gadgets_player[slot] ) )
622  {
623  return;
624  }
625 
626  if ( !IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
627  {
628  return;
629  }
630 
631  if( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].should_notify ) && level._gadgets_level[ self._gadgets_player[slot].gadget_type ].should_notify )
632  {
633  if ( IsDefined( level.statsTableID ) )
634  {
635  itemRow = tableLookupRowNum( level.statsTableID, ‪STATS_TABLE_COL_REFERENCE, self._gadgets_player[slot].name );
636  if ( itemRow > -1 )
637  {
638  index = int(tableLookupColumnForRow( level.statsTableID, itemRow, ‪STATS_TABLE_COL_NUMBERING ));
639  if ( index != 0 )
640  {
641  self LUINotifyEvent( &"hero_weapon_received", 1, index );
642  self LUINotifyEventToSpectators( &"hero_weapon_received", 1, index );
643  }
644  }
645  }
646 
647  if ( !isdefined( level.gameEnded ) || !level.gameEnded )
648  {
649  if ( !isdefined( self.pers["heroGadgetNotified"] ) || !self.pers["heroGadgetNotified"] )
650  {
651  self.pers["heroGadgetNotified"] = true;
652 
653  if ( isdefined( level.playGadgetReady ) )
654  {
655  self [[level.playGadgetReady]]( weapon );
656  }
657 
658  self trackHeroPowerAvailable( game["timepassed"] );
659  }
660  }
661  }
662 
663  xuid = self GetXUID();
664 
665  // Do gadget callback last, as it can modify the gadget itself ( roulette )
666  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_ready ) )
667  {
668  foreach( on_ready in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_ready )
669  self [[on_ready]]( slot, weapon );
670  }
671 }
672 
673 function ‪gadget_primed( slot, weapon )
674 {
675  if ( !IsDefined( self._gadgets_player[slot] ) )
676  {
677  return;
678  }
679 
680  if ( !IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ] ) )
681  {
682  return;
683  }
684 
685  if ( IsDefined( level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_primed ) )
686  {
687  foreach( on_primed in level._gadgets_level[ self._gadgets_player[slot].gadget_type ].on_primed )
688  self [[on_primed]]( slot, weapon );
689  }
690 }
691 
‪register_gadget_is_flickering_callbacks
‪function register_gadget_is_flickering_callbacks(type, flickering_func)
Definition: _ability_player.gsc:299
‪gadget_is_flickering
‪function gadget_is_flickering(slot)
Definition: _ability_player.gsc:337
‪turn_off
‪function turn_off()
Definition: ctf.gsc:1319
‪register_gadget_possession_callbacks
‪function register_gadget_possession_callbacks(type, on_give, on_take)
Definition: _ability_player.gsc:221
‪GADGET_TYPE_HERO_WEAPON
‪#define GADGET_TYPE_HERO_WEAPON
Definition: _ability_util.gsh:18
‪init_abilities
‪function init_abilities()
Definition: _ability_player.gsc:81
‪register_gadget_is_inuse_callbacks
‪function register_gadget_is_inuse_callbacks(type, inuse_func)
Definition: _ability_player.gsc:289
‪GADGET_HELD_0
‪#define GADGET_HELD_0
Definition: _ability_util.gsh:59
‪setup_clientfields
‪function setup_clientfields()
Definition: _ability_player.gsc:85
‪give_gadget
‪function give_gadget(slot, weapon)
Definition: _ability_player.gsc:352
‪register_gadget_should_notify
‪function register_gadget_should_notify(type, should_notify)
Definition: _ability_player.gsc:211
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪on_disconnect
‪function on_disconnect()
Definition: _wager.gsc:88
‪register_gadget_flicker_callbacks
‪function register_gadget_flicker_callbacks(type, on_flicker)
Definition: _ability_player.gsc:253
‪register_gadget_ready_callbacks
‪function register_gadget_ready_callbacks(type, ready_func)
Definition: _ability_player.gsc:265
‪STATS_TABLE_COL_NUMBERING
‪#define STATS_TABLE_COL_NUMBERING
Definition: _statstable.gsh:3
‪gadget_is_in_use
‪function gadget_is_in_use(slot)
Definition: _ability_player.gsc:321
‪update_gadget
‪function update_gadget(weapon)
Definition: _ability_player.gsc:196
‪turn_gadget_on
‪function turn_gadget_on(slot, weapon)
Definition: _ability_player.gsc:411
‪DEFAULT
‪#define DEFAULT(__var, __default)
Definition: shared.gsh:270
‪on_player_disconnect
‪function on_player_disconnect()
Definition: _ability_player.gsc:102
‪on_spawned
‪function on_spawned(func, obj)
Definition: callbacks_shared.csc:245
‪on_player_connect
‪function on_player_connect()
Definition: _ability_player.gsc:89
‪GADGET_HELD_COUNT
‪#define GADGET_HELD_COUNT
Definition: _ability_util.gsh:62
‪register_gadget_activation_callbacks
‪function register_gadget_activation_callbacks(type, turn_on, turn_off)
Definition: _ability_player.gsc:237
‪gadget_primed
‪function gadget_primed(slot, weapon)
Definition: _ability_player.gsc:673
‪ARRAY_ADD
‪#define ARRAY_ADD(__array, __item)
Definition: shared.gsh:304
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪game_ended
‪function game_ended(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _globallogic.csc:45
‪script_set_cclass
‪function script_set_cclass(cclass, save=true)
Definition: _ability_player.gsc:189
‪turn_gadget_off
‪function turn_gadget_off(slot, weapon)
Definition: _ability_player.gsc:469
‪is_using_any_gadget
‪function is_using_any_gadget()
Definition: _ability_player.gsc:106
‪gadgets_save_power
‪function gadgets_save_power(game_ended)
Definition: _ability_player.gsc:122
‪gadget_CheckHeroAbilityKill
‪function gadget_CheckHeroAbilityKill(attacker)
Definition: _ability_player.gsc:529
‪STATS_TABLE_COL_REFERENCE
‪#define STATS_TABLE_COL_REFERENCE
Definition: _statstable.gsh:6
‪__init__
‪function __init__()
Definition: _ability_player.gsc:66
‪on_player_spawned
‪function on_player_spawned()
Definition: _ability_player.gsc:94
‪turn_on
‪function turn_on()
Definition: ctf.gsc:1311
‪register_gadget_primed_callbacks
‪function register_gadget_primed_callbacks(type, primed_func)
Definition: _ability_player.gsc:277
‪take_gadget
‪function take_gadget(slot, weapon)
Definition: _ability_player.gsc:391
‪gadget_flicker
‪function gadget_flicker(slot, weapon)
Definition: _ability_player.gsc:600
‪register_gadget
‪function register_gadget(type)
Definition: _ability_player.gsc:200
‪gadgets_wait_for_death
‪function gadgets_wait_for_death()
Definition: _ability_player.gsc:150
‪gadgets_wait_for_game_end
‪function gadgets_wait_for_game_end()
Definition: _ability_player.gsc:166
‪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
‪gadget_ready
‪function gadget_ready(slot, weapon)
Definition: _ability_player.gsc:619
‪power_consume_timer_think
‪function power_consume_timer_think(slot, weapon)
Definition: _ability_power.gsc:223