class AuraPistol extends Weapon; var travel int PowerLevel; var vector WeaponPos; var float Count,ChargeSize; var ChargeLight cl1,cl2; var Pickup Amp; var Sound PowerUpSound; function float RateSelf(out int bUseAltMode){ local float rating; if(Amp!=None) rating=6*AIRating;else rating=AIRating; if(AmmoType.AmmoAmount<=0) return 0.05; if(Pawn(Owner).Enemy==None){ bUseAltMode=0; return rating*(PowerLevel+1);} bUseAltMode=int(FRand()<0.3); return rating*(PowerLevel+1);} function float SuggestAttackStyle(){ local float EnemyDist; local Inventory Inv; if(!Pawn(Owner).bIsPlayer||(PowerLevel>0)) return 0; return -0.3;} function bool HandlePickupQuery(inventory Item){ if(Item.IsA('UpDate')){ AmmoType.AddAmmo(AmmoType.MaxAmmo); Pawn(Owner).ClientMessage(Item.PickupMessage,'Pickup'); Item.PlaySound(PickupSound); if(PowerLevel<14){ ShakeVert=Default.ShakeVert+PowerLevel; PowerUpSound=Item.ActivateSound; if(Pawn(Owner).Weapon==self){ PowerLevel++; GotoState('PowerUp');} else if((Pawn(Owner).Weapon!=Self)&&!Pawn(Owner).bNeverSwitchOnPickup){ Pawn(Owner).Weapon.PutDown(); Pawn(Owner).PendingWeapon=self; GotoState('PowerUp','Waiting');} else PowerLevel++;} Item.SetRespawn(); return true;}else return Super.HandlePickupQuery(Item);} function BecomePickup(){ Amp=None; Super.BecomePickup();} function PlayFiring(){ AmmoType.GoToState('Idle2'); Owner.PlaySound(AltFireSound,SLOT_None,1*Pawn(Owner).SoundDampening,,,1.2); if(PlayerPawn(Owner)!=None) PlayerPawn(Owner).ShakeView(ShakeTime,ShakeMag,ShakeVert); if(PowerLevel==0) PlayAnim('Shoot1',0.4,0.2); else if(PowerLevel==1) PlayAnim('Shoot2',0.3,0.2); else if(PowerLevel==2) PlayAnim('Shoot3',0.2, 0.2); else if(PowerLevel==3) PlayAnim('Shoot4',0.1,0.2); else if(PowerLevel==4) PlayAnim('Shoot5',0.1,0.2); else if(PowerLevel==5) PlayAnim('Shoot1',0.2,0.2); else if(PowerLevel==6) PlayAnim('Shoot2',0.3,0.2); else if(PowerLevel==7) PlayAnim('Shoot3',0.4,0.2); else if(PowerLevel==8) PlayAnim('Shoot4',0.5,0.2); else if(PowerLevel==9) PlayAnim('Shoot5',0.6,0.2); else if(PowerLevel==10) PlayAnim('Shoot1',0.7,0.2); else if(PowerLevel==11) PlayAnim('Shoot2',0.8,0.2); else if(PowerLevel==12) PlayAnim('Shoot3',0.9,0.2); else if(PowerLevel==13) PlayAnim('Shoot4',1,0.2); else if(PowerLevel==14) PlayAnim('Shoot5',2,0.2);} function Projectile ProjectileFire(classProjClass,float ProjSpeed,bool bWarn){ local Vector Start,X,Y,Z; local AuraD da; local float M; Owner.MakeNoise(Pawn(Owner).SoundDampening); if(Amp!=None)M=Amp.UseCharge(8); else M=1; GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start=Owner.Location+CalcDrawOffset()+FireOffset.X*X+FireOffset.Y*Y+FireOffset.Z*Z; AdjustedAim=pawn(owner).AdjustAim(ProjSpeed,Start,AimError,True,(3.5*FRand()-1=4)&&AmmoType.UseAmmo(6)) da=Spawn(class'D5',,,Start,AdjustedAim); if((PowerLevel>=5)&&AmmoType.UseAmmo(7)) da=Spawn(class'D6',,,Start,AdjustedAim); if((PowerLevel>=6)&&AmmoType.UseAmmo(8)) da=Spawn(class'D7',,,Start,AdjustedAim); if((PowerLevel>=7)&&AmmoType.UseAmmo(7)) da=Spawn(class'D8',,,Start,AdjustedAim); if((PowerLevel>=8)&&AmmoType.UseAmmo(6)) da=Spawn(class'D9',,,Start,AdjustedAim); if((PowerLevel>=9)&&AmmoType.UseAmmo(5)) da=Spawn(class'D10',,,Start,AdjustedAim); if((PowerLevel>=10)&&AmmoType.UseAmmo(4)) da=Spawn(class'D11',,,Start,AdjustedAim); if((PowerLevel>=11)&&AmmoType.UseAmmo(3)) da=Spawn(class'D12',,,Start,AdjustedAim); if((PowerLevel>=12)&&AmmoType.UseAmmo(2)) da=Spawn(class'D13',,,Start,AdjustedAim); if((PowerLevel>=13)&&AmmoType.UseAmmo(1)) da=Spawn(class'D14',,,Start,AdjustedAim); if((PowerLevel>=14)&&AmmoType.UseAmmo(0)) da=Spawn(class'D15',,,Start,AdjustedAim);} if((da!=None)&&(M>1)) da.InitSplash(M);} function AltFire(float Value){ bPointing=True; CheckVisibility(); GoToState('AltFiring');} state AltFiring{ ignores AltFire; function Tick(float DeltaTime){ if(Level.NetMode==NM_DedicatedServer){ PlayerViewOffset.X=WeaponPos.X+FRand()*ChargeSize*7; PlayerViewOffset.Y=WeaponPos.Y+FRand()*ChargeSize*7; PlayerViewOffset.Z=WeaponPos.Z+FRand()*ChargeSize*7;} ChargeSize+=DeltaTime; if((pawn(Owner).bAltFire==0))GoToState('ShootLoad'); Count+=DeltaTime; if(Count>0.3){ Count=0; If(!AmmoType.UseAmmo(1))GoToState('ShootLoad'); AmmoType.GoToState('Idle2');}} Function EndState(){ PlayerviewOffset=WeaponPos; if(cl1!=None)cl1.Destroy(); if(cl2!=None)cl2.Destroy();} function BeginState(){ WeaponPos=PlayerviewOffset; ChargeSize=0;} Begin: if(AmmoType.UseAmmo(1)){ Owner.Playsound(Misc1Sound,SLOT_Misc,Pawn(Owner).SoundDampening*4); Count=0; Sleep(2+0.6*PowerLevel); GoToState('ShootLoad');} else GotoState('Idle');} state ShootLoad{ function Fire(float F){} function AltFire(float F){} function BeginState(){ local AuraD d; local Vector Start,X,Y,Z; local float M; if(Amp!=None)M=Amp.UseCharge(0); else M=1; Owner.PlaySound(AltFireSound,SLOT_Misc,1.8*Pawn(Owner).SoundDampening); if(PlayerPawn(Owner)!=None) PlayerPawn(Owner).ShakeView(ShakeTime,ShakeMag*ChargeSize,ShakeVert); if(PowerLevel==0)PlayAnim('Shoot1',0.2,0.05); else if(PowerLevel==1)PlayAnim('Shoot2',0.2,0.05); else if(PowerLevel==2)PlayAnim('Shoot3',0.2,0.05); else if(PowerLevel==3)PlayAnim('Shoot4',0.2,0.05); else if(PowerLevel==4)PlayAnim('Shoot5',0.2,0.05); else if(PowerLevel==5)PlayAnim('Shoot1',0.2,0.05); else if(PowerLevel==6)PlayAnim('Shoot2',0.2,0.05); else if(PowerLevel==7)PlayAnim('Shoot3',0.2,0.05); else if(PowerLevel==8)PlayAnim('Shoot4',0.2,0.05); else if(PowerLevel==9)PlayAnim('Shoot5',0.2,0.05); else if(PowerLevel==10)PlayAnim('Shoot1',0.2,0.05); else if(PowerLevel==11)PlayAnim('Shoot2',0.2,0.05); else if(PowerLevel==12)PlayAnim('Shoot3',0.2,0.05); else if(PowerLevel==13)PlayAnim('Shoot4',0.2,0.05); else if(PowerLevel==14)PlayAnim('Shoot5',0.2,0.05); Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation,X,Y,Z); Start=Owner.Location+CalcDrawOffset()+FireOffset.X*X+FireOffset.Y*Y+FireOffset.Z*Z; AdjustedAim=pawn(owner).AdjustAim(AltProjectileSpeed,Start,AimError,True,True); d=AuraD(Spawn(AltProjectileClass,,,Start,AdjustedAim)); if(d!=None){ d.bAltFire=True; d.DrawScale=0.5+ChargeSize*0.6; d.InitSplash(d.DrawScale*M*1.1);}} Begin: FinishAnim(); Finish();} function PlayIdleAnim(){ if(PowerLevel==0)LoopAnim('Idle1',0.04,0.2); else if(PowerLevel==1)LoopAnim('Idle2',0.04,0.2); else if(PowerLevel==2)LoopAnim('Idle3',0.04,0.2); else if(PowerLevel==3)LoopAnim('Idle4',0.04,0.2); else if(PowerLevel==4)LoopAnim('Idle5',0.04,0.2); else if(PowerLevel==5)LoopAnim('Idle1',0.04,0.2); else if(PowerLevel==6)LoopAnim('Idle2',0.04,0.2); else if(PowerLevel==7)LoopAnim('Idle3',0.04,0.2); else if(PowerLevel==8)LoopAnim('Idle4',0.04,0.2); else if(PowerLevel==9)LoopAnim('Idle5',0.04,0.2); else if(PowerLevel==10)LoopAnim('Idle1',0.04,0.2); else if(PowerLevel==11)LoopAnim('Idle2',0.04,0.2); else if(PowerLevel==12)LoopAnim('Idle3',0.04,0.2); else if(PowerLevel==13)LoopAnim('Idle4',0.04,0.2); else if(PowerLevel==14)LoopAnim('Idle5',0.04,0.2);} state PowerUp{ ignores fire,altfire; function BringUp(){ bWeaponUp=false; PlaySelect(); GotoState('Powerup','Raising');} function bool PutDown(){ bChangeWeapon=true; return True;} function BeginState(){ bChangeWeapon=false;} Raising: FinishAnim(); PowerLevel++; Begin: if(PowerLevel<15){ AmmoType.MaxAmmo+=10; AmmoType.AddAmmo(10); if(PowerLevel<15) Owner.PlaySound(PowerUpSound,SLOT_None,Pawn(Owner).SoundDampening); if(PowerLevel==1) PlayAnim('PowerUp1',0.1,0.05); else if(PowerLevel==2) PlayAnim('PowerUp2',0.1,0.05); else if(PowerLevel==3) PlayAnim('PowerUp3',0.1,0.05); else if(PowerLevel==4) PlayAnim('PowerUp4',0.1,0.05); else if(PowerLevel==5) PlayAnim('Idle1',0.1,0.05); else if(PowerLevel==6) PlayAnim('PowerUp1',0.1,0.05); else if(PowerLevel==7) PlayAnim('PowerUp2',0.1,0.05); else if(PowerLevel==8) PlayAnim('PowerUp3',0.1,0.05); else if(PowerLevel==9) PlayAnim('PowerUp4',0.1,0.05); else if(PowerLevel==10) PlayAnim('Idle1',0.1,0.05); else if(PowerLevel==11) PlayAnim('PowerUp1',0.1,0.05); else if(PowerLevel==12) PlayAnim('PowerUp2',0.1,0.05); else if(PowerLevel==13) PlayAnim('PowerUp3',0.1,0.05); else if(PowerLevel==14) PlayAnim('PowerUp4',0.1,0.05); FinishAnim(); if(bChangeWeapon) GotoState('DownWeapon'); Finish();} Waiting:} function TweenDown(){ if(GetAnimGroup(AnimSequence)=='Select') TweenAnim(AnimSequence,AnimFrame*0.4);else{ if(PowerLevel==0)PlayAnim('Down1',1,0.05); else if(PowerLevel==1)PlayAnim('Down2',5,0.05); else if(PowerLevel==2)PlayAnim('Down3',5,0.05); else if(PowerLevel==3)PlayAnim('Down4',5,0.05); else if(PowerLevel==4)PlayAnim('Down5',5,0.05); else if(PowerLevel==5)PlayAnim('Down1',5,0.05); else if(PowerLevel==6)PlayAnim('Down2',5,0.05); else if(PowerLevel==7)PlayAnim('Down3',5,0.05); else if(PowerLevel==8)PlayAnim('Down4',5,0.05); else if(PowerLevel==9)PlayAnim('Down5',5,0.05); else if(PowerLevel==10)PlayAnim('Down1',5,0.05); else if(PowerLevel==11)PlayAnim('Down2',5,0.05); else if(PowerLevel==12)PlayAnim('Down3',5,0.05); else if(PowerLevel==13)PlayAnim('Down4',5,0.05); else if(PowerLevel==14)PlayAnim('Down5',5,0.05);}} function TweenSelect(){ TweenAnim('Select1',1);} function PlaySelect(){ Owner.PlaySound(SelectSound,SLOT_None,Pawn(Owner).SoundDampening); if(PowerLevel==0)PlayAnim('Select1',0.5,0); else if(PowerLevel==1)PlayAnim('Select2',0.5,0); else if(PowerLevel==2)PlayAnim('Select3',0.5,0); else if(PowerLevel==3)PlayAnim('Select4',0.5,0); else if(PowerLevel==4)PlayAnim('Select5',0.5,0); else if(PowerLevel==5)PlayAnim('Select1',0.5,0); else if(PowerLevel==6)PlayAnim('Select2',0.5,0); else if(PowerLevel==7)PlayAnim('Select3',0.5,0); else if(PowerLevel==8)PlayAnim('Select4',0.5,0); else if(PowerLevel==9)PlayAnim('Select5',0.5,0); else if(PowerLevel==10)PlayAnim('Select1',0.5,0); else if(PowerLevel==11)PlayAnim('Select2',0.5,0); else if(PowerLevel==12)PlayAnim('Select3',0.5,0); else if(PowerLevel==13)PlayAnim('Select4',0.5,0); else if(PowerLevel==14)PlayAnim('Select5',0.5,0);} defaultproperties { AmmoName=Class'BTE.CB' PickupAmmoCount=9999 bAltWarnTarget=True FireOffset=(X=12.000000,Y=-8.000000,Z=-15.000000) ProjectileClass=Class'BTE.AuraD' AltProjectileClass=Class'BTE.AuraD' shakemag=0.000000 shaketime=0.000000 shakevert=0.000000 RefireRate=0.850000 AltRefireRate=0.300000 FireSound=Sound'UnrealShare.Dispersion.DispShot' AltFireSound=Sound'UnrealShare.Dispersion.DispShot' SelectSound=Sound'UnrealShare.Dispersion.DispPickup' Misc1Sound=Sound'UnrealShare.Dispersion.PowerUp3' DeathMessage="%o seems to have found out that %k has an updated %w." PickupMessage="You got AuraPistol" ItemName="AuraPistol" PlayerViewOffset=(X=3.800000,Y=-2.000000,Z=-2.000000) PlayerViewMesh=LodMesh'UnrealShare.DPistol' PickupViewMesh=LodMesh'UnrealShare.DPistolPick' ThirdPersonMesh=LodMesh'UnrealShare.DPistol3rd' PickupSound=Sound'UnrealShare.Pickups.WeaponPickup' Texture=WetTexture'UnrealShare.Belt_fx.Damagewet' Skin=FireTexture'UnrealShare.Belt_fx.Damage.Damage' Mesh=LodMesh'UnrealShare.DPistolPick' bNoSmooth=False bMeshEnviroMap=True CollisionRadius=28.000000 CollisionHeight=8.000000 Mass=150.000000 }