77 lines
1.5 KiB
Haskell
77 lines
1.5 KiB
Haskell
module Dodge.Item.Ammo (
|
|
drumMag,
|
|
tinMag,
|
|
beltMag,
|
|
shellMag,
|
|
battery,
|
|
smallBattery,
|
|
chemFuelPouch,
|
|
bulletSynthesizer,
|
|
megaShellMag,
|
|
megaTinMag,
|
|
megaBattery,
|
|
) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Data.World
|
|
import Dodge.Default.Item
|
|
import Dodge.Item.Attach
|
|
|
|
--import Dodge.Item.Weapon.Bullet
|
|
|
|
megaTinMag :: Int -> Item
|
|
megaTinMag x =
|
|
tinMag
|
|
& itConsumables ?~ x
|
|
|
|
tinMag :: Item
|
|
tinMag =
|
|
defaultHeldItem & itType .~ AMMOMAG TINMAG
|
|
& itUse .~ UseNothing
|
|
& itConsumables ?~ 15
|
|
|
|
drumMag :: Item
|
|
drumMag =
|
|
tinMag & itType . ibtAmmoMag .~ DRUMMAG
|
|
& itConsumables ?~ 30
|
|
|
|
beltMag :: Item
|
|
beltMag =
|
|
tinMag & itType . ibtAmmoMag .~ BELTMAG
|
|
& itConsumables ?~ 10000
|
|
|
|
megaShellMag :: Item
|
|
megaShellMag =
|
|
shellMag
|
|
& itConsumables ?~ 1000000
|
|
|
|
shellMag :: Item
|
|
shellMag =
|
|
defaultHeldItem & itType .~ AMMOMAG SHELLMAG
|
|
& itUse .~ UseNothing
|
|
& itConsumables ?~ 1
|
|
|
|
megaBattery :: Item
|
|
megaBattery =
|
|
battery
|
|
& itConsumables ?~ 1000000
|
|
|
|
smallBattery :: Item
|
|
smallBattery = battery & itConsumables ?~ 999
|
|
|
|
battery :: Item
|
|
battery =
|
|
defaultHeldItem & itType .~ AMMOMAG BATTERY
|
|
& itUse .~ UseNothing
|
|
& itConsumables ?~ 10 ^ (9 :: Int)
|
|
|
|
chemFuelPouch :: Item
|
|
chemFuelPouch =
|
|
defaultHeldItem & itType .~ AMMOMAG CHEMFUELPOUCH
|
|
& itUse .~ UseNothing
|
|
& itConsumables
|
|
?~ 100000
|
|
|
|
bulletSynthesizer :: Item
|
|
bulletSynthesizer = makeAttach BULLETSYNTH & itUse .~ UseAttach (APInt 0)
|