class NiceSyringe extends NiceMeleeWeapon; var () int HealBoostAmount; var float RegenTimer; var localized string SuccessfulHealMessage; replication { reliable if( Role == ROLE_Authority ) ClientSuccessfulHeal; } simulated function PostBeginPlay() { // Weapon will handle FireMode instantiation Super.PostBeginPlay(); if( Role == ROLE_Authority ) { HealBoostAmount = default.HealBoostAmount; } } // The server lets the client know they successfully healed someone simulated function ClientSuccessfulHeal(String HealedName) { if( PlayerController(Instigator.Controller) != none ) { PlayerController(Instigator.controller).ClientMessage(SuccessfulHealMessage$HealedName, 'CriticalEvent'); } } simulated function Timer() { Super.Timer(); if( KFPawn(Instigator)!=None && KFPawn(Instigator).bIsQuickHealing>0 && ClientState==WS_ReadyToFire ) { if( KFPawn(Instigator).bIsQuickHealing==1 ) { if( !HackClientStartFire() ) { if( Instigator.Health>=Instigator.HealthMax || ChargeBar()<0.75 ) KFPawn(Instigator).bIsQuickHealing = 2; // Was healed by someone else or some other error occurred. SetTimer(0.2,False); return; } KFPawn(Instigator).bIsQuickHealing = 2; SetTimer(FireMode[1].FireRate+0.5,False); } else { Instigator.SwitchToLastWeapon(); KFPawn(Instigator).bIsQuickHealing = 0; } } else if( ClientState==WS_Hidden && KFPawn(Instigator)!=None ) KFPawn(Instigator).bIsQuickHealing = 0; // Weapon was changed, ensure to reset this. } simulated function bool HackClientStartFire() { if( StartFire(1) ) { if( Role