73 lines
1.9 KiB
Haskell
73 lines
1.9 KiB
Haskell
module Dodge.Default.Weapon
|
|
where
|
|
import Dodge.Data
|
|
import Dodge.Item.Weapon.ExtraEffect
|
|
import Dodge.Item.Weapon.InventoryDisplay
|
|
import Dodge.Item.Attachment.Data
|
|
import Dodge.Item.Data
|
|
import Picture
|
|
import ShapePicture
|
|
|
|
import Linear.V3
|
|
defaultGun :: Item
|
|
defaultGun = Weapon
|
|
{ _itName = "default"
|
|
, _itIdentity = Pistol
|
|
, _wpMaxAmmo = 15
|
|
, _wpLoadedAmmo = 15
|
|
, _wpAmmo = GenericAmmo
|
|
, _wpReloadTime = 40
|
|
, _wpReloadState = 0
|
|
, _wpReloadType = ActiveReload
|
|
, _wpMaxWarmUp = 0
|
|
, _wpCurWarmUp = 0
|
|
, _wpMaxCoolDown = 0
|
|
, _wpCurCoolDown = 0
|
|
, _itUseRate = 8
|
|
, _itUseTime = 0
|
|
, _itUse = \_ _ -> id
|
|
, _itUseModifiers = []
|
|
, _itLeftClickUse = Nothing
|
|
, _wpSpread = 0.02
|
|
, _wpRange = 20
|
|
, _itHammer = HammerUp
|
|
, _itFloorPict = const emptyBlank
|
|
, _itAimingSpeed = 1
|
|
, _itAimingRange = 0
|
|
, _itZoom = ItZoom 20 0.2 1
|
|
, _itAimZoom = ItZoom 20 0.2 1
|
|
, _itEquipPict = \_ _ -> emptyBlank
|
|
, _itScroll = \_ _ -> id
|
|
, _itAttachment = NoItAttachment
|
|
, _itID = Nothing
|
|
, _itEffect = wpRecock
|
|
, _itInvDisplay = basicWeaponDisplay
|
|
, _itInvColor = white
|
|
, _itTargeting = Nothing
|
|
, _itWorldTrigger = Nothing
|
|
, _itAimStance = OneHand
|
|
, _wpNumBarrels = 1
|
|
, _itDimension = defaultItemDimension
|
|
}
|
|
defaultItemDimension :: ItemDimension
|
|
defaultItemDimension = ItemDimension
|
|
{ _itDim = V3 4 4 4
|
|
, _itHandle = V3 2 2 2
|
|
, _itCenter = V3 2 2 2
|
|
, _muzzleLength = 5 -- how much the item projects out from the cr radius when aiming
|
|
}
|
|
|
|
defaultAutoGun :: Item
|
|
defaultAutoGun = defaultGun
|
|
{ _itInvDisplay = basicWeaponDisplay
|
|
, _itAimStance = TwoHandTwist
|
|
}
|
|
defaultShellAmmo :: Ammo
|
|
defaultShellAmmo = ShellAmmo
|
|
{ _amPayload = const id
|
|
, _amString = "Shell"
|
|
, _amPjParams = []
|
|
, _amPjDraw = const mempty
|
|
, _amParamSel = 0
|
|
}
|