//============================================================================= // Shotgun Fire //============================================================================= class SpasFire extends ShotgunFire; var() class ShellEjectClass; // class of the shell eject emitter var() Emitter ShellEjectEmitter; // The shell eject emitter var() name ShellEjectBoneName; // name of the shell eject bone simulated function InitEffects() { super.InitEffects(); // don't even spawn on server if ( (Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != None) ) return; if ( (ShellEjectClass != None) && ((ShellEjectEmitter == None) || ShellEjectEmitter.bDeleteMe) ) { ShellEjectEmitter = Weapon.Spawn(ShellEjectClass); Weapon.AttachToBone(ShellEjectEmitter, ShellEjectBoneName); } } function DrawMuzzleFlash(Canvas Canvas) { super.DrawMuzzleFlash(Canvas); // Draw shell ejects if (ShellEjectEmitter != None ) { Canvas.DrawActor( ShellEjectEmitter, false, false, Weapon.DisplayFOV ); } } //disabling automatic shell eject function FlashMuzzleFlash() { super(InstantFire).FlashMuzzleFlash(); /* if (ShellEjectEmitter != None) { ShellEjectEmitter.Trigger(Weapon, Instigator); } */ } simulated function DestroyEffects() { super.DestroyEffects(); if (ShellEjectEmitter != None) ShellEjectEmitter.Destroy(); } simulated function bool AllowFire() { //changed to 1 -- PooSH if( KFWeapon(Weapon).bIsReloading && KFWeapon(Weapon).MagAmmoRemaining < 1) return false; if(KFPawn(Instigator).SecondaryItem!=none) return false; if( KFPawn(Instigator).bThrowingNade ) return false; if( Level.TimeSeconds - LastClickTime>FireRate ) { LastClickTime = Level.TimeSeconds; } if( KFWeaponShotgun(Weapon).MagAmmoRemaining<1 ) { return false; } return super(WeaponFire).AllowFire(); } defaultproperties { ShellEjectClass=Class'ROEffects.KFShellEjectShotty' ShellEjectBoneName="Shell_eject" FireSoundRef="KF_PumpSGSnd.SG_Fire" NoAmmoSoundRef="KF_PumpSGSnd.SG_DryFire" AmmoClass=Class'ScrnWeaponPack.SpasAmmo' ProjectileClass=Class'ScrnWeaponPack.SpasBullet' Spread=900.000000 }