boiii-scripts/shared/abilities/gadgets/_gadget_combat_efficiency.gsc
2023-04-13 17:30:38 +02:00

111 lines
11 KiB
Plaintext

#using scripts\codescripts\struct;
#using scripts\shared\callbacks_shared;
#using scripts\shared\clientfield_shared;
#using scripts\shared\flagsys_shared;
#using scripts\shared\visionset_mgr_shared;
#using scripts\shared\spawner_shared;
#using scripts\shared\abilities\_ability_player;
#using scripts\shared\abilities\_ability_util;
#using scripts\shared\system_shared;
function autoexec __init__sytem__() { system::register("gadget_combat_efficiency",&__init__,undefined,undefined); }
function __init__()
{
ability_player::register_gadget_activation_callbacks( 15, &gadget_combat_efficiency_on_activate, &gadget_combat_efficiency_on_off );
ability_player::register_gadget_possession_callbacks( 15, &gadget_combat_efficiency_on_give, &gadget_combat_efficiency_on_take );
ability_player::register_gadget_flicker_callbacks( 15, &gadget_combat_efficiency_on_flicker );
ability_player::register_gadget_is_inuse_callbacks( 15, &gadget_combat_efficiency_is_inuse );
ability_player::register_gadget_is_flickering_callbacks( 15, &gadget_combat_efficiency_is_flickering );
ability_player::register_gadget_ready_callbacks( 15, &gadget_combat_efficiency_ready );
//callback::on_connect( &gadget_combat_efficiency_on_connect );
//callback::on_spawned( &gadget_combat_efficiency_on_spawn );
}
function gadget_combat_efficiency_is_inuse( slot )
{
// returns true when the gadget is on
return self GadgetIsActive( slot );
}
function gadget_combat_efficiency_is_flickering( slot )
{
// returns true when the gadget is flickering
return self GadgetFlickering( slot );
}
function gadget_combat_efficiency_on_flicker( slot, weapon )
{
// excuted when the gadget flickers
}
function gadget_combat_efficiency_on_give( slot, weapon )
{
// executed when gadget is added to the players inventory
}
function gadget_combat_efficiency_on_take( slot, weapon )
{
// executed when gadget is removed from the players inventory
}
//self is the player
function gadget_combat_efficiency_on_connect()
{
// setup up stuff on player connect
}
//self is the player
function gadget_combat_efficiency_on_spawn()
{
// setup up stuff on player spawn
self.combatEfficiencyLastOnTime = 0;
}
function gadget_combat_efficiency_on_activate( slot, weapon )
{
self._gadget_combat_efficiency = true;
self._gadget_combat_efficiency_success = false;
self.scoreStreaksEarnedPerUse = 0;
self.combatEfficiencyLastOnTime = getTime();
}
function gadget_combat_efficiency_on_off( slot, weapon )
{
self._gadget_combat_efficiency = false;
self.combatEfficiencyLastOnTime = getTime();
self addWeaponStat( self.heroAbility, "scorestreaks_earned_2", int( self.scoreStreaksEarnedPerUse / 2 ) );
self addWeaponStat( self.heroAbility, "scorestreaks_earned_3", int( self.scoreStreaksEarnedPerUse / 3 ) );
if ( IsAlive( self ) && isdefined( level.playGadgetSuccess ) )
{
self [[ level.playGadgetSuccess ]]( weapon );
}
}
function gadget_combat_efficiency_ready( slot, weapon )
{
// unused
}
function set_gadget_combat_efficiency_status( weapon, status, time )
{
timeStr = "";
if ( IsDefined( time ) )
{
timeStr = "^3" + ", time: " + time;
}
if ( GetDvarInt( "scr_cpower_debug_prints" ) > 0 )
self IPrintlnBold( "Gadget Combat Efficiency " + weapon.name + ": " + status + timeStr );
}