‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_ability_util.gsc
Go to the documentation of this file.
1 #using scripts\shared\util_shared;
2 #using scripts\shared\abilities\_ability_player;
3 #using scripts\shared\abilities\_ability_power;
4 
5 #insert scripts\shared\shared.gsh;
6 #insert scripts\shared\abilities\_ability_util.gsh;
7 
8 #namespace ability_util;
9 
10 #define COMBAT_EFFICIENCY_POWER_LOSS_SCALAR GetDvarFloat( "scr_combat_efficiency_power_loss_scalar", .275 )
11 
12 function ‪gadget_is_type( slot, type )
13 {
14  if ( !IsDefined( self._gadgets_player[slot] ) )
15  {
16  return false;
17  }
18 
19  return self._gadgets_player[slot].gadget_type == type;
20 }
21 
22 //TODO: move to code
23 function ‪gadget_slot_for_type( type )
24 {
25  invalid = ‪GADGET_HELD_COUNT;
26 
27  for ( i = ‪GADGET_HELD_0; i < ‪GADGET_HELD_COUNT; i++ )
28  {
29  if ( !self ‪gadget_is_type( i, type ) )
30  {
31  continue;
32  }
33 
34  return i;
35  }
36 
37  return invalid;
38 }
39 
41 {
43 }
44 
46 {
47  if ( isdefined( self._gadget_combat_efficiency ) )
48  {
49  return self._gadget_combat_efficiency;
50  }
51 
52  return false;
53 }
54 
56 {
57  powerChange = -1 * score * ‪COMBAT_EFFICIENCY_POWER_LOSS_SCALAR;
59  if( slot != ‪GADGET_HELD_COUNT )
60  {
61  self GadgetPowerChange( slot, powerChange );
62  }
63 }
64 
66 {
68 
69  if ( slot >= ‪GADGET_HELD_0 && slot < ‪GADGET_HELD_COUNT )
70  {
71  if ( self ‪ability_player::gadget_is_flickering( slot ) )
72  {
73  return true;
74  }
75  }
76 
77  return false;
78 }
79 
81 {
83 }
84 
85 //TODO: move to code
86 function ‪is_weapon_gadget( weapon )
87 {
88  foreach( gadget_key, gadget_val in level._gadgets_level )
89  {
90  if ( gadget_key == weapon )
91  return true;
92  }
93 
94  return false;
95 }
96 
97 function ‪gadget_power_reset( gadgetWeapon )
98 {
99  slot = self GadgetGetSlot( gadgetWeapon );
100 
101  if ( slot >= ‪GADGET_HELD_0 && slot < ‪GADGET_HELD_COUNT )
102  {
103  self GadgetPowerReset( slot );
104  self GadgetCharging( slot, true );
105  }
106 }
107 
108 function ‪gadget_reset( gadgetWeapon, changedClass, roundBased, firstRound )
109 {
110  if ( GetDvarint( "gadgetEnabled") == 0 )
111  {
112  return;
113  }
114 
115  slot = self GadgetGetSlot( gadgetWeapon );
116 
117  if ( slot >= ‪GADGET_HELD_0 && slot < ‪GADGET_HELD_COUNT )
118  {
119  if ( isdefined( self.pers["held_gadgets_power"] ) && isdefined( self.pers["held_gadgets_power"][gadgetWeapon] ) )
120  {
121  self GadgetPowerSet( slot, self.pers["held_gadgets_power"][gadgetWeapon] );
122  }
123  else if( isdefined( self.pers["held_gadgets_power"] ) && isdefined( self.pers[#"thiefWeapon"] ) && isdefined( self.pers["held_gadgets_power"][self.pers[#"thiefWeapon"]] ) )
124  {
125  self GadgetPowerSet( slot, self.pers["held_gadgets_power"][self.pers[#"thiefWeapon"]] );
126  }
127  else if( isdefined( self.pers["held_gadgets_power"] ) && isdefined( self.pers[#"rouletteWeapon"] ) && isdefined( self.pers["held_gadgets_power"][self.pers[#"rouletteWeapon"]] ) )
128  {
129  self GadgetPowerSet( slot, self.pers["held_gadgets_power"][self.pers[#"rouletteWeapon"]] );
130  }
131 
132  resetOnClassChange = changedClass && gadgetWeapon.gadget_power_reset_on_class_change;
133  resetOnFirstRound = !isdefined( self.firstSpawn ) && ( !roundBased || firstRound );
134  resetOnRoundSwitch = !isdefined( self.firstSpawn ) && roundBased && !firstRound && gadgetWeapon.gadget_power_reset_on_round_switch;
135  resetOnTeamChanged = isdefined( self.firstSpawn ) && ‪IS_TRUE( self.switchedTeamsResetGadgets ) && gadgetWeapon.gadget_power_reset_on_team_change;
136 
137  if ( resetOnClassChange || resetOnFirstRound || resetOnRoundSwitch || resetOnTeamChanged )
138  {
139  self GadgetPowerReset( slot );
140  self GadgetCharging( slot, true );
141  }
142  }
143 }
144 
146 {
148 }
149 
150 //TODO: move to code
151 function ‪gadget_is_active( gadgetType )
152 {
153  slot = self ‪gadget_slot_for_type( gadgetType );
154 
155  if ( slot >= ‪GADGET_HELD_0 && slot < ‪GADGET_HELD_COUNT )
156  {
157  if ( self ‪ability_player::gadget_is_in_use( slot ) )
158  {
159  return true;
160  }
161  }
162 
163  return false;
164 }
165 
166 //TODO: move to code
167 function ‪gadget_has_type( gadgetType )
168 {
169  slot = self ‪gadget_slot_for_type( gadgetType );
170 
171  if ( slot >= ‪GADGET_HELD_0 && slot < ‪GADGET_HELD_COUNT )
172  {
173  return true;
174  }
175 
176  return false;
177 }
‪gadget_is_flickering
‪function gadget_is_flickering(slot)
Definition: _ability_player.gsc:337
‪gadget_has_type
‪function gadget_has_type(gadgetType)
Definition: _ability_util.gsc:167
‪gadget_is_camo_suit_flickering
‪function gadget_is_camo_suit_flickering()
Definition: _ability_util.gsc:65
‪gadget_reset
‪function gadget_reset(gadgetWeapon, changedClass, roundBased, firstRound)
Definition: _ability_util.gsc:108
‪GADGET_HELD_0
‪#define GADGET_HELD_0
Definition: _ability_util.gsh:59
‪gadget_combat_efficiency_enabled
‪function gadget_combat_efficiency_enabled()
Definition: _ability_util.gsc:45
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪is_weapon_gadget
‪function is_weapon_gadget(weapon)
Definition: _ability_util.gsc:86
‪gadget_is_in_use
‪function gadget_is_in_use(slot)
Definition: _ability_player.gsc:321
‪gadget_power_armor_on
‪function gadget_power_armor_on()
Definition: _ability_util.gsc:145
‪GADGET_TYPE_COMBAT_EFFICIENCY
‪#define GADGET_TYPE_COMBAT_EFFICIENCY
Definition: _ability_util.gsh:19
‪GADGET_TYPE_DRONE
‪#define GADGET_TYPE_DRONE
Definition: _ability_util.gsh:9
‪GADGET_HELD_COUNT
‪#define GADGET_HELD_COUNT
Definition: _ability_util.gsh:62
‪COMBAT_EFFICIENCY_POWER_LOSS_SCALAR
‪#define COMBAT_EFFICIENCY_POWER_LOSS_SCALAR
Definition: _ability_util.gsc:10
‪GADGET_TYPE_ARMOR
‪#define GADGET_TYPE_ARMOR
Definition: _ability_util.gsh:8
‪gadget_combat_efficiency_power_drain
‪function gadget_combat_efficiency_power_drain(score)
Definition: _ability_util.gsc:55
‪gadget_is_camo_suit_on
‪function gadget_is_camo_suit_on()
Definition: _ability_util.gsc:40
‪gadget_is_active
‪function gadget_is_active(gadgetType)
Definition: _ability_util.gsc:151
‪gadget_slot_for_type
‪function gadget_slot_for_type(type)
Definition: _ability_util.gsc:23
‪gadget_is_type
‪function gadget_is_type(slot, type)
Definition: _ability_util.gsc:12
‪GADGET_TYPE_OPTIC_CAMO
‪#define GADGET_TYPE_OPTIC_CAMO
Definition: _ability_util.gsh:6
‪gadget_power_reset
‪function gadget_power_reset(gadgetWeapon)
Definition: _ability_util.gsc:97
‪gadget_is_escort_drone_on
‪function gadget_is_escort_drone_on()
Definition: _ability_util.gsc:80