Add generic item placement rooms

This commit is contained in:
2022-03-03 22:13:15 +00:00
parent fd622b4b80
commit 2a3c001a53
8 changed files with 64 additions and 56 deletions
+5
View File
@@ -1,5 +1,6 @@
module Dodge.Item.Weapon.BatteryGuns
( lasGun
, sparkGun
, teslaGun
, tractorGun
, lasRayAt
@@ -31,6 +32,10 @@ import LensHelp
import System.Random
--import Data.Tuple
import qualified Data.IntMap.Strict as IM
sparkGun :: Item
sparkGun = teslaGun
& itName .~ "SPARKGUN"
& itType .~ SPARKGUN
teslaGun :: Item
teslaGun = defaultGun
{ _itName = "TESLA"
+4 -6
View File
@@ -80,10 +80,7 @@ bangCane = defaultGun
, _dimSPic = \it -> noPic $ baseCaneShape
<> makeSingleClipAt (V3 5 0 3) it
}
} & itUse . useAim . aimSpeed .~ 0.4
& itUse . useAim . aimRange .~ 1
& itUse . useAim . aimStance .~ OneHand
& itUse . useAim . aimZoom .~ defaultItZoom {_itZoomFac = 1.5}
} & itUse . useAim . aimStance .~ OneHand
bangCaneX :: Int -> Item
bangCaneX i = bangCane
{ _itName = "BANGCANEx"++show i
@@ -133,7 +130,6 @@ caneClipX i it = case it ^? itConsumption . ammoLoaded of
. (\k -> fromIntegral k * 5 - ((fromIntegral i - 1) * 2.5)))
[0..la-1]
_ -> mempty
rifle :: Item
rifle = bangCane
{ _itDimension = ItemDimension
@@ -151,7 +147,9 @@ rifle = bangCane
& itName .~ "RIFLE"
& itType .~ RIFLE
& itConsumption . ammoBaseMax .~ 1
& itUse . useAim . aimSpeed .~ 0.4
& itUse . useAim . aimRange .~ 1
& itUse . useAim . aimZoom .~ defaultItZoom {_itZoomFac = 1.5}
repeater :: Item
repeater = rifle
& itModules . at ModRifleMag ?~ DefaultModule
+7 -23
View File
@@ -92,32 +92,16 @@ flameWall :: Item
flameWall = flameThrower
& itName .~ "FLAMEWALL"
& itType .~ FLAMEWALL
& itParams . sprayNozzles .~
[ Nozzle
{ _nzPressure = 2.5
, _nzDir = 0
, _nzMaxWalkAngle = 0.2
, _nzWalkSpeed = 0.01
& itParams . sprayNozzles .~ zipWith makeNozzle [0,0.6,-0.6] [2,2.5,2.5]
where
makeNozzle dir pres = Nozzle
{ _nzPressure = pres
, _nzDir = dir
, _nzMaxWalkAngle = 0
, _nzWalkSpeed = 0
, _nzCurrentWalkAngle = 0
, _nzLength = 20
}
, Nozzle
{ _nzPressure = 3
, _nzDir = 0.5
, _nzMaxWalkAngle = 0.2
, _nzWalkSpeed = 0.01
, _nzCurrentWalkAngle = 0
, _nzLength = 20
}
, Nozzle
{ _nzPressure = 3
, _nzDir = -0.5
, _nzMaxWalkAngle = 0.2
, _nzWalkSpeed = 0.01
, _nzCurrentWalkAngle = 0
, _nzLength = 20
}
]
flameThrower :: Item
flameThrower = defaultAutoGun