*E@XTOJ"IT⋹YXNoneSystemEngineCoreNeoeDamageMeshRun PlayWaiting DrawScale AdjustAimBotpackSwishRootBump UnrealShareBreath LifeSpanMeleeDamageTarget GroundSpeedFatnessExplodeSetMovementPhysics PlayTurningInitforHealthTweenToWaitingUnrealICollisionHeightCollisionRadiusChewPostBeginPlayPawn FlakDeath KeepWaitingSkaarjBerserkerPupaeWarLord ProjectileQueen BiteDamageBite LungeDamagestartupPoop superbeamlunge WalkingSpeedBeginStab PunchDamageTweenToFighterWaitingTearDie dinosaulsTakeHit PlayRunningTweenToRunning gaussbullet NearWall PlayDying ProcessTouchOMG JumpOffPawnDead ActorLeaving PlayWalking ActorEnteredBlowUpSkaarjLightBrightness PlayTakeHit BeginState Threaten VisibilityTweenToWalkingWingLightSaturationAggressivenessWalkAttitudeToCreature ZoneChange ScriptedPawn TurnFromWall SlapDamageRoam AirSpeed powerchunk1 SpawnRockAcquireZoneGroundFrictionZoneFluidFriction RefireRatePlayWaitingAmbushTweenToPatrolStopPlayThreateningPlayPatrolStopPlayVictoryDanceFlyingPlayMeleeAttack MaxSpeed MeleeAttackPlayChallengeDead3 powerchunk2shakeDead2 powerchunk3StillRedeemerDeath bWaterZoneReducedDamageType CarcassTypeReducedDamagePct spacezone HitSound1Land LightHuespeed HitSound2Start bDropDetailcarcNetModedistZone bAnimLoop Rotation MeleeRangeFocus MyDamageType projStartMomentumTransferTarget Instigator EAttitudeSkillUnderWaterTimebQuiet Velocity Acceleration HitNormalNewZone HitLocationHitLoc TweenTimeOtherDirbHighDetailMode PointRegion Location WaterSpeedMaxDesiredSpeed bIsPlayer HurtRadius LightRadius AnimSequenceTransientSoundVolume SoundRadiusPhysics DamageTypeXZtrailYW ScriptTextS ReturnValue CowCarcassDAmmo2CreatureChunks WaterRing LevelInfo ZoneInfoCarcassLevelActorLodMeshSoundbReadyToAttack NextAnimNaliCow animspeed CowBody1CowHead decisionDispM2 bHitWater SmokeRate InitialDirNumExtraRockets RemoteRoleTitanClassPackage TextBufferObject scuttle1ppstomp4t punch1Tiyell1tdeath1tinjur1tinjur2tfall1Tiroam1Ti chestB2TiProjFlakShEnum FunctionStateVector UT_ComboRingUTChunkUT_SpriteBallExplosion RocketTrail RocketMk2chunk2Mchunk3MStructStructProperty NamePropertyObjectPropertyFloatProperty BoolProperty IntProperty BytePropertyRegion BLI;# W5>&sBƓ1ԝXԝX1!t"ڣ!t"ڞ w$Ee$ E$C $ #<  6l;y3T@ $B$̌??i; T@ $B$ffF@AX;BT@ $BU"Lx a&!P $ :r +)! -a&!  !} a&! &3m a&!  #_Da&! 3geS >a!  %9&a $a! > 'C&a $a! > (`| )a&!> *V=a$`@733>a!A333?=?a  #L?a<" @w*  6 6 6a!k333?=a  #L?a<" @w*  6 6 6a!h333?= >-",L&`F$HC $@GvN?class SpaceZone extends ZoneInfo; // When an actor enters this zone. event ActorEntered( actor Other ) { Super.ActorEntered(Other); if ( Other.IsA('Pawn') && Pawn(Other).bIsPlayer ) { Pawn(Other).UnderWaterTime = Pawn(Other).Default.UnderWaterTime; Pawn(Other).WaterSpeed *= 2; } } // When an actor leaves this zone. event ActorLeaving( actor Other ) { Super.ActorLeaving(Other); if ( Other.IsA('Pawn') && Pawn(Other).bIsPlayer ) { Pawn(Other).UnderWaterTime = Pawn(Other).Default.UnderWaterTime; Pawn(Other).WaterSpeed *= 0.5; } } +0H a!8 129^`  S div   T ?,- m::$ ?r* ?3 >a$u!a!j? #@?+ ?,#6333? o$ta$a!B:# .Es@`2 5<1ԝXttttԝXtttt[$L=\$L=oZ//============================================================================= // powerchunk3. //============================================================================= class powerchunk3 extends UTChunk; 48fhv!fr !,f:#\?a$fa$ "@a[  7;+5o$ :4Np<Ba>-(B::$o$! "B0TPY 5  b?> ի> a ! zD('w*o$  ի> a ! zD('w*o$ ?,(ի> a ! zD''w*o$3L> ?,(ի> a ! zD('3w*o$ %class superbeam extends DAmmo2; Z//============================================================================= // powerchunk2. //============================================================================= class powerchunk2 extends UTChunk; OC >?hH >Z-a$333? HD!  ?! 333?-a$333? HD!333?! a Z//============================================================================= // powerchunk1. //============================================================================= class powerchunk1 extends UTChunk; Dpywa/! .-...?, c//============================================================================= // OMG. //============================================================================= class OMG extends titan; function SpawnRock() { local Projectile Proj; local vector X,Y,Z, projStart; GetAxes(Rotation,X,Y,Z); MakeNoise(1.0); if (FRand() < 0.4) { projStart = Location + CollisionRadius * X + 0.4 * CollisionHeight * Z; Proj = spawn(class 'gaussbullet' ,self,'',projStart,AdjustAim(1000, projStart, 400, false, true)); if( Proj != None ) Proj.SetPhysics(PHYS_Projectile); return; } projStart = Location + CollisionRadius * X + 0.4 * CollisionHeight * Z; Proj = spawn(class 'gaussbullet' ,self,'',projStart,AdjustAim(1000, projStart, 400, false, true)); if( Proj != None ) Proj.SetPhysics(PHYS_Projectile); projStart = Location + CollisionRadius * X - 40 * Y + 0.4 * CollisionHeight * Z; Proj = spawn(class 'gaussbullet' ,self,'',projStart,AdjustAim(1000, projStart, 400, true, true)); if( Proj != None ) Proj.SetPhysics(PHYS_Projectile); if (FRand() < 0.2 * skill) { projStart = Location + CollisionRadius * X + 40 * Y + 0.4 * CollisionHeight * Z; Proj = spawn(class 'gaussbullet' ,self,'',projStart,AdjustAim(1000, projStart, 2000, false, true)); if( Proj != None ) Proj.SetPhysics(PHYS_Projectile); } } CB{{ya/! .-...? D=?B6F ^~֯____U,2O$pA]$L?/$?$/DW$/D"pnr$L? $?$B$BG a u-B??,??,r-$$= ף$a!m@@? !333?= f"//============================================================================= // gaussbullet. //============================================================================= class gaussbullet extends rocketMk2; var vector initialDir; simulated function PostBeginPlay() { Trail = Spawn(class'RocketTrail',self); if ( Level.bHighDetailMode ) { SmokeRate = (100 + (0.5 + 2 * FRand()) * NumExtraRockets * 24)/Speed; if ( Level.bDropDetail ) { SoundRadius = 4; LightRadius = 2; } } else { SmokeRate = 0.10 + FRand()*(0.02+NumExtraRockets); LightRadius = 3; } SetTimer(SmokeRate, true); } auto state Flying { simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if (!NewZone.bWaterZone || bHitWater) Return; bHitWater = True; if ( Level.NetMode != NM_DedicatedServer ) { w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; PlayAnim( 'Still', 3.0 ); } Velocity=0.6*Velocity; } simulated function ProcessTouch (Actor Other, Vector HitLocation) { if ( (Other != instigator) && !Other.IsA('Projectile') ) Explode(HitLocation,Normal(HitLocation-Other.Location)); } function BlowUp(vector HitLocation) { HurtRadius(Damage,100.0, MyDamageType, MomentumTransfer, HitLocation ); MakeNoise(1.0); } simulated function Explode(vector HitLocation, vector HitNormal) { local UT_SpriteBallExplosion s; local vector start; HurtRadius(damage, 256, 'FlakDeath', MomentumTransfer, HitLocation); start = Location + 10 * HitNormal; Spawn( Class'ut_ComboRing',,,Start); Spawn( class 'powerchunk2',, '', Start); Spawn( class 'powerchunk3',, '', Start); Spawn( class 'powerchunk2',, '', Start); Spawn( class 'powerchunk1',, '', Start); Spawn( class 'powerchunk3',, '', Start); Spawn( class 'powerchunk1',, '', Start); Destroy(); } function BeginState() { local vector Dir; Dir = vector(Rotation); Velocity = speed * Dir; Acceleration = Dir * 50; PlayAnim( 'Wing', 0.2 ); if (Region.Zone.bWaterZone) { bHitWater = True; Velocity=0.6*Velocity; } } } J>2_KIwa/!&  wh//============================================================================= // Dinosauls. // Original Monster created by Bean (looks like not Shorn bean but Mr.bean lol) //============================================================================= class Dinosauls extends Pupae; #exec MESH ORIGIN MESH=NaliCow X=0 Y=0 Z=-90 YAW=64 PITCH=0 ROLL=-64 #exec MESH SEQUENCE MESH=NaliCow SEQ=All STARTFRAME=0 NUMFRAMES=175 #exec MESH SEQUENCE MESH=NaliCow SEQ=Breath STARTFRAME=0 NUMFRAMES=6 RATE=6 #exec MESH SEQUENCE MESH=NaliCow SEQ=Chew STARTFRAME=6 NUMFRAMES=7 RATE=6 Group=Attack #exec MESH SEQUENCE MESH=NaliCow SEQ=TakeHit STARTFRAME=16 NUMFRAMES=1 #exec MESH SEQUENCE MESH=NaliCow SEQ=Dead STARTFRAME=13 NUMFRAMES=23 RATE=15 #exec MESH SEQUENCE MESH=NaliCow SEQ=Shake STARTFRAME=36 NUMFRAMES=18 RATE=15 Group=Attack #exec MESH SEQUENCE MESH=NaliCow SEQ=Swish STARTFRAME=54 NUMFRAMES=20 RATE=15 #exec MESH SEQUENCE MESH=NaliCow SEQ=Walk STARTFRAME=74 NUMFRAMES=15 RATE=15 #exec MESH SEQUENCE MESH=NaliCow SEQ=TakeHit2 STARTFRAME=89 NUMFRAMES=1 #exec MESH SEQUENCE MESH=NaliCow SEQ=Dead2 STARTFRAME=89 NUMFRAMES=13 RATE=15 #exec MESH SEQUENCE MESH=NaliCow SEQ=BigHit STARTFRAME=102 NUMFRAMES=1 #exec MESH SEQUENCE MESH=NaliCow SEQ=Dead3 STARTFRAME=102 NUMFRAMES=23 RATE=15 #exec MESH SEQUENCE MESH=NaliCow SEQ=Poop STARTFRAME=125 NUMFRAMES=20 RATE=15 Group=Attack #exec MESH SEQUENCE MESH=NaliCow SEQ=Root STARTFRAME=145 NUMFRAMES=20 RATE=15 #exec MESH SEQUENCE MESH=NaliCow SEQ=Landed STARTFRAME=169 NUMFRAMES=1 #exec MESH SEQUENCE MESH=NaliCow SEQ=Run STARTFRAME=165 NUMFRAMES=10 RATE=15 //----------------------------------------------------------------------------- // Pupae functions. function PostBeginPlay() { Super.PostBeginPlay(); MaxDesiredSpeed = 0.7 + 0.1 * skill; } function JumpOffPawn() { Super.JumpOffPawn(); PlayAnim('root', 1.0, 0.2); } function SetMovementPhysics() { SetPhysics(PHYS_Falling); } function eAttitude AttitudeToCreature(Pawn Other) { if ( Other.IsA('Pupae') ) return ATTITUDE_Friendly; else if ( Other.IsA('Skaarj') ) { if ( Other.IsA('SkaarjBerserker') ) return ATTITUDE_Ignore; else return ATTITUDE_Friendly; } else if ( Other.IsA('WarLord') || Other.IsA('Queen') ) return ATTITUDE_Friendly; else if ( Other.IsA('ScriptedPawn') ) return ATTITUDE_Hate; } function PlayWaiting() { local float decision; local float animspeed; animspeed = 0.4 + 0.6 * FRand(); decision = FRand(); if ( !bool(NextAnim) || (decision < 0.4) ) //pick first waiting animation { if ( !bQuiet ) PlaySound(Chew, SLOT_Talk, 0.7,,800); NextAnim = 'swish'; } else if (decision < 0.55) NextAnim = 'root'; else if (decision < 0.7) { if ( !bQuiet ) PlaySound(Stab, SLOT_Talk, 0.7,,800); NextAnim = 'breath'; } else if (decision < 0.7) NextAnim = 'swish'; LoopAnim(NextAnim, animspeed); } function PlayPatrolStop() { PlayWaiting(); } function PlayWaitingAmbush() { PlayWaiting(); } function PlayChallenge() { if ( FRand() < 0.3 ) PlayWaiting(); else PlayAnim('swish'); } function TweenToFighter(float tweentime) { TweenAnim('swish', tweentime); } function TweenToRunning(float tweentime) { if (AnimSequence != 'run' || !bAnimLoop) TweenAnim('run', tweentime); } function TweenToWalking(float tweentime) { TweenAnim('walk', tweentime); } function TweenToWaiting(float tweentime) { TweenAnim('breath', tweentime); } function TweenToPatrolStop(float tweentime) { TweenAnim('breath', tweentime); } function PlayRunning() { PlaySound(sound'scuttle1pp', SLOT_Interact); LoopAnim('run', -4.0/GroundSpeed,,0.4); } function PlayWalking() { PlaySound(sound'scuttle1pp', SLOT_Interact); LoopAnim('run', -4.0/GroundSpeed,,0.4); } function PlayThreatening() { PlayWaiting(); } function PlayTurning() { TweenAnim('run', 0.3); } function PlayDying(name DamageType, vector HitLocation) { local carcass carc; PlaySound(Die, SLOT_Talk, 3.5 * TransientSoundVolume); if ( FRand() < 0.35 ) PlayAnim('Dead', 0.7, 0.1); else if ( FRand() < 0.5 ) { carc = Spawn(class 'CreatureChunks',,, Location + CollisionHeight * vect(0,0,0.8), Rotation + rot(3000,0,16384) ); if (carc != None) { carc.Mesh = mesh'cowhead'; carc.Initfor(self); carc.Velocity = Velocity + VSize(Velocity) * VRand(); carc.Velocity.Z = FMax(carc.Velocity.Z, Velocity.Z); } PlayAnim('Dead2', 0.7, 0.1); } else { carc = Spawn(class 'CreatureChunks',,, Location + CollisionHeight * vect(0,0,0.8), Rotation + rot(3000,0,16384) ); if (carc != None) { carc.Mesh = mesh'cowbody1'; carc.Initfor(self); carc.Velocity = Velocity + VSize(Velocity) * VRand(); carc.Velocity.Z = FMax(carc.Velocity.Z, Velocity.Z); } PlayAnim('Dead3', 0.7, 0.1); } } function PlayTakeHit(float tweentime, vector HitLoc, int damage) { PlayAnim('TakeHit'); } function PlayVictoryDance() { PlayAnim('root', 1.0, 0.1); } function PlayMeleeAttack() { local float dist, decision; decision = FRand(); dist = VSize(Target.Location - Location); if (dist > CollisionRadius + Target.CollisionRadius + 45) decision = 0.0; if (Physics == PHYS_Falling) decision = 1.0; if (Target == None) decision = 1.0; if (decision < 0.15) { PlaySound(Lunge, SLOT_Interact); Enable('Bump'); PlayAnim('shake'); Velocity = 450 * Normal(Target.Location + Target.CollisionHeight * vect(0,0,0.75) - Location); if (dist > CollisionRadius + Target.CollisionRadius + 35) Velocity.Z += 0.7 * dist; SetPhysics(PHYS_Falling); } else { PlaySound(Stab, SLOT_Interact); PlayAnim('chew'); MeleeRange = 100; MeleeDamageTarget(BiteDamage, vect(0,0,0)); MeleeRange = Default.MeleeRange; } } state MeleeAttack { ignores SeePlayer, HearNoise; singular function Bump(actor Other) { Disable('Bump'); if ( (Other == Target) && (AnimSequence == 'poop') ) if (MeleeDamageTarget(LungeDamage, vect(0,0,0))) { if (FRand() < 0.5) PlaySound(Tear, SLOT_Interact); else PlaySound(Bite, SLOT_Interact); } } } auto state StartUp { function SetMovementPhysics() { SetPhysics(PHYS_None); // don't fall at start } } state Waiting { TurnFromWall: if ( NearWall(70) ) { PlayTurning(); TurnTo(Focus); } Begin: TweenToWaiting(0.4); bReadyToAttack = false; if (Physics != PHYS_Falling) SetPhysics(PHYS_None); KeepWaiting: NextAnim = ''; } QQ0/a/!$$Na/!FHa/!#$K$~a/!%a/!'$a/!S$ ME8 *B?b? T+o$ P@C!!??, a  a  !a  !a  !a  !a  !a  !a /ba! ?= K@%{a! ?L> -RIPn9?,2a!ML>l6--'? N<7B6X nGUVލԝXԝXԝXԝXԝX]H]H]H]H]H]H]H]H]H]Htttttt(P*d)1.5qZVJ$CK"txu6 $̌?$A$BDDCrDC C$CTD CFD^V_LC[C__WC&CpDBCoCaCbCSCCbCEbbc`vaFCnCXUcCU_@CmbJc}b~CBbAaqbtJbwT[e`bITBTbXT@D$UfbdEa1tMa`]cZe\U+CktGd@TDcKClcocusyCjcswszs|e__BT=bYTYTQTTda6cztOtHtI`CTTTLT:Ta5aa.a)SHb^e(T3e*T_TaTgT9TCTHcUb T^T`TTbU4eAT_ftLtKa~tPsRtN^VCY_MaGe|CeCWCdCZC`TIT>TRadTTTEs\s]+{ h6=Q u6=D B7Ry O7CS \7ES i7OSv7@{ D8=b P84{ ]8=c i8;Gv84} };WT I<Jf V<=e c<MS p<lg}<MP d>igq>X^X@@x vAJO BBPP OBRN\B8S jBRP wB%R DC#R PC$R \C!R hC"R tCXL%@DX:7eDX#\EX3#EX_$bFXg4FGX98zGXC9rHX` kIX&KJX=}qJ-unP+P cR5g4J pRXH"z[/R \\/Q h\/ u\X^ A]Xdca]sCDbg4eGeXf*lh7jViXa!@kX+)ak:!JlX4xklFYScn,g4/vtg4eeuXJJyg4eT|Oiy5DeGFg4nl5BfZ?L@  L [Y c,tIRW`X2w g4q"iI>LZXg4BifXQQhIE8yX"qIESXb,XX@/DRhs+a AIIeM7xr