UnrealI
Class RazorJack

source: e:\games\UnrealTournament\UnrealI\Classes\Razorjack.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Inventory
         |
         +--Engine.Weapon
            |
            +--UnrealI.RazorJack
Direct Known Subclasses:None

class RazorJack
extends Engine.Weapon

//============================================================================= // razorjack //=============================================================================
States
AltFiring

Function Summary
 void AltFire(float Value)
 void PlayAltFiring()
 void PlayFiring()
 void PlayIdleAnim()
     
///////////////////////////////////////////////////////////


State AltFiring Function Summary



Source Code


00001	//=============================================================================
00002	// razorjack
00003	//=============================================================================
00004	class RazorJack extends Weapon;
00005	
00006	#exec MESH IMPORT MESH=Razor ANIVFILE=MODELS\razor_a.3D DATAFILE=MODELS\razor_d.3D X=0 Y=0 Z=0
00007	#exec MESH ORIGIN MESH=Razor X=0 Y=0 Z=0 YAW=-64 ROLL=-8
00008	#exec MESH SEQUENCE MESH=razor SEQ=All     STARTFRAME=0   NUMFRAMES=100
00009	#exec MESH SEQUENCE MESH=razor SEQ=Select  STARTFRAME=0   NUMFRAMES=30  RATE=24 GROUP=Select
00010	#exec MESH SEQUENCE MESH=razor SEQ=Fire    STARTFRAME=30  NUMFRAMES=10
00011	#exec MESH SEQUENCE MESH=razor SEQ=Load    STARTFRAME=36  NUMFRAMES=4
00012	#exec MESH SEQUENCE MESH=razor SEQ=Idle    STARTFRAME=40  NUMFRAMES=31
00013	#exec MESH SEQUENCE MESH=razor SEQ=AltFire1 STARTFRAME=71  NUMFRAMES=12 RATE=24
00014	#exec MESH SEQUENCE MESH=razor SEQ=AltFire2 STARTFRAME=83  NUMFRAMES=5 RATE=24
00015	#exec MESH SEQUENCE MESH=razor SEQ=AltFire3 STARTFRAME=88  NUMFRAMES=4 RATE=24
00016	#exec MESH SEQUENCE MESH=razor SEQ=Down    STARTFRAME=92  NUMFRAMES=8
00017	
00018	#exec TEXTURE IMPORT NAME=JRazor1 FILE=MODELS\razor.PCX GROUP=Skins
00019	#exec MESHMAP SCALE MESHMAP=razor X=0.005 Y=0.005 Z=0.01
00020	#exec MESHMAP SETTEXTURE MESHMAP=razor NUM=1 TEXTURE=Jrazor1
00021	
00022	#exec MESH IMPORT MESH=RazPick ANIVFILE=MODELS\rapick_a.3D DATAFILE=MODELS\rapick_d.3D X=0 Y=0 Z=0
00023	#exec MESH ORIGIN MESH=RazPick X=0 Y=0 Z=0 YAW=-64 ROLL=-8
00024	#exec MESH SEQUENCE MESH=RazPick SEQ=All    STARTFRAME=0   NUMFRAMES=1
00025	#exec MESH SEQUENCE MESH=RazPick SEQ=Still  STARTFRAME=0   NUMFRAMES=1
00026	#exec TEXTURE IMPORT NAME=JRazor1 FILE=MODELS\razor.PCX GROUP=Skins
00027	#exec MESHMAP SCALE MESHMAP=RazPick X=0.025 Y=0.025 Z=0.05
00028	#exec MESHMAP SETTEXTURE MESHMAP=RazPick NUM=1 TEXTURE=Jrazor1
00029	
00030	#exec MESH IMPORT MESH=Razor3rd ANIVFILE=MODELS\Razor3_a.3D DATAFILE=MODELS\Razor3_d.3D X=0 Y=0 Z=0
00031	#exec MESH ORIGIN MESH=Razor3rd X=0 Y=-180 Z=-95 YAW=-64 ROLL=6
00032	#exec MESH SEQUENCE MESH=Razor3rd SEQ=All  STARTFRAME=0  NUMFRAMES=20
00033	#exec MESH SEQUENCE MESH=Razor3rd SEQ=Still  STARTFRAME=0  NUMFRAMES=1
00034	#exec MESH SEQUENCE MESH=Razor3rd SEQ=Fire  STARTFRAME=1  NUMFRAMES=9
00035	#exec MESH SEQUENCE MESH=Razor3rd SEQ=AltFire2  STARTFRAME=1  NUMFRAMES=9
00036	#exec MESH SEQUENCE MESH=Razor3rd SEQ=Idle  STARTFRAME=10  NUMFRAMES=10
00037	#exec TEXTURE IMPORT NAME=Jrazor1 FILE=MODELS\razor.PCX GROUP="Skins"
00038	#exec MESHMAP SCALE MESHMAP=Razor3rd X=0.035 Y=0.035 Z=0.06
00039	#exec MESHMAP SETTEXTURE MESHMAP=Razor3rd NUM=1 TEXTURE=JRazor1
00040	
00041	#exec AUDIO IMPORT FILE="Sounds\Razor\beam.WAV" NAME="beam" GROUP="RazorJack"
00042	
00043	function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
00044	{
00045		local Vector Start, X,Y,Z;
00046	
00047		if ( PlayerPawn(Owner) != None )
00048			PlayerPawn(Owner).ClientInstantFlash( -0.4, vect(500, 0, 650));
00049		Owner.MakeNoise(Pawn(Owner).SoundDampening);
00050		GetAxes(Pawn(owner).ViewRotation,X,Y,Z);
00051		Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Z * Z; 
00052		AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn);	
00053		return Spawn(ProjClass,,, Start,AdjustedAim);	
00054	}
00055	
00056	function PlayFiring()
00057	{
00058		PlayAnim( 'Fire', 0.7,0.05 );
00059	}
00060	
00061	function PlayAltFiring()
00062	{
00063		PlayAnim('AltFire1', 0.9,0.05);
00064	}
00065	
00066	function AltFire( float Value )
00067	{
00068		if (AmmoType.UseAmmo(1))
00069		{
00070			if ( Owner.bHidden )
00071				CheckVisibility();
00072			bPointing=True;
00073			PlayAltFiring();
00074			GotoState('AltFiring');
00075		}
00076	}
00077		
00078	///////////////////////////////////////////////////////////
00079	state AltFiring
00080	{
00081		function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
00082		{
00083			local Vector Start, X,Y,Z;		
00084	
00085			Owner.MakeNoise(Pawn(Owner).SoundDampening);
00086			GetAxes(Pawn(owner).ViewRotation,X,Y,Z);
00087			Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; 
00088			AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn);	
00089			AdjustedAim.Roll += 12768;		
00090			RazorBlade(Spawn(ProjClass,,, Start,AdjustedAim));
00091		}
00092	
00093	Begin:
00094		FinishAnim();
00095	Repeater:
00096		ProjectileFire(AltProjectileClass,AltProjectileSpeed,bAltWarnTarget);
00097		PlayAnim('AltFire2', 0.4,0.05);
00098		FinishAnim();
00099		if ( PlayerPawn(Owner) == None )
00100		{
00101			if ( (AmmoType != None) && (AmmoType.AmmoAmount<=0) )
00102			{
00103				Pawn(Owner).StopFiring();
00104				Pawn(Owner).SwitchToBestWeapon();
00105				if ( bChangeWeapon )
00106					GotoState('DownWeapon');
00107			}
00108			else if ( (Pawn(Owner).bAltFire == 0) || (FRand() > AltRefireRate) )
00109			{
00110				Pawn(Owner).StopFiring();
00111				GotoState('Idle');
00112			}
00113		}
00114		if ( (Pawn(Owner).bAltFire!=0) 
00115			&& (Pawn(Owner).Weapon==Self) && AmmoType.UseAmmo(1))
00116		{
00117			goto 'Repeater';
00118		}	
00119		PlayAnim('AltFire3', 0.9,0.05);
00120		FinishAnim();
00121		PlayAnim('Load',0.2,0.05);	
00122		FinishAnim();	
00123		if ( Pawn(Owner).bFire!=0 && Pawn(Owner).Weapon==Self) 
00124			Global.Fire(0);
00125		else 
00126			GotoState('Idle');
00127	}
00128	
00129	///////////////////////////////////////////////////////////
00130	function PlayIdleAnim()
00131	{
00132		LoopAnim('Idle', 0.4);
00133	}
00134	
00135	defaultproperties
00136	{
00137	     AmmoName=Class'UnrealI.RazorAmmo'
00138	     PickupAmmoCount=15
00139	     FireOffset=(X=16.000000,Z=-15.000000)
00140	     ProjectileClass=Class'UnrealI.RazorBlade'
00141	     AltProjectileClass=Class'UnrealI.RazorBladeAlt'
00142	     shakemag=120.000000
00143	     AIRating=0.500000
00144	     RefireRate=0.830000
00145	     AltRefireRate=0.830000
00146	     SelectSound=Sound'UnrealI.Razorjack.beam'
00147	     DeathMessage="%k took a bloody chunk out of %o with the %w."
00148	     AutoSwitchPriority=7
00149	     InventoryGroup=7
00150	     PickupMessage="You got the RazorJack"
00151	     ItemName="Razorjack"
00152	     PlayerViewOffset=(X=2.000000,Z=-0.900000)
00153	     PlayerViewMesh=LodMesh'UnrealI.Razor'
00154	     BobDamping=0.970000
00155	     PickupViewMesh=LodMesh'UnrealI.RazPick'
00156	     ThirdPersonMesh=LodMesh'UnrealI.Razor3rd'
00157	     PickupSound=Sound'UnrealShare.Pickups.WeaponPickup'
00158	     Mesh=LodMesh'UnrealI.RazPick'
00159	     bNoSmooth=False
00160	     CollisionRadius=28.000000
00161	     CollisionHeight=7.000000
00162	     Mass=17.000000
00163	}

End Source Code