class SchlonzRocketMultiGrenade extends RocketMultiFire; function PlayFiring() { // if (Load > 1.0) // FireAnim = 'AltFire'; // else // FireAnim = 'Fire'; // FireAnim = 'AltFire'; Super.PlayFiring(); // RocketLauncher(Weapon).PlayFiring((Load == 6.0)); RocketLauncher(Weapon).PlayFiring((Load < 6)); Weapon.OutOfAmmo(); } function DoFireEffect() { local Vector StartProj, StartTrace, X,Y,Z; local Rotator Aim; local Vector HitLocation, HitNormal,FireLocation; local Actor Other; local int p, SpawnCount; local Grenade FiredRockets[50]; local float PlayerSize; Instigator.MakeNoise(1.0); Weapon.GetViewAxes(X,Y,Z); StartTrace = Instigator.Location + Instigator.EyePosition();// + X*Instigator.CollisionRadius; StartProj = StartTrace + X*ProjSpawnOffset.X + Y*ProjSpawnOffset.Y + Z*ProjSpawnOffset.Z; // check if projectile would spawn through a wall and adjust start location accordingly Other = Trace(HitLocation, HitNormal, StartProj, StartTrace, false); if (Other != None) { StartProj = HitLocation; } // adjust Grenade size (huarg huarg) PlayerSize = 1; if( SchlonzXPawnBot( Instigator ) != None ) PlayerSize = SchlonzXPawnBot( Instigator ).PlayerSize; Aim = AdjustAim(StartProj, AimError); SpawnCount = Max(1, int(Load)); // just a little more ammo SpawnCount *= 10; for ( p=0; p 0.0 && Load >= Weapon.Ammo[ThisModeNum].AmmoAmount && !bNowWaiting) { bIsFiring = false; } if (Load == 1.0 && HoldTime >= FireRate) { if (Instigator.IsLocallyControlled()) RocketLauncher(Weapon).PlayLoad(false); Load = Load + 1.0; } else if (Load == 2.0 && HoldTime >= FireRate*2.0) { if (Instigator.IsLocallyControlled()) RocketLauncher(Weapon).PlayLoad(false); Load = Load + 1.0; } else if (Load == 3.0 && HoldTime >= FireRate*3.0) { if (Instigator.IsLocallyControlled()) RocketLauncher(Weapon).PlayLoad(false); Load = Load + 1.0; } else if (Load == 4.0 && HoldTime >= FireRate*4.0) { if (Instigator.IsLocallyControlled()) RocketLauncher(Weapon).PlayLoad(false); Load = Load + 1.0; } else if (Load == 5.0 && HoldTime >= FireRate*5.0) { Load = Load + 1.0; } } function Projectile SpawnProjectile(Vector Start, Rotator Dir) { local Projectile p; p = SchlonzRocketLauncher(Weapon).SpawnGrenadeProjectile(Start, Dir); p.Damage *= DamageAtten; return p; } defaultproperties { FireRate=0.500000 MaxHoldTime=6.000000 ProjectileClass=Class'SchlonzUT.SchlonzGrenade' }