91 lines
2.3 KiB
Ucode
91 lines
2.3 KiB
Ucode
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
|
|
}
|