class NiceBoomStick extends NiceWeapon; #EXEC OBJ LOAD FILE=KillingFloorHUD.utx var float glueTiming; var float firstShellTiming, secondShellTiming, jumpTiming; var const string firstShellStr, secondShellStr, jumpStr; simulated function PostBeginPlay(){ local EventRecord record; local AutoReloadAnimDesc reloadDesc; // Setup animation timings autoReloadsDescriptions.Length = 0; reloadDesc.canInterruptFrame = 0.056; reloadDesc.trashStartFrame = secondShellTiming; reloadDesc.resumeFrame = 0.056; reloadDesc.speedFrame = 0.056; // Setup all possible fire animations reloadDesc.animName = 'Fire_Both'; autoReloadsDescriptions[0] = reloadDesc; reloadDesc.animName = 'Fire_Both_Iron'; autoReloadsDescriptions[1] = reloadDesc; reloadDesc.animName = 'Fire_Last'; autoReloadsDescriptions[2] = reloadDesc; reloadDesc.animName = 'Fire_Last_Iron'; autoReloadsDescriptions[3] = reloadDesc; // Setup reload events record.eventName = jumpStr; record.eventFrame = jumpTiming; relEvents[relEvents.Length] = record; record.eventName = firstShellStr; record.eventFrame = firstShellTiming; relEvents[relEvents.Length] = record; record.eventName = secondShellStr; record.eventFrame = secondShellTiming; relEvents[relEvents.Length] = record; super.PostBeginPlay(); } simulated function ReloadEvent(string eventName){ if(eventName ~= jumpStr && GetMagazineAmmo() > 0) SetAnimFrame(glueTiming); if(eventName ~= firstShellStr) MagAmmoRemainingClient = Min(1, AmmoAmount(0)); else if(eventName ~= secondShellStr) MagAmmoRemainingClient = Min(2, AmmoAmount(0)); ServerSetMagSize(MagAmmoRemainingClient, bRoundInChamber, Level.TimeSeconds); } simulated function AddAutoReloadedAmmo(){ MagAmmoRemainingClient = Min(2, AmmoAmount(0)); ServerSetMagSize(MagAmmoRemainingClient, bRoundInChamber, Level.TimeSeconds); } simulated function bool AltFireCanForceInterruptReload(){ return (GetMagazineAmmo() > 0); } defaultproperties { glueTiming=0.633330 firstShellTiming=0.555550 secondShellTiming=0.733330 jumpTiming=0.388880 firstShellStr="firstShell" secondShellStr="secondShellStr" jumpStr="jumpStr" bChangeClipIcon=True hudClipTexture=Texture'KillingFloorHUD.HUD.Hud_Single_Bullet' reloadType=RTYPE_AUTO ForceZoomOutOnFireTime=0.010000 ForceZoomOutOnAltFireTime=0.010000 MagCapacity=2 Weight=6.000000 ReloadRate=2.250000 ReloadAnim="Reload" ReloadAnimRate=1.100000 bHoldToReload=True WeaponReloadAnim="Reload_HuntingShotgun" bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=55.000000 TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_Hunting_Shotgun' bIsTier2Weapon=True MeshRef="KF_Weapons_Trip.BoomStick_Trip" SkinRefs(0)="KF_Weapons_Trip_T.Shotguns.boomstick_cmb" SelectSoundRef="KF_DoubleSGSnd.2Barrel_Select" HudImageRef="KillingFloorHUD.WeaponSelect.BoomStic_unselected" SelectedHudImageRef="KillingFloorHUD.WeaponSelect.BoomStick" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=class'NiceBoomStickAltFire' FireModeClass(1)=class'NiceBoomStickFire' PutDownAnim="PutDown" AIRating=0.900000 CurrentRating=0.900000 bSniping=False Description="A double barreled shotgun used by big game hunters. It fires two slugs simultaneously and can bring down even the largest targets, quickly." DisplayFOV=55.000000 Priority=160 InventoryGroup=4 GroupOffset=2 PickupClass=class'NiceBoomStickPickup' PlayerViewOffset=(X=8.000000,Y=14.000000,Z=-8.000000) BobDamping=6.000000 AttachmentClass=class'NiceBoomStickAttachment' ItemName="Hunting Shotgun" bUseDynamicLights=True TransientSoundVolume=1.000000 }