1 #using scripts\shared\util_shared;
2 #using scripts\shared\abilities\_ability_player;
3 #using scripts\shared\abilities\_ability_power;
5 #insert scripts\shared\shared.gsh;
6 #insert scripts\shared\abilities\_ability_util.gsh;
8 #namespace ability_util;
10 #define COMBAT_EFFICIENCY_POWER_LOSS_SCALAR GetDvarFloat( "scr_combat_efficiency_power_loss_scalar", .275 )
14 if ( !IsDefined(
self._gadgets_player[slot] ) )
19 return self._gadgets_player[slot].gadget_type == type;
47 if ( isdefined(
self._gadget_combat_efficiency ) )
49 return self._gadget_combat_efficiency;
61 self GadgetPowerChange( slot, powerChange );
88 foreach( gadget_key, gadget_val
in level._gadgets_level )
90 if ( gadget_key == weapon )
99 slot =
self GadgetGetSlot( gadgetWeapon );
103 self GadgetPowerReset( slot );
104 self GadgetCharging( slot,
true );
108 function gadget_reset( gadgetWeapon, changedClass, roundBased, firstRound )
110 if ( GetDvarint(
"gadgetEnabled") == 0 )
115 slot =
self GadgetGetSlot( gadgetWeapon );
119 if ( isdefined(
self.pers[
"held_gadgets_power"] ) && isdefined(
self.pers[
"held_gadgets_power"][gadgetWeapon] ) )
121 self GadgetPowerSet( slot,
self.pers[
"held_gadgets_power"][gadgetWeapon] );
123 else if( isdefined(
self.pers[
"held_gadgets_power"] ) && isdefined(
self.pers[#
"thiefWeapon"] ) && isdefined(
self.pers[
"held_gadgets_power"][
self.pers[#
"thiefWeapon"]] ) )
125 self GadgetPowerSet( slot,
self.pers[
"held_gadgets_power"][
self.pers[#
"thiefWeapon"]] );
127 else if( isdefined(
self.pers[
"held_gadgets_power"] ) && isdefined(
self.pers[#
"rouletteWeapon"] ) && isdefined(
self.pers[
"held_gadgets_power"][
self.pers[#
"rouletteWeapon"]] ) )
129 self GadgetPowerSet( slot,
self.pers[
"held_gadgets_power"][
self.pers[#
"rouletteWeapon"]] );
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;
137 if ( resetOnClassChange || resetOnFirstRound || resetOnRoundSwitch || resetOnTeamChanged )
139 self GadgetPowerReset( slot );
140 self GadgetCharging( slot,
true );