//============================================================================= // rocket. //============================================================================= class SchlonzShieldRedeemerProjectile extends RedeemerProjectile; simulated function PostBeginPlay() { local vector Dir; if ( bDeleteMe || IsInState('Dying') ) return; Dir = vector( Rotation ); Velocity = speed * Dir; } // PostBeginPlay function BlowUp(vector HitLocation) { Spawn( class'SchlonzShieldShockCombo',,, HitLocation ); MakeNoise( 1.0 ); SetPhysics( PHYS_None ); bHidden = true; GotoState( 'Dying' ); } // BlowUp state Dying { function BeginState() { bHidden = true; SetPhysics(PHYS_None); SetCollision(false,false,false); if ( !bExploded ) { // Spawn(class'IonCore',,, Location, Rotation); } InitialState = 'Dying'; if ( SmokeTrail != None ) SmokeTrail.Destroy(); } function Shrink() { local Pawn pawn; local bool doShrink; local float PlayersSize; local float Delta; local int ShrinkMode; ShrinkMode = SchlonzShieldGun( Instigator.Weapon ).ShrinkMode; foreach RadiusActors( class'Pawn', pawn, 2000 ) { doShrink = (pawn != Instigator) && (pawn.Health > 0); if( doShrink && Level.Game.bTeamGame ) { if( (pawn.PlayerReplicationInfo != None) && (Instigator != None) && (pawn.PlayerReplicationInfo.Team == Instigator.PlayerReplicationInfo.Team) ) { doShrink = false; } } if( doShrink ) { PlayersSize = SchlonzXPawnBot( pawn ).PlayerSize; switch( ShrinkMode ) { case 1: // 10 % Delta = 0.2; break; case 2: // 50 % Delta = 0.5; break; case 3: // 200 % Delta = 2; break; case 4: // 300 % Delta = 3; break; } Delta = Delta - PlayersSize; SchlonzXPawnBot( pawn ).SetPawnBotSize( Delta ); Instigator.ClientMessage( "You Shrinked "$pawn.PlayerReplicationInfo.PlayerName ); /* Delta = PlayersSize - 0.2; if( Delta > 0 ) { // Delta = -2; let's grow'em -> big fun SchlonzXPawnBot( pawn ).SetPawnBotSize( - Delta ); Instigator.ClientMessage( "You Shrinked "$pawn.PlayerReplicationInfo.PlayerName ); } */ } } } Begin: Shrink(); } defaultproperties { ShakeRotRate=(Z=1500.000000) Speed=4000.000000 MaxSpeed=4000.000000 bSwitchToZeroCollision=True MomentumTransfer=100.000000 MyDamageType=Class'SchlonzUT.SchlonzShieldDamTypeRedeemer' Physics=PHYS_Falling bBounce=True ForceType=FT_None ForceRadius=1.000000 ForceScale=1.000000 }