‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_gadget_shield.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 
7 #using scripts\shared\abilities\_ability_player;
8 #using scripts\shared\abilities\_ability_power;
9 #using scripts\shared\abilities\_ability_util;
10 
11 #insert scripts\shared\shared.gsh;
12 #insert scripts\shared\version.gsh;
13 #insert scripts\shared\abilities\_ability_util.gsh;
14 
15 #using scripts\shared\system_shared;
16 
17 ‪REGISTER_SYSTEM( "gadget_shield", &‪__init__, undefined )
18 
19 function ‪__init__()
20 {
26 
28 
29  ‪clientfield::register( "toplayer", "shield_on", ‪VERSION_SHIP, 1, "int" );
30 }
31 
32 function ‪shield_is_inuse( slot )
33 {
34  return self ‪flagsys::get( "gadget_shield_on" );
35 }
36 
37 function ‪shield_is_flickering( slot )
38 {
39  return self GadgetFlickering( slot );
40 }
41 
42 function ‪shield_on_flicker( slot )
43 {
44  self ‪shield_flicker( slot );
45 }
46 
47 function ‪shield_on_give( slot )
48 {
49  self ‪clientfield::set_to_player( "shield_on", 0 );
50 }
51 
52 function ‪shield_on_take( slot )
53 {
54  self ‪clientfield::set_to_player( "shield_on", 0 );
55 }
56 
57 //self is the player
59 {
60 }
61 
62 function ‪shield_gadget_on( slot )
63 {
64  self ‪flagsys::set( "gadget_shield_on" );
65 
66  self ‪clientfield::set_to_player( "shield_on", 1 );
67 
68  //self thread reflectBulletsHandler( slot );
69 }
70 
71 function ‪shield_gadget_off( slot )
72 {
73  self ‪flagsys::clear( "gadget_shield_on" );
74 
75  self ‪clientfield::set_to_player( "shield_on", 0 );
76 
77  self notify( "shield_off" );
78 }
79 
80 function ‪reflectBulletsHandler( slot )
81 {
82  self endon( "disconnect" );
83  self endon( "death" );
84  self endon( "shield_off" );
85 
86  if ( !self ‪shield_is_inuse( slot ) )
87  {
88  return;
89  }
90 
91  while ( 1 )
92  {
93  self waittill( "riotshield" );
94 
95  if ( !self ‪shield_is_inuse( slot ) )
96  {
97  return;
98  }
99 
100  if ( self._gadgets_player[slot].gadget_shieldReflectPowerGain )
101  {
102  self ‪ability_power::power_gain_event( undefined, self._gadgets_player[slot].gadget_shieldReflectPowerGain, "reflected" );
103  }
104 
105  if ( self._gadgets_player[slot].gadget_shieldReflectPowerLoss )
106  {
107  self ‪ability_power::power_loss_event( undefined, self._gadgets_player[slot].gadget_shieldReflectPowerLoss, "reflected" );
108  }
109 
110  }
111 }
112 
113 function ‪shield_flicker( slot )
114 {
115  self endon( "disconnect" );
116 
117  if ( !self ‪shield_is_inuse( slot ) )
118  {
119  return;
120  }
121 
122  eventTime = self._gadgets_player[slot].gadget_flickertime;
123 
124  self ‪set_shield_flicker_status( "^1" + "Flickering.", eventTime );
125 
126  while( 1 )
127  {
128  if ( !self GadgetFlickering( slot ) )
129  {
130  ‪set_shield_flicker_status( "^2" + "Normal" );
131  return;
132  }
133 
134  wait( 0.25 );
135  }
136 }
137 
138 function ‪set_shield_flicker_status( status, time )
139 {
140  timeStr = "";
141 
142  if ( IsDefined( time ) )
143  {
144  timeStr = "^3" + ", time: " + time;
145  }
146 
147  if ( GetDvarInt( "scr_cpower_debug_prints" ) > 0 )
148  self IPrintlnBold( "Shield Flicker: " + status + timeStr );
149 }
150 
‪register_gadget_is_flickering_callbacks
‪function register_gadget_is_flickering_callbacks(type, flickering_func)
Definition: _ability_player.gsc:299
‪__init__
‪function __init__()
Definition: _gadget_shield.gsc:19
‪shield_is_inuse
‪function shield_is_inuse(slot)
Definition: _gadget_shield.gsc:32
‪register_gadget_possession_callbacks
‪function register_gadget_possession_callbacks(type, on_give, on_take)
Definition: _ability_player.gsc:221
‪shield_on_give
‪function shield_on_give(slot)
Definition: _gadget_shield.gsc:47
‪set_to_player
‪function set_to_player(str_field_name, n_value)
Definition: clientfield_shared.gsc:58
‪clear
‪function clear(str_flag)
Definition: flag_shared.csc:130
‪power_gain_event
‪function power_gain_event(slot, eAttacker, val, source)
Definition: _ability_power.gsc:151
‪register_gadget_is_inuse_callbacks
‪function register_gadget_is_inuse_callbacks(type, inuse_func)
Definition: _ability_player.gsc:289
‪set_shield_flicker_status
‪function set_shield_flicker_status(status, time)
Definition: _gadget_shield.gsc:138
‪VERSION_SHIP
‪#define VERSION_SHIP
Definition: version.gsh:36
‪get
‪function get(kvp_value, kvp_key="targetname")
Definition: struct.csc:13
‪power_loss_event
‪function power_loss_event(slot, eAttacker, val, source)
Definition: _ability_power.gsc:199
‪register_gadget_flicker_callbacks
‪function register_gadget_flicker_callbacks(type, on_flicker)
Definition: _ability_player.gsc:253
‪shield_on_flicker
‪function shield_on_flicker(slot)
Definition: _gadget_shield.gsc:42
‪register_gadget_activation_callbacks
‪function register_gadget_activation_callbacks(type, turn_on, turn_off)
Definition: _ability_player.gsc:237
‪shield_on_take
‪function shield_on_take(slot)
Definition: _gadget_shield.gsc:52
‪reflectBulletsHandler
‪function reflectBulletsHandler(slot)
Definition: _gadget_shield.gsc:80
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪GADGET_TYPE_ENERGY_SHIELD
‪#define GADGET_TYPE_ENERGY_SHIELD
Definition: _ability_util.gsh:7
‪set
‪function set(str_field_name, n_value)
Definition: clientfield_shared.gsc:34
‪shield_on_connect
‪function shield_on_connect()
Definition: _gadget_shield.gsc:58
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪shield_flicker
‪function shield_flicker(slot)
Definition: _gadget_shield.gsc:113
‪on_connect
‪function on_connect()
Definition: _arena.gsc:20
‪shield_gadget_off
‪function shield_gadget_off(slot)
Definition: _gadget_shield.gsc:71
‪shield_gadget_on
‪function shield_gadget_on(slot)
Definition: _gadget_shield.gsc:62
‪shield_is_flickering
‪function shield_is_flickering(slot)
Definition: _gadget_shield.gsc:37