//============================================================================= // SchlonzClusterWarShell. //============================================================================= class SchlonzClusterWarShell expands WarShell; var() int Grenades; singular function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, vector momentum, name damageType ) { // undestructable :> } auto state Flying { function Explode(vector HitLocation, vector HitNormal) { local int i; local int Grenades; local ShockWave sw; local bool player; local int f; if ( Role < ROLE_Authority ) return; Grenades = class'SchlonzMutator'.default.RedeemerLoadCount; player = Instigator.IsA('PlayerPawn'); f = 8; if( !player ) { f = 1; Grenades = (Grenades + 3) / 4; } if( Grenades <= 0 ) { HurtRadius( Damage*f*f*f, 300.0*f, MyDamageType, MomentumTransfer*f*f, HitLocation ); sw = spawn( class'ShockWave',,,HitLocation+ HitNormal*16 ); sw.DrawScale *= f; } else { HurtRadius( Damage, 300.0, MyDamageType, MomentumTransfer, HitLocation ); for( i=0; i<=Grenades; i++ ) { Spawn( class'UT_Grenade',,,Location,RotRand(False) ); } } RemoteRole = ROLE_SimulatedProxy; Destroy(); } }