## XIII
Class Bazook

source: C:\XIII\XIII\Classes\Bazook.uc

    Core.Object
       |
       +--Engine.Actor
          |
          +--Engine.Inventory
             |
             +--Engine.Weapon
                |
                +--XIII.XIIIWeapon
                   |
                   +--XIII.Bazook

Direct Known Subclasses:None

class Bazook
extends XIII.XIIIWeapon

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

States
Idle

Function Summary
`string` | `GetAmmoText(out int)`
    //_____________________________________________________________________________
    // ELR Text to be displayed in HUD
`bool` | `HasAltAmmo()`
    //_____________________________________________________________________________

State Idle Function Summary
`float` | `RateSelf()`
    //_____________________________________________________________________________
    // FRD

Source Code

    00001	//-----------------------------------------------------------
    00002	//
    00003	//-----------------------------------------------------------
    00004	class Bazook extends XIIIWeapon;
    00005
    00006	//_____________________________________________________________________________
    00007	simulated function bool HasAltAmmo()
    00008	{ // because we can stun only if we have ammo (bAllowEmptyShot=false, must down weapon after last fire)
    00009	    return HasAmmo();
    00010	}
    00011
    00012	//_____________________________________________________________________________
    00013	// ELR Text to be displayed in HUD
    00014	simulated function string GetAmmoText(out int bDrawbulletIcon)
    00015	{
    00016	    local string AmmoText,AltAmmoText;
    00017
    00018	    bDrawbulletIcon = 1;
    00019
    00020	    // Setup ammotext
    00021	    AmmoText = string(Ammotype.AmmoAmount);
    00022	    return AmmoText;
    00023	}
    00024
    00025	//_____________________________________________________________________________
    00026	state Idle
    00027	{
    00028	    simulated function ForceReload()
    00029	    { // ELR check here that we have enough ammo to reload
    00030
    00031	      Log("  ForceReload Call in Idle");
    00032	      if ( ReLoadCount == 0 )
    00033	      {
    00034	        ServerForceReload();
    00035	        if ( HasAmmo() )
    00036	          GotoState('Reloading');
    00037	      }
    00038	    }
    00039	}
    00040
    00041	//_____________________________________________________________________________
    00042	simulated function PlayIdleAnim()
    00043	{
    00044	    if ( ReLoadCount > 0 )
    00045	    {
    00046	      if ( bHaveBoredSfx && Pawn(Owner).IsPlayerPawn() && (iBoredCount > BOREDSFXTHRESHOLD) )
    00047	      {
    00048	        iBoredCount = 0;
    00049	        if ( Instigator.IsLocallyControlled() || (Level.NetMode == NM_StandAlone) )
    00050	          Instigator.PlayRolloffSound(hActWaitSound, self, 0, int(Pawn(Owner).IsPlayerPawn()), 0 );
    00051	        PlayAnim('WaitAct', 1.0, 0.3);
    00052	      }
    00053	      else
    00054	        PlayAnim('Wait', 1.0, 0.3);
    00055	    }
    00056	    else
    00057	    {
    00058	      if ( bHaveBoredSfx && Pawn(Owner).IsPlayerPawn() && (iBoredCount > BOREDSFXTHRESHOLD) )
    00059	      {
    00060	        iBoredCount = 0;
    00061	        if ( Instigator.IsLocallyControlled() || (Level.NetMode == NM_StandAlone) )
    00062	          Instigator.PlayRolloffSound(hActWaitSound, self, 0, int(Pawn(Owner).IsPlayerPawn()), 0 );
    00063	        PlayAnim('WaitActVide', 1.0, 0.3);
    00064	      }
    00065	      else
    00066	        PlayAnim('WaitVide', 1.0, 0.3);
    00067	    }
    00068	}
    00069
    00070	//_____________________________________________________________________________
    00071	simulated function TweenDown()
    00072	{
    00073	    if ( ReLoadCount > 0 )
    00074	      PlayAnim('Down', 1.1);
    00075	    else
    00076	      PlayAnim('DownVide', 1.0);
    00077	}
    00078
    00079	//_____________________________________________________________________________
    00080	simulated function PlaySelect()
    00081	{
    00082	    if (ReLoadCount > 0)
    00083	      PlayAnim('Select', 1.0);
    00084	    else
    00085	      PlayAnim('SelectVide', 1.0);
    00086	    if ( Instigator.IsLocallyControlled() || (Level.NetMode == NM_StandAlone) )
    00087	      Instigator.PlayRolloffSound(hSelectWeaponSound, self, 0, int(Pawn(Owner).IsPlayerPawn()) );
    00088	}
    00089
    00090	//_____________________________________________________________________________
    00091	// FRD
    00092	function float RateSelf()
    00093	{
    00094	    local float distance;
    00095
    00096	    if ( !HasAmmo() )
    00097	      return -2;
    00098	    if (instigator.controller.enemy!=none)
    00099	    {
    00100	      distance=Vsize(instigator.controller.enemy.location-instigator.location);
    00101	      if (distance<733)
    00102	        return 0.26;
    00103	    }
    00104	    return AIRating;
    00105	}
    00106
    00107	//    Icon=texture'XIIIMenu.BazookaIcon'
    00108
    00109	defaultproperties
    00110	{
    00111	     WeaponOnoClass=Class'XIDSpec.BazookWeaponOno'
    00112	     bHaveAltFire=True
    00113	     bAllowEmptyShot=False
    00114	     bAutoReload=True
    00115	     bHeavyWeapon=True
    00116	     bHaveBoredSfx=True
    00117	     WHand=WHA_2HShot
    00118	     WeaponMode=WM_SemiAuto
    00119	     AmmoName=Class'XIII.BazookAmmo'
    00120	     AltAmmoName=Class'XIII.BazookRocketAltAmmo'
    00121	     PickupAmmoCount=1
    00122	     ReloadCount=1
    00123	     MeshName="XIIIArmes.FpsBazookaM"
    00124	     FireOffset=(X=9.000000,Y=15.000000,Z=1.000000)
    00125	     AltFireOffset=(X=7.000000,Y=-1.000000,Z=-6.000000)
    00126	     CrossHair=Texture'XIIIMenu.HUD.MireBazooka'
    00127	     ShotTime=1.000000
    00128	     FiringMode="FM_Bazook"
    00129	     FireNoise=0.787000
    00130	     ReLoadNoise=0.000000
    00131	     AltFireNoise=0.000000
    00132	     LoadedFiringAnim="Firevide"
    00133	     EmptyFiringAnim="firevide_b"
    00134	     LoadedAltFiringAnim="FireAlt"
    00135	     ViewFeedBack=(X=5.000000,Y=12.000000)
    00136	     RumbleFXNum=13
    00137	     ShakeMag=900.000000
    00138	     shaketime=7.000000
    00139	     ShakeVert=(X=5.000000,Y=10.000000,Z=-25.000000)
    00140	     ShakeCycles=2.000000
    00141	     AIRating=0.800000
    00142	     TraceDist=150.000000
    00143	     hFireSound=Sound'XIIIsound.Guns__BazFire.BazFire__hBazFire'
    00144	     hReloadSound=Sound'XIIIsound.Guns__BazRel.BazRel__hBazRel'
    00145	     hNoAmmoSound=Sound'XIIIsound.Guns__BazDryFire.BazDryFire__hBazDry'
    00146	     hSelectWeaponSound=Sound'XIIIsound.Guns__BazSelWp.BazSelWp__hBazSelWp'
    00147	     hAltFireSound=Sound'XIIIsound.Guns__BazFireAlt.BazFireAlt__hBazFireAlt'
    00148	     hActWaitSound=Sound'XIIIsound.Guns__BazWait.BazWait__hBazWait'
    00149	     InventoryGroup=15
    00150	     PickupClassName="XIII.BazookPick"
    00151	     PlayerViewOffset=(X=3.000000,Y=7.000000,Z=-4.500000)
    00152	     ThirdPersonRelativeLocation=(X=11.000000,Y=-3.000000,Z=7.000000)
    00153	     AttachmentClass=Class'XIII.BazookAttach'
    00154	     ItemName="Bazooka"
    00155	     DrawScale=0.300000
    00156	}

End Source Code