class NiceMedicDartFire extends NiceFire; function DoFireEffect(){ local float oldLoad; oldLoad = Load; Load = 1; super.DoFireEffect(); Load = oldLoad; } simulated function bool AllowFire(){ local KFPawn kfPwn; if(currentContext.sourceWeapon == none || Instigator == none) return false; if(currentContext.sourceWeapon.secondaryCharge < default.AmmoPerFire) return false; // Check reloading if(currentContext.sourceWeapon.bIsReloading) return false; // Check pawn actions kfPwn = KFPawn(Instigator); if(kfPwn == none || kfPwn.SecondaryItem != none || kfPwn.bThrowingNade) return false; return true; } simulated function ReduceAmmoClient(){ local NiceMedicGun sourceMedGun; currentContext.sourceWeapon.secondaryCharge -= AmmoPerFire; sourceMedGun = NiceMedicGun(currentContext.sourceWeapon); if(sourceMedGun != none){ sourceMedGun.ServerSetMedicCharge(currentContext.sourceWeapon.secondaryCharge); sourceMedGun.ClientSetMedicCharge(currentContext.sourceWeapon.secondaryCharge); } } defaultproperties { ProjectileSpeed=12500.000000 bulletClass=class'NiceMedicProjectile' FireAimedAnim="Fire_Iron" FireSoundRef="KF_MP7Snd.Medicgun_Fire" StereoFireSoundRef="KF_MP7Snd.Medicgun_FireST" NoAmmoSoundRef="KF_PumpSGSnd.SG_DryFire" DamageMax=30 bWaitForRelease=True bAttachSmokeEmitter=True TransientSoundVolume=2.000000 TransientSoundRadius=500.000000 AmmoPerFire=50 ShakeRotMag=(X=50.000000,Y=50.000000,Z=400.000000) ShakeRotRate=(X=12500.000000,Y=12500.000000,Z=12500.000000) ShakeRotTime=5.000000 ShakeOffsetMag=(X=6.000000,Y=2.000000,Z=10.000000) ShakeOffsetRate=(X=1000.000000,Y=1000.000000,Z=1000.000000) ShakeOffsetTime=3.000000 BotRefireRate=0.250000 FlashEmitterClass=Class'ROEffects.MuzzleFlash1stKar' aimerror=1.000000 }