*@pw:If 3pNoneHitWallTickAngelItemPhysicsEngineCorePostBeginPlay TakeDamageBounceSpeedLoss BounceSoundPhysicsVolumeChangebBounceMassLandedFellOutOfWorldSystem bProjTarget EndState BeginState Sleeping RandSpin XPickupsbShouldBaseAtStartupGetDisplayText WildCardBasePhysicsPhysicsSuperShieldPhysicsUDamagePhysicsWildcardBasePhysicsShieldCollisionHeightPhysicsMiniHealthPackPhysicsHealthPack DrawTypebDynamicLightbCollideActorsPhysicsAmmoPickupPhysicsAdrenalinePickupbCollideWorldTimer UTAmmoPickupNewWeaponBase StaticMeshNewHealthChargerXGameHealthChargerShieldChargerSuperHealthChargerSuperShieldChargerUDamageCharger xWeaponBase XWeaponsMutItemPhysics HealthPack xPickUpBaseResetTimeTextGetDescriptionText DesTextDesc UDamagePack ShieldPackSuperShieldPackAdrenalinePickup DescriptionPhysicsChargerBase WildCardMeshResetTextDesc GroupName ReplaceWithKarma Lighting CollisionForce LightColor Movement ResetText FriendlyNameDesTextbStatic ResetTimeResetTimeTextDescPhysicsSuperHealthPackMiniHealthPackWeaponPickupMesh FillPlayInfoNewWeaponPickupMesh AmbientGlowCheckReplacementNewHealthMeshShieldChargerMeshMaxDesireabilityPickupMessage RotationRate DrawScalebHiddenSetStaticMesh SetDrawScaleCollisionRadiusWallDesiredRotation PropName ScriptTextAddToNavigation bPainCausing PickupClass AmmoAmountInventoryType PickupSound PickupForce NewPickup spinRatePowerUpSpiralEmitter myPickUp myEmitter TimeSecondsbSuperRelevant CurrentTime Momentum HitLocationDamage KillType NewVolume HitNormalEventInstigator DeltaTimeOther eKillZTypeiZ RulesGroup bInitialized Location Rotation Velocity ReturnValueWeaponSuperHealthPack LevelInfoPlayerSpawnEffect WeaponSoundsMiscball_bounce_v3aPickupClassesAmmoPickup Inventory DamageTypePhysicsVolumeMutatorLevel XGame_rcWildcardChargerMeshHealthChargerMeshEmitterAmmoChargerMesh WeaponType PlayInfoPawnHealthChargerMESH-DSChargerMeshesWeaponChargerMesh-DS2k4ChargerMeshesInfo bTimerSetActorYawRollPitchSoundClassPackage TextBufferObjectEnum FunctionStatebResetAfterTimer bDestroyableRotatorVectorStruct XEffects StrPropertyStructPropertyClassPropertyReplacedPickup PhysAmmo PhysCharger PhysWildObjectPropertyFloatPropertybInitialFallDoneInitialLocationPhysicsPickupBasePhysicsBaseTypePhysicsWeaponPickupType BoolProperty IntProperty BytePropertyRemoveFromNavigation PhysPickuptQ[o? B))ŵ܅g܅gggܳ32jh= MB&d " ^{ŷg;DHn$? XRTW@!*"$@#& $HB?@Zu 2] ŵ0I0I$? S $HB\Y$2 WG wŵ0I0I3$? ! $HB VQ2 ȷ֔ŵ0I0I$? S $HBUQ2 ^{ ŵ0I0I$? S $HBXq2 MB&}iŵ0I0I$? S $HBG@@@-]p%20+ҁŵ0I0I$?  $HBYw2䔰"ŵ0I0I$?  $HBPJ Jɔ`ŵ܅g܅gggܳ,$? MS"Ux$@#& $HBz69p<B;kWPe!E@H4s7t23580:"v=)aAVFC(WdP2DHn`ŵ0I0I$? S $HBF.@Mb+c]+ua@69D9?,69D9?,69D9?, GO}+ua@69D9?,69D9?,69D9?, G'|X&R+ ua@69D9?,69D9?,69D9?, G$CR+#ua@69D9?,69D9?,69D9?, GC}+ua@69D9?,69D9?,69D9?, Gd#tdT+ua@69D9?,69D9?,69D9?, GoihGX@1\*ua@69D9?,69D9?,69D9?, G{>Ss+!ua@69D9?,69D9?,69D9?, GlBCDH@L@LIO@GP@Q@@%T*RjiWZ@\x/]KrJckiUV[\lKfjrEk s G9k-a )-9a9a !a k G qvw{xG%vsrU* -o$q_PGs-&-X[-&' G@p Bp* Gs# G|~0y-=v! v-)vd9?ea a #o$#a -)( G_b3'hbbai$_PG9?, #a+9P#o$ Gc^3#s^^C-ar$cPG9?, #a+9P#o$ GAo Co* GTzf =#a *-9a:a !a  G DGH7vsrj* -o$ncPGs-)-=d-)' GHInS_ a-( GFNbe GZa-' GM_ a-( GLPf =#a *-a/!+NewHealthPackYHealthPacka/!.Shielda/!0SuperShielda/!/SuperHealtha/!1UDamageXa/!CPhysicsWildcardBase(a/!2a/!)NewWeaponBasexWeaponBase?..*.-'-@--|-aw.*Q.(' G{/a9 a/!Qa/!a   #A .-6-.-5-.zaa/!=a/!%a   #A .-4-.-3-.ta_a/!5a/! a   #A .-9-.-:-.pa$a/!:a/!a  #A . -E-. -F-. Haa/!;a/!a  #A . -B-. -C-. Paa/!<a/!a  #A . -<-. -=-. ea10 G~} s G9}-a )-6a9a  a } G U|% Gy';a a %o$#a -G( Gz|Tw*% #4Ba #4Bw*% # Ba # B G{u& cUuuaR$`9?, #o$ GKxf =#a *-6a:a  a  G }N 2N* GF_a-( G@C7To$M69?,Q-G-v-G'a9?@( GDEMZa-' GBICk#a X-;;w*aRw*aaha %a  G Hq Viugq-a W-;:w*aQw*aaga %a q G QAbD GJMNC)//----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsWildcardBase extends WildcardBase; var float BounceSpeedLoss; var sound BounceSound; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } function Timer() { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } simulated function tick(float deltatime) { if(myPickup != none && myPickup.Location != Location + vect(0,0,45)) myPickup.SetLocation(Location + vect(0,0,45)); if(myEmitter != none && myEmitter.Location != Location + vect(0,0,40)) myEmitter.SetLocation(Location + vect(0,0,40)); } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); PlaySound(BounceSound, SLOT_Misc ); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetPhysics(PHYS_None); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; Velocity.Z += 200; if(!bTimerSet && bResetAfterTimer) { bTimerSet = true; SetTimer(ResetTime,False); } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) { if(myEmitter != none) myEmitter.Destroy(); if(myPickup != none) myPickup.Destroy(); Destroy(); } else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) { if(myEmitter != none) myEmitter.Destroy(); if(myPickup != none) myPickup.Destroy(); Destroy(); } else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } ROH9if-o$JPGf--5{-' GkE CE* Gp///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsUDamage extends UDamagePack; var float BounceSpeedLoss; var sound BounceSound; var PhysicsChargerBase PhysicsPickupBase; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(!bHidden) PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(PhysicsPickupBase == none && !bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } x///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsSuperShield extends SuperShieldPack; var float BounceSpeedLoss; var sound BounceSound; var PhysicsChargerBase PhysicsPickupBase; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(!bHidden) PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(PhysicsPickupBase == none && !bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } f///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsSuperHealthPack extends SuperHealthPack; var float BounceSpeedLoss; var sound BounceSound; var PhysicsChargerBase PhysicsPickupBase; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(PhysicsPickupBase == none && !bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } n///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsShield extends ShieldPack; var float BounceSpeedLoss; var sound BounceSound; var PhysicsChargerBase PhysicsPickupBase; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(!bHidden) PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(PhysicsPickupBase == none && !bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } W///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsMiniHealthPack extends MiniHealthPack; var float BounceSpeedLoss; var sound BounceSound; var PhysicsChargerBase PhysicsPickupBase; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(!bHidden) PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(!bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } r///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsHealthPack extends HealthPack; var float BounceSpeedLoss; var sound BounceSound; var PhysicsChargerBase PhysicsPickupBase; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(!bHidden) PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(PhysicsPickupBase == none && !bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } mW//----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsChargerBase extends Actor; var float BounceSpeedLoss; var sound BounceSound; var string PhysicsBaseType; var class PhysicsWeaponPickupType; var StaticMesh ShieldChargerMesh, WeaponPickupMesh, NewWeaponPickupMesh, NewHealthMesh, WildCardMesh; var Pickup PhysPickup; var class SpiralEmitter; var Emitter myEmitter; var vector InitialLocation; var bool bDestroyable, bInitialized, bResetAfterTimer, bTimerSet; var int ResetTime; simulated function PostBeginPlay() { SetTimer(0.1,False); InitialLocation = Location; } function Timer() { if(bInitialized) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; return; } if(PhysicsBaseType == "HealthPack") { PhysPickup = Spawn(class'PhysicsHealthPack',,,Location + vect(0,0,45),Rotation); PhysicsHealthPack(PhysPickup).PhysicsPickupBase = self; SetDrawScale(class'HealthCharger'.default.DrawScale); } else if(PhysicsBaseType == "NewHealthPack") { PhysPickup = Spawn(class'PhysicsHealthPack',,,Location + vect(0,0,45),Rotation); PhysicsHealthPack(PhysPickup).PhysicsPickupBase = self; SetStaticMesh(NewHealthMesh); SetDrawScale(class'NewHealthCharger'.default.DrawScale); } else if(PhysicsBaseType == "Shield") { PhysPickup = Spawn(class'PhysicsShield',,,Location + vect(0,0,45),Rotation); PhysicsShield(PhysPickup).PhysicsPickupBase = self; SetStaticMesh(ShieldChargerMesh); SetDrawScale(class'ShieldCharger'.default.DrawScale); } else if(PhysicsBaseType == "SuperShield") { PhysPickup = Spawn(class'PhysicsSuperShield',,,Location + vect(0,0,45),Rotation); PhysicsSuperShield(PhysPickup).PhysicsPickupBase = self; SetStaticMesh(ShieldChargerMesh); SetDrawScale(class'SuperShieldCharger'.default.DrawScale); } else if(PhysicsBaseType == "UDamage") { PhysPickup = Spawn(class'PhysicsUDamage',,,Location + vect(0,0,45),Rotation); PhysicsUDamage(PhysPickup).PhysicsPickupBase = self; SetStaticMesh(ShieldChargerMesh); SetDrawScale(class'UDamageCharger'.default.DrawScale); } else if(PhysicsBaseType == "WildCard") { PhysPickup = Spawn(class'PhysicsHealthPack',,,Location + vect(0,0,45),Rotation); PhysicsHealthPack(PhysPickup).PhysicsPickupBase = self; SetStaticMesh(WildCardMesh); } else if(PhysicsBaseType == "xWeaponBase") { PhysPickup = Spawn(PhysicsWeaponPickupType,,,Location + vect(0,0,45),Rotation); SetStaticMesh(WeaponPickupMesh); SetDrawScale(class'xWeaponBase'.default.DrawScale); } else if(PhysicsBaseType == "NewWeaponBase") { PhysPickup = Spawn(PhysicsWeaponPickupType,,,Location + vect(0,0,45),Rotation); SetStaticMesh(NewWeaponPickupMesh); SetDrawScale(class'NewWeaponBase'.default.DrawScale); } else if(PhysicsBaseType == "SuperHealth") { PhysPickup = Spawn(class'PhysicsSuperHealthPack',,,Location + vect(0,0,45),Rotation); PhysicsSuperHealthPack(PhysPickup).PhysicsPickupBase = self; } myEmitter = Spawn(SpiralEmitter,,,Location + vect(0,0,40)); bInitialized = true; } simulated function tick(float deltatime) { if(PhysPickup != none && PhysPickup.Location != Location + vect(0,0,45)) PhysPickup.SetLocation(Location + vect(0,0,45)); if(myEmitter != none && myEmitter.Location != Location + vect(0,0,40)) myEmitter.SetLocation(Location + vect(0,0,40)); } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); PlaySound(BounceSound, SLOT_Misc ); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetPhysics(PHYS_None); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; Velocity.Z += 200; if(!bTimerSet && bResetAfterTimer) { bTimerSet = true; SetTimer(ResetTime,False); } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) { if(myEmitter != none) myEmitter.Destroy(); if(PhysPickup != none) PhysPickup.Destroy(); Destroy(); } else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) { if(myEmitter != none) myEmitter.Destroy(); if(PhysPickup != none) PhysPickup.Destroy(); Destroy(); } else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } i///----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsAmmoPickup extends UTAmmoPickup; var float BounceSpeedLoss; var sound BounceSound; var bool bInitialFallDone; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(bInitialFallDone) { PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); } if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(!bHidden) { bInitialFallDone = true; SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; Velocity.Z += 100; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } s.//----------------------------------------------------------- // //----------------------------------------------------------- class PhysicsAdrenalinePickup extends AdrenalinePickup; var float BounceSpeedLoss; var sound BounceSound; var vector InitialLocation; var bool bDestroyable, bResetAfterTimer, bTimerSet; var int ResetTime; var float CurrentTime; simulated function PostBeginPlay() { InitialLocation = Location; super.PostBeginPlay(); } simulated function Tick(float deltatime) { if(!bResetAfterTimer) { Disable('Tick'); return; } if(bTimerSet) { if(Level.TimeSeconds - CurrentTime > ResetTime) { spawn(class'PlayerSpawnEffect'); SetLocation(InitialLocation); SetPhysics(PHYS_Falling); Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); bTimerSet = false; } } } simulated final function RandSpin(float spinRate) { DesiredRotation = RotRand(); RotationRate.Yaw = spinRate * 2 *FRand() - spinRate; RotationRate.Pitch = spinRate * 2 *FRand() - spinRate; RotationRate.Roll = spinRate * 2 *FRand() - spinRate; } function HitWall( vector HitNormal, actor Wall ) { Velocity = BounceSpeedLoss*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); if(!bHidden) PlaySound(BounceSound, SLOT_Misc ); RandSpin(100000); if (VSize(Velocity) < 10) { Velocity = vect(0,0,0); SetRotation(rotator(vect(0,0,0))); SetPhysics(PHYS_None); AddToNavigation(); } } function Landed(vector hitNormal) { HitWall(HitNormal,None); } function TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { if(!bHidden) { RemoveFromNavigation(); SetPhysics(PHYS_Falling); Velocity += Momentum/Mass; RandSpin(100000); if(!bTimerSet && bResetAfterTimer) { CurrentTime = Level.TimeSeconds; bTimerSet = true; } } } State Sleeping { function BeginState() { SetCollisionSize(0,0); bHidden = true; } function EndState() { SetCollisionSize(default.CollisionRadius,default.CollisionHeight); bHidden = false; } } simulated event FellOutOfWorld(eKillZType KillType) { Velocity = vect(0,0,0); spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } simulated event PhysicsVolumeChange( PhysicsVolume NewVolume ) { if(NewVolume.bPainCausing) { spawn(class'PlayerSpawnEffect'); if(bDestroyable) Destroy(); else { SetLocation(InitialLocation); spawn(class'PlayerSpawnEffect'); } } Super.PhysicsVolumeChange(NewVolume); } Ka=(- G^'-C-Va a -o$#a ->( zHealthPacka  #4B.* 'zNewHealthPacka  #4B.*C zShielda #4B. \A zSuperShielda #4B. jA zUDamagea #4B. JA zWildCarda  #4B.*BEzxWeaponBasea? #4BF zNewWeaponBasea? #4BD zSuperHealtha D #4B.DUaQ # B-V' G_aedTw*% #4Ba #4Bw*% # Ba # B G`mmcKmmaI$`9?, #o$ G^//============================================================================= // Gives items physics. // Rachel "Angel Mapper" Cordone // rachel@angelmapper.com // www.angelmapper.com //============================================================================= class MutItemPhysics extends Mutator config(AngelItemPhysics); var config bool bResetAfterTimer, bDestroyable; var config int ResetTime; var localized string DesText, ResetText, ResetTimeText; var localized string DesTextDesc, ResetTextDesc, ResetTimeTextDesc; simulated function PostBeginPlay() { local Pickup ReplacedPickup, NewPickup; foreach DynamicActors(class'Pickup', ReplacedPickup) { if(ReplacedPickup.IsA('MiniHealthPack') && !ReplacedPickup.IsA('PhysicsMiniHealthPack')) { NewPickup = Spawn(class'PhysicsMiniHealthPack',,,ReplacedPickup.Location + vect(0,0,16),ReplacedPickup.Rotation); PhysicsMiniHealthPack(NewPickup).bDestroyable = bDestroyable; PhysicsMiniHealthPack(NewPickup).bResetAfterTimer = bResetAfterTimer; PhysicsMiniHealthPack(NewPickup).ResetTime = ResetTime; ReplacedPickup.Destroy(); } else if(ReplacedPickup.IsA('AdrenalinePickup') && !ReplacedPickup.IsA('PhysicsAdrenalinePickup')) { NewPickup = Spawn(class'PhysicsAdrenalinePickup',,,ReplacedPickup.Location + vect(0,0,16),ReplacedPickup.Rotation); PhysicsAdrenalinePickup(NewPickup).bDestroyable = bDestroyable; PhysicsAdrenalinePickup(NewPickup).bResetAfterTimer = bResetAfterTimer; PhysicsAdrenalinePickup(NewPickup).ResetTime = ResetTime; ReplacedPickup.Destroy(); } else if(ReplacedPickup.IsA('HealthPack') && !ReplacedPickup.IsA('PhysicsHealthPack')) { NewPickup = Spawn(class'PhysicsHealthPack',,,ReplacedPickup.Location + vect(0,0,16),ReplacedPickup.Rotation); PhysicsHealthPack(NewPickup).bDestroyable = bDestroyable; PhysicsHealthPack(NewPickup).bResetAfterTimer = bResetAfterTimer; PhysicsHealthPack(NewPickup).ResetTime = ResetTime; ReplacedPickup.Destroy(); } else if(ReplacedPickup.IsA('UDamagePack') && !ReplacedPickup.IsA('PhysicsUDamage')) { NewPickup = Spawn(class'PhysicsUDamage',,,ReplacedPickup.Location + vect(0,0,16),ReplacedPickup.Rotation); PhysicsUDamage(NewPickup).bDestroyable = bDestroyable; PhysicsUDamage(NewPickup).bResetAfterTimer = bResetAfterTimer; PhysicsUDamage(NewPickup).ResetTime = ResetTime; ReplacedPickup.Destroy(); } else if(ReplacedPickup.IsA('ShieldPack') && !ReplacedPickup.IsA('PhysicsShield')) { NewPickup = Spawn(class'PhysicsShield',,,ReplacedPickup.Location + vect(0,0,16),ReplacedPickup.Rotation); PhysicsShield(NewPickup).bDestroyable = bDestroyable; PhysicsShield(NewPickup).bResetAfterTimer = bResetAfterTimer; PhysicsShield(NewPickup).ResetTime = ResetTime; ReplacedPickup.Destroy(); } else if(ReplacedPickup.IsA('SuperShieldPack') && !ReplacedPickup.IsA('PhysicsSuperShield')) { NewPickup = Spawn(class'PhysicsSuperShield',,,ReplacedPickup.Location + vect(0,0,16),ReplacedPickup.Rotation); PhysicsSuperShield(NewPickup).bDestroyable = bDestroyable; PhysicsSuperShield(NewPickup).bResetAfterTimer = bResetAfterTimer; PhysicsSuperShield(NewPickup).ResetTime = ResetTime; ReplacedPickup.Destroy(); } } } function bool CheckReplacement(Actor Other, out byte bSuperRelevant) { local PhysicsAmmoPickup PhysAmmo; local PhysicsChargerBase PhysCharger; local PhysicsWildcardBase PhysWild; local int i; if(Other.IsA('UTAmmoPickup') && !Other.IsA('PhysicsAmmoPickup')) { PhysAmmo = Spawn(class'PhysicsAmmoPickup',,,Other.Location,Other.Rotation); PhysAmmo.AmmoAmount = UTAmmoPickup(Other).default.AmmoAmount; PhysAmmo.MaxDesireability = UTAmmoPickup(Other).default.MaxDesireability; PhysAmmo.InventoryType = UTAmmoPickup(Other).default.InventoryType; PhysAmmo.PickupMessage = UTAmmoPickup(Other).PickupMessage; PhysAmmo.PickupSound = UTAmmoPickup(Other).default.PickupSound; PhysAmmo.PickupForce = UTAmmoPickup(Other).default.PickupForce; PhysAmmo.SetStaticMesh(UTAmmoPickup(Other).default.StaticMesh); PhysAmmo.SetCollisionSize(UTAmmoPickup(Other).default.CollisionRadius,UTAmmoPickup(Other).default.CollisionHeight); PhysAmmo.bDestroyable = bDestroyable; PhysAmmo.bResetAfterTimer = bResetAfterTimer; PhysAmmo.ResetTime = ResetTime; Other.Destroy(); } else if(Other.IsA('WildcardBase') && !Other.IsA('PhysicsWildcardBase')) { PhysWild = Spawn(class'PhysicsWildcardBase',,,Other.Location + vect(0,0,4),Other.Rotation); for(i=0;i<8;i++) { if(WildcardBase(Other).PickupClasses[i] != none) { PhysWild.PickupClasses[i] = WildcardBase(Other).PickupClasses[i]; WildcardBase(Other).PickupClasses[i] = none; } } PhysWild.bDestroyable = bDestroyable; PhysWild.bResetAfterTimer = bResetAfterTimer; PhysWild.ResetTime = ResetTime; Other.SetStaticMesh(None); if(WildcardBase(Other).myPickup != none) WildcardBase(Other).myPickup.Destroy(); if(WildcardBase(Other).SpiralEmitter != none) WildcardBase(Other).SpiralEmitter = None; return false; } else if(Other.IsA('xPickupBase') && !Other.IsA('WildcardBase')) { Other.SetStaticMesh(None); xPickupBase(Other).PowerUp = none; PhysCharger = Spawn(class'PhysicsChargerBase',,,Other.Location + vect(0,0,4),Other.Rotation); if(Other.IsA('HealthCharger')) { if(Other.IsA('NewHealthCharger')) PhysCharger.PhysicsBaseType = "NewHealthPack"; else PhysCharger.PhysicsBaseType = "HealthPack"; } else if(Other.IsA('ShieldCharger')) PhysCharger.PhysicsBaseType = "Shield"; else if(Other.IsA('SuperShieldCharger')) PhysCharger.PhysicsBaseType = "SuperShield"; else if(Other.IsA('SuperHealthCharger')) PhysCharger.PhysicsBaseType = "SuperHealth"; else if(Other.IsA('UDamageCharger')) PhysCharger.PhysicsBaseType = "UDamage"; else if(Other.IsA('WildcardBase')) { ReplaceWith(Other,"PhysicsWildcardBase"); return false; } else if(Other.IsA('xWeaponBase')) { if(Other.IsA('NewWeaponBase')) PhysCharger.PhysicsBaseType = "NewWeaponBase"; else PhysCharger.PhysicsBaseType = "xWeaponBase"; PhysCharger.PhysicsWeaponPickupType = xWeaponBase(Other).WeaponType.default.PickupClass; xWeaponBase(Other).WeaponType = none; xWeaponBase(Other).bHidden = true; } PhysCharger.bDestroyable = bDestroyable; PhysCharger.bResetAfterTimer = bResetAfterTimer; PhysCharger.ResetTime = ResetTime; if(xPickupBase(Other).SpiralEmitter != none) PhysCharger.SpiralEmitter = xPickupBase(Other).SpiralEmitter; return false; } return true; } static function FillPlayInfo(PlayInfo PlayInfo) { Super.FillPlayInfo(PlayInfo); PlayInfo.AddSetting(default.RulesGroup, "bDestroyable", GetDisplayText("DesText"), 0, 1, "Check"); PlayInfo.AddSetting(default.RulesGroup, "bResetAfterTimer", GetDisplayText("ResetText"), 0, 1, "Check"); PlayInfo.AddSetting(default.RulesGroup, "ResetTime", GetDisplayText("ResetTimeText"), 0, 1, "Text", "2;0:99"); } static event string GetDisplayText( string PropName ) { switch (PropName) { case "DesText": return default.DesText; case "ResetText": return default.ResetText; case "ResetTimeText": return default.ResetTimeText; } } static event string GetDescriptionText(string PropName) { switch (PropName) { case "bDestroyable": return default.DesTextDesc; case "bResetAfterTimer": return default.ResetTextDesc; case "ResetTime": return default.ResetTimeTextDesc; } return Super.GetDescriptionText(PropName); } bt yt* Geh~VTo$A69?,Q->-|->'a9?a( GijA~3%X~~C-aW$PG9?, #a+9P#o$ Ggn_k#a X-@;w*aRw*aaha -a  G mf ugf-a W-@:w*aQw*aaga -a f G cY46Bp0Y ввв)))) WG w WG w WG w WG w WG w WG w WG w WG wG w W W W)))))`Jɔ``JɔJɔJɔ)``g``)))"&Ճ))))B)B))B))B))B))B))))B)B)B);i|;;B)B)B)"&B)"&Յgggg䔰䔰䔰ggggg000ͅgggggggggg ^{ ^{ ^{ggggg MB& MB& MB&ggggg gIFEHDGN" L] DestroyableJ]Reset After Timer7]Time Until Reset9][YItems are destroyed by lava/etc. If unchecked, items return to their original location.A]>=Items reset to their original location after a certain time.O]#"Amount of time until items reset.B]Angel Item PhysicsK]Angel Item Physics>]Items react to weapon fire. OMG item hogger! Click Configure Mutator to decide wether they are destroyable by lava etc, and wether they reset their position after a certain amount of time.jjidiniPilwEi}juiJtsiwj,wCi~iDiIiiD]iSi6trw[oiiEj3i(n wDn}U~rjixikiviFiRhMi2n^nDfihi]jKnnm~iYjLn~ ~~`}pn nEewbEgioEfnnG~\n_ibne}qi*i\jVxNxo~@iTvAi)vknSi+n8xiEhi:}ji<iHi;iQi5n'n i0j_jai=vZx[~Yi-i.i1niOxnxgiQnV*^*X*`*W*X*Z}*iG5}Z66y h66l u6HB7?xP7B H> RT>5{ f@$Ss@5z FCRSCReERwGpN IJpq VJpp bJq nJ%O{JOJM5 YOZeOym RZm KSm WSNm cS_m oScm {Snm GTSm ST5| _Tc lT@ yT@ FUc SU @ `U @mU@ {UDc HVD@UV c cV c pVA }V @JW!\XW@fW c tW@ AX c NX @ [Xc hXp uXq AYp MYq YY q eY p qYq }Yp IZq UZ q bZ p nZc zZCG[q V[Xc[ q r[ p [PTK\ q _^ p l^c x^ N E_ zR_ A `_y m_zz_ t H` mT` t Ab N MboZby hb mubzbdDA pdB }dDq JeDp We0y ce mpeDt ]g A igy vgzChDmQhz~iN LjzXj mfj t Sl N _loy lly ylt Fm t Rm A ^my kmzxmbzFnmTnt ApN MpJy Zp$y gp N tpN Aq=zNqp \qc iq  vqmBrN ost |sp Ht7y TtkzatmotN \vguhv@vvWDwTSwRz bwRowpL ~wpJ Kx  XxQuex sxp7 @yBuMy@z [yp9 hypA uypO Bz  Nz [z  hz uz%uB{ P{ ^{#z k{c x{  E| R|  `| m|uz|z H}z U}ub} p}  ~}z K~uX~z f~D s~D @uNDN \ i  wuDz Rz _ul z  Hez U Pbvr{@w NDt[x OD )\ )E vn| da pDJ} RG| Ya e )rM[ shw [{hvv.DRr 0@2p.b MPx ] PjDwz2q0cD)SR|vJ{X Pfx v MC )P wy| p.|2j R\ 0na ^ )kw T taw U{bvpr~Rp 0~2n.` NNx \ QiRz )Ha qD0~vn{|w J uWRL )^ )G wp| ga s M@ RM| _a k )x2a tSw G{Tvb.pR^ 0l 2\ .N N|x J QW vh| ^vj )`)IDNrF @p8sLF )Kvt| jx vpbCRepSLw a C )PD QyhJ%w r%{%vMA [%Rh0v+2f+.XMF.x S P`5F p)|ve5s[pVSipt | Pp>x @+M'LxiD;| mkyMd=a q *~K.h^VBw tB{ABvOK2]BROq]Hx N t[0OQRQvMQ{[Qw id4N)vhD )lka U3| b d4{/n d4C0iDd4q/l d4y/]d4b/Vd4}/xd4xWu d4t/md4~.a/_'c Nfq`| Wkcpd4jNba x *ERo\}gw Yg{fgvtRBgRTpbmx R s_4oR