*E{@.G@؃vLn43I.{NoneNFRabitExplodeEngineSystemCoreNukemNuclearRabitRabit_FlakCannonBotpack UnrealShare ReplaceWith LightTypeLightSaturationEvade NaliRabbitHitWallLanded LightRadiusMyDamageTypeAltProjectileClass AltFiringPickupViewMeshUT_FlakCannonClientAltFire LightHueNuclearFlakRabits rabitslugInitfor PlayRecoilRedeemerDeath GiveAmmobCoronaProcessTouchAltFire AdjustToss bLensFlare TakeDamageCheckReplacementLightBrightnessUseAmmo ReturnValueRZ DamageTypeMutator LevelInfoWallMassYXWeaponLodMeshPawnStructSoundClassSoundDampening aimerror InventoryAmmoNamePropertyCalcDrawOffsetOther DrawScaleLevelDamageVectoraPawn VelocityEnemy Instigator nextPawnStartOwnercarcActorStructProperty PawnListMeshbSuperRelevantValueinstigatedByPackage AmmoType bPointingbAltWarnTarget FiringSpeed FireOffset TextBuffer LocationViewRotation AdjustedAimObject FunctionAltProjectileSpeed TrailSize WeaponLightCreatureChunks BloodBurstRabbitCallBn CowBody1gibP6Gibs ASMDPickObjectPropertyTournamentWeapon Momentum ShockWave flakslugbCanClientFireretvalSuspectFloatPropertyBoolProperty IntProperty HitLocation HitNormal RabitlocByteProperty flakownerrs$, 6 Νtttttt;;;; y  'PU\ $ +])ԝXԝX -+2  y.ѸBtԝXttԝXt]] ")_ //============================================================================= // rabitslug. //============================================================================= class rabitslug expands flakslug; var rabit_flakcannon flakowner; function ProcessTouch (Actor Other, vector HitLocation) { if ( Other != instigator ) Explode(HitLocation,Normal(HitLocation-Other.Location)); } simulated function Landed( vector HitNormal ) { Explode(Location,HitNormal); } simulated function HitWall (vector HitNormal, actor Wall) { Explode(Location,HitNormal); } function Explode(vector HitLocation, vector HitNormal) { local vector start; local NuclearRabit r; r = Spawn( class'NuclearRabit'); r.setowner(owner); r.flakowner = flakowner; Destroy(); } &'8 a  a a ! =$:eԝXԝX(P //============================================================================= // NuclearFlakRabits. // Copyright 2001. Zencoder (Britton Wesley) All rights reserved. //============================================================================= class NuclearFlakRabits expands Mutator; var bool retval; function bool checkReplacement(Actor Suspect, out byte bSuperRelevant) { retval = true; if (Suspect.isA('UT_FlakCannon') && !Suspect.isA('Rabit_FlakCannon') ) { replaceWith(Suspect, "NFRabit.Rabit_FlakCannon"); retval = false; } return retval; } *  &j- 'a a/! a/! NFRabit.Rabit_FlakCannon- (-   #H//============================================================================= // NuclearRabit. //============================================================================= class NuclearRabit expands NaliRabbit; var() name MyDamageType; var rabit_FlakCannon flakowner; function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType) { local CreatureChunks carc; local Pawn aPawn; if ( Damage > 4 ) { Velocity += momentum/mass; if ( instigator != None ) { aPawn = Level.PawnList; While ( aPawn != None ) { if ( aPawn.IsA('NaliRabbit') && (Location.Z - aPawn.Location.Z < 120) && (VSize(Location - aPawn.Location) < 500) ) { aPawn.Enemy = instigator; aPawn.GotoState('Evade'); } aPawn = aPawn.NextPawn; } } Spawn(class'BloodBurst'); carc = Spawn(class 'CreatureChunks',,, Location); if (carc != None) { carc.TrailSize = 3; carc.Mesh = mesh'CowBody1'; carc.DrawScale = 0.65; carc.Initfor(self); } PlaySound(sound'gibP6',, 3.0); if (flakowner != none ) flakowner.nukem(location); Destroy(); } else PlaySound(sound'CallBn'); } " Er*.(&. -'-'b..   a ! ?,"6 66. #D'-a  aq! , .! 631w  %'Ha   (%,w*w*a/!%66 ?,x  ?q!>a a Yw*@@ ff&?a @@w* aa  s//============================================================================= // Rabit_FlakCannon. //============================================================================= class Rabit_FlakCannon expands UT_FlakCannon; function AltFire( float Value ) { local Vector Start, X,Y,Z; local rabitslug rs; if ( AmmoType == None ) { // ammocheck GiveAmmo(Pawn(Owner)); } if (AmmoType.UseAmmo(1)) { Pawn(Owner).PlayRecoil(FiringSpeed); bPointing=True; bCanClientFire = true; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start = Owner.Location + CalcDrawOffset(); Spawn(class'WeaponLight',,'',Start+X*20,rot(0,0,0)); Start = Start + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustToss(AltProjectileSpeed, Start, AimError, True, bAltWarnTarget); rs = Spawn(class'rabitSlug',,, Start,AdjustedAim); rs.setowner(owner); rs.flakowner = self; ClientAltFire(Value); GoToState('AltFiring'); } } function Nukem( vector Rabitloc ) { Spawn(class 'shockwave',,, Rabitloc); } SS8L8]856CS 8M83S 8jMZjJ8^8b8n8Y8888MX8-r+jGM\8sjT8=8.MEjHjNjAjO8t8rr9sUr1^>8xrWr_sVr2r0r:jF8<^&4f^%8cr`8aSd7eSh7g4i8;8kso8mr@M[^^"^^^!,DR$Z_%Iy ,KF!$LS!%z_#$ml#yY&p f&%2r& q&*L'*uY'*?f'ys'%1@(%+M(,B Z(,lf(vs(%Q @)+wL)&vY)4j f)=P6,, M7&/Y7vf7$gs74[ Z9#uB&hXCI@E PME ) ZE4SfE"MyX#F]ui] v],RB^!8O^%G_%cl_4~Od,uMv