class SchlonzShockCore extends ShockProjectile; // time between firing rockets var() int FiringPeriod; // count of rockets loaded var() int RocketLoad; // radius in which enemies will be bombed var() float DetectionRadius; // remaining rockets var int rockets; // initialze flag var bool init; simulated function PostBeginPlay() { Super.PostBeginPlay(); /* if ( Level.NetMode != NM_DedicatedServer ) { if ( !Level.bDropDetail && (Level.DetailMode != DM_Low) ) FlareTrail = Spawn(class'ShockProjElec', self); SparkleTrail = Spawn(class'ShockProjSparkles', self); } Velocity = Speed * Vector(Rotation); // starts off slower so combo can be done closer */ SetTimer( 0.12, true ); //tempStartLoc = Location; init = true; } function Timer() { local SeekingRocketProj SeekingRocket; local bool doShoot; local vector dist; local float angle; local Pawn pawn; local float PlayerSize; if( init ) { SetCollisionSize(20, 20); init = false; rockets = RocketLoad; return; } // search for enemies foreach RadiusActors( class'Pawn', pawn, DetectionRadius ) { doShoot = (pawn != Instigator) && (pawn.Health > 0); if( doShoot && Level.Game.bTeamGame ) { if( (pawn.PlayerReplicationInfo != None) && (Instigator != None) && (pawn.PlayerReplicationInfo.Team == Instigator.PlayerReplicationInfo.Team) ) { doShoot = false; } } if( doShoot && Instigator != None ) { // check angle dist = Instigator.Location - Location; angle = Normal(dist) Dot Normal( pawn.Location-Location ); if( angle > FClamp( (VSize(dist)-120.0)/80.0, -0.3, 1.01 ) ) { doShoot = false; } } if( doShoot ) { if( FastTrace( Location, pawn.Location ) ) { // adjust rocket size (huarg huarg) PlayerSize = 1; if( SchlonzXPawnBot( Instigator ) != None ) PlayerSize = SchlonzXPawnBot( Instigator ).PlayerSize; dist = Normal( pawn.location-Location ); SeekingRocket = Spawn(class'SeekingRocketProj',Instigator,, Location+30*dist, Rotator(dist)); if( PlayerSize != 1 ) SeekingRocket.SetDrawScale( PlayerSize ); SeekingRocket.Seeking = pawn; SeekingRocket.Velocity *= 0.5; rockets--; if( rockets <= 0 ) { // out of rockets, die SuperExplosion(); } } } } } defaultproperties { RocketLoad=40 DetectionRadius=600.000000 ComboDamage=165.000000 ComboRadius=250.000000 ComboMomentumTransfer=140000.000000 ComboAmmoCost=0 Speed=1000.000000 Damage=55.000000 LightRadius=6.000000 Skins(0)=Texture'XEffectMat.Shock.shock_core_low' CollisionRadius=12.000000 CollisionHeight=12.000000 }