class NiceSyringeAltFire extends NiceMeleeFire;

var float InjectDelay;
var float HealeeRange;

function DoFireEffect()
{
    SetTimer(InjectDelay, False);

    if ( Level.NetMode != NM_StandAlone && Level.Game.NumPlayers > 1 && KFPlayerController(Instigator.Controller) != none &&
         KFSteamStatsAndAchievements(KFPlayerController(Instigator.Controller).SteamStatsAndAchievements) != none )
    {
        KFSteamStatsAndAchievements(KFPlayerController(Instigator.Controller).SteamStatsAndAchievements).AddSelfHeal();
    }
}

function Timer()
{
    local float HealSum, HealPotency;
    local KFPlayerReplicationInfo KFPRI;

    KFPRI = KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo);

    HealSum = NiceSyringe(Weapon).HealBoostAmount;

    HealPotency = 1.0;

    if ( KFPRI != none && KFPRI.ClientVeteranSkill != none )
        HealPotency = KFPRI.ClientVeteranSkill.Static.GetHealPotency(KFPRI);
    HealSum *= HealPotency;

    Load = 1;
    ReduceAmmoClient();
    if ( NiceHumanPawn(Instigator) != none )
        NiceHumanPawn(Instigator).TakeHealing(NiceHumanPawn(Instigator), HealSum, HealPotency, KFWeapon(Instigator.Weapon));
    else
        KFPawn(Instigator).GiveHealth(HealSum, Instigator.HealthMax);
}

function bool AllowFire()
{
    if (Instigator.Health >= Instigator.HealthMax)
        return false;

    return Weapon.AmmoAmount(ThisModeNum) >= AmmoPerFire;
}

event ModeDoFire()
{
    Load = 1;
    Super.ModeDoFire();
}

function PlayFiring()
{
    if ( Weapon.Mesh != None )
    {
        if ( FireCount > 0 )
        {
            if ( Weapon.HasAnim(FireLoopAnim) )
            {
                Weapon.PlayAnim(FireLoopAnim, FireLoopAnimRate, 0.0);
            }
            else
            {
                Weapon.PlayAnim(FireAnim, FireAnimRate, 0.0);
            }
        }
        else
        {
            Weapon.PlayAnim(FireAnim, FireAnimRate, 0.0);
        }
    }
    Weapon.PlayOwnedSound(FireSound,SLOT_Interact,TransientSoundVolume,,TransientSoundRadius,Default.FireAnimRate/FireAnimRate,false);
    ClientPlayForceFeedback(FireForce);  // jdf

    FireCount++;
}

defaultproperties {
    AmmoClass=class'NiceSyringeAmmo'
    AmmoPerFire=1
    TweenTime=0.1
    TransientSoundVolume=1.8
    FireAnim="AltFire"
    FireRate=3.60000
    bModeExclusive=true
    InjectDelay=0.1
    HealeeRange=70.000000
}
