class SchlonzGrenade extends xWeapons.AssaultGrenade; simulated function PostBeginPlay() { // local vector X,Y,Z; Super.PostBeginPlay(); /* if ( Role == ROLE_Authority ) { GetAxes(Instigator.Rotation,X,Y,Z); Velocity = X * (Instigator.Velocity Dot X)*0.4 + Vector(Rotation) * (Speed + FRand() * 100); Velocity.z += 210; RandSpin(50000); } */ } /* simulated function HitWall( vector HitNormal, actor Wall ) { if (!bTimerSet) { SetTimer(ExplodeTimer, false); bTimerSet = true; } bCanHitOwner = True; // Reflect off Wall w/damping Velocity = 0.75*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping RandSpin(100000); Speed = VSize(Velocity); if ( Speed < 20 ) { bBounce = False; SetPhysics(PHYS_None); if ( Trail != None ) Trail.mRegen = false; // stop the emitter from regenerating } else { if ( (Level.NetMode != NM_DedicatedServer) && (Speed > 250) ) PlaySound(ImpactSound, SLOT_Misc ); if ( !Level.bDropDetail && (Level.DetailMode != DM_Low) && (Level.TimeSeconds - LastSparkTime > 0.5) && EffectIsRelevant(Location,false) ) { Spawn(HitEffectClass,,, Location, Rotator(HitNormal)); LastSparkTime = Level.TimeSeconds; } } } defaultproperties { ExplodeTimer=2.500000 Speed=600.000000 MaxSpeed=1000.000000 Damage=80.000000 MomentumTransfer=50000.000000 } */