XIII
Class Kalash

source: C:\XIII\XIII\Classes\kalash.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Inventory
         |
         +--Engine.Weapon
            |
            +--XIII.XIIIWeapon
               |
               +--XIII.Kalash
Direct Known Subclasses:None

class Kalash
extends XIII.XIIIWeapon

//----------------------------------------------------------- // //-----------------------------------------------------------

Function Summary
 
simulated
AltFire(float Value)
     
//_____________________________________________________________________________
 void CauseAltFire()
     
//_____________________________________________________________________________
 string GetAmmoText(out int)
     
//_____________________________________________________________________________
// ELR Text to be displayed in HUD
 Name GetBaseWeaponBone()
     
//_____________________________________________________________________________
 bool HasAltAmmo()
     
//_____________________________________________________________________________
 float RateSelf()
     
//_____________________________________________________________________________
// FRD
 
simulated
RumbleFX()
     
//_____________________________________________________________________________
 void ServerAltFire()
     
//_____________________________________________________________________________
 
simulated
UnFire(float Value)
     
//_____________________________________________________________________________



Source Code


00001	//-----------------------------------------------------------
00002	//
00003	//-----------------------------------------------------------
00004	class Kalash extends XIIIWeapon;
00005	
00006	//_____________________________________________________________________________
00007	simulated function bool HasAltAmmo()
00008	{
00009	    return false;
00010	}
00011	
00012	//_____________________________________________________________________________
00013	function CauseAltFire()
00014	{
00015	    Global.AltFire(0);
00016	}
00017	
00018	//_____________________________________________________________________________
00019	simulated function AltFire( float Value )
00020	{
00021	    if ( Level.NetMode == NM_Client )
00022	    {
00023	      if ( WeaponMode == WM_Auto )
00024	      {
00025	        TraceAccuracy = default.TraceAccuracy / 2.0;
00026	        WeaponMode = WM_Burst;
00027	      }
00028	      else if ( WeaponMode == WM_Burst )
00029	      {
00030	        TraceAccuracy = default.TraceAccuracy;
00031	        WeaponMode = WM_Auto;
00032	      }
00033	    }
00034	    if ( Instigator.IsLocallyControlled() || (Level.NetMode == NM_StandAlone) )
00035	      Instigator.PlayRolloffSound(hAltFireSound, self);
00036	    ServerAltFire();
00037	}
00038	
00039	//_____________________________________________________________________________
00040	function ServerAltFire()
00041	{
00042	    if ( WeaponMode == WM_Auto )
00043	    {
00044	      TraceAccuracy = default.TraceAccuracy / 2.0;
00045	      WeaponMode = WM_Burst;
00046	    }
00047	    else if ( WeaponMode == WM_Burst )
00048	    {
00049	      TraceAccuracy = default.TraceAccuracy;
00050	      WeaponMode = WM_Auto;
00051	    }
00052	}
00053	
00054	//_____________________________________________________________________________
00055	simulated function UnFire( float Value )
00056	{
00057	    iBurstCount = 0;
00058	}
00059	
00060	//_____________________________________________________________________________
00061	// ELR Text to be displayed in HUD
00062	simulated function string GetAmmoText(out int bDrawbulletIcon)
00063	{
00064	    local string AmmoText,AltAmmoText;
00065	
00066	    bDrawbulletIcon = 1;
00067	
00068	    // Setup ammotext
00069	    AmmoText = ReLoadCount@"|"@(Ammotype.AmmoAmount-ReLoadCount);
00070	    Switch(WeaponMode)
00071	    {
00072	      Case WM_Auto:
00073	        AmmoText = Ammotext@"("$sWeaponModeAuto$")";
00074	        break;
00075	      Case WM_Burst:
00076	        AmmoText = Ammotext@"("$sWeaponModeBurst$")";
00077	        break;
00078	      Case WM_SemiAuto:
00079	        AmmoText = Ammotext@"("$sWeaponModeSemiAuto$")";
00080	        break;
00081	    }
00082	    return AmmoText;
00083	}
00084	
00085	//_____________________________________________________________________________
00086	simulated function Name GetBaseWeaponBone()
00087	{
00088	    return 'Kalach'; // Graphists have strange habits for naming bones :)
00089	}
00090	
00091	//_____________________________________________________________________________
00092	simulated function RumbleFX()
00093	{
00094	    if( XIIIPlayerController(Instigator.Controller) == none )
00095	        return;
00096	
00097	    if ( (Instigator != none) && Instigator.IsHumanControlled() && Instigator.IsLocallyControlled() )
00098	    {
00099	      if ( ReloadCount%1 == 0 )
00100	        XIIIPlayerController(Instigator.Controller).RumbleFX(RumbleFXNum);
00101	      else
00102	        XIIIPlayerController(Instigator.Controller).RumbleFX(RumbleFXNum+1);
00103	    }
00104	}
00105	
00106	//_____________________________________________________________________________
00107	// FRD
00108	function float RateSelf()
00109	{
00110	    local float distance;
00111	
00112	    if ( !HasAmmo() )
00113	      return -2;
00114	    return AIRating;
00115	}
00116	
00117	//    Icon=texture'XIIIMenu.KalashIcon'
00118	
00119	
00120	defaultproperties
00121	{
00122	     bSpecialAltFire=True
00123	     WeaponOnoClass=Class'XIDSpec.M16WeaponOno'
00124	     bRapidFire=True
00125	     bHaveAltFire=True
00126	     bHaveBoredSfx=True
00127	     bDrawMuzzleFlash=True
00128	     WHand=WHA_2HShot
00129	     AmmoName=Class'XIII.KalashAmmo'
00130	     PickupAmmoCount=30
00131	     ReloadCount=30
00132	     MeshName="XIIIArmes.FpsKalashM"
00133	     FireOffset=(X=12.000000,Y=5.000000,Z=-4.000000)
00134	     CrossHair=Texture'XIIIMenu.HUD.MireKalash'
00135	     TraceAccuracy=9.000000
00136	     FiringMode="FM_M16"
00137	     ViewFeedBack=(X=3.200000,Y=3.200000)
00138	     RumbleFXNum=8
00139	     FirstPersonMFClass=Class'XIII.KalachFPMF'
00140	     FPMFRelativeLoc=(Y=39.000000,Z=4.000000)
00141	     ShakeMag=200.000000
00142	     ShakeVert=(Y=5.000000,Z=10.000000)
00143	     ShakeSpeed=(Y=500.000000,Z=-500.000000)
00144	     ShakeCycles=2.000000
00145	     AIRating=0.650000
00146	     TraceDist=240.000000
00147	     hFireSound=Sound'XIIIsound.Guns__KalFire.KalFire__hKalFire'
00148	     hReloadSound=Sound'XIIIsound.Guns__KalRel.KalRel__hKalRel'
00149	     hNoAmmoSound=Sound'XIIIsound.Guns__KalDryFire.KalDryFire__hKalDry'
00150	     hSelectWeaponSound=Sound'XIIIsound.Guns__KalSelWp.KalSelWp__hKalSelWp'
00151	     hAltFireSound=Sound'XIIIsound.Interface.SwitchFireType1'
00152	     hActWaitSound=Sound'XIIIsound.Guns__KalashWait.KalashWait__hKalWait'
00153	     MuzzleScale=2.250000
00154	     FlashOffsetY=0.175000
00155	     FlashOffsetX=0.190000
00156	     InventoryGroup=12
00157	     PickupClassName="XIII.kalashpick"
00158	     PlayerViewOffset=(X=5.000000,Y=8.000000,Z=-6.500000)
00159	     ThirdPersonRelativeLocation=(X=18.000000,Y=-3.500000,Z=9.000000)
00160	     ThirdPersonRelativeRotation=(Pitch=7000)
00161	     AttachmentClass=Class'XIII.KalashAttach'
00162	     ItemName="KALASH"
00163	     DrawScale=0.300000
00164	}

End Source Code