Move toward data-ifying item SPics

This commit is contained in:
2022-07-11 11:32:25 +01:00
parent 3447b9b0bb
commit 33d94bd05a
23 changed files with 332 additions and 331 deletions
+1
View File
@@ -17,6 +17,7 @@ import qualified Data.IntMap.Strict as IM
import Control.Lens
import Data.Maybe
itemEquipPict :: Creature -> Item -> SPic
itemEquipPict cr it = case it ^?! itUse of
RightUse {} -> pictureWeaponOnAim cr it
+105
View File
@@ -0,0 +1,105 @@
module Dodge.Item.Draw.SPic where
itemSPic :: Item -> SPic
itemSPic it = modulesSPic it <> case it ^. itType . iyBase of
HELD ht -> heldItemSPic ht it
_ -> mempty
-- NOTDEFINED ->
-- EFFGUN _ ->
-- AUTOEFFGUN _ ->
--
--
-- BOOSTER
-- REWINDER
-- BLINKER
-- BLINKERUNSAFE
-- FORCEFIELDGUN
-- SHRINKER
-- SPAWNER
--
-- CLICKDETECTOR Detector
-- AUTODETECTOR Detector
-- MAGSHIELD
-- FLAMESHIELD
-- FRONTARMOUR
-- WRISTARMOUR
-- INVISIBILITYEQUIPMENT EquipSite
-- BRAINHAT
-- HEADLAMP
-- HEADLAMP1
-- POWERLEGS
-- SPEEDLEGS
-- JUMPLEGS
-- FLATSHIELD
-- JETPACK
--
-- KEYCARD Int
--
-- MEDKIT Int
-- CRAFT CraftType
heldItemSPic ht it = case ht of
BANGSTICK i -> noPic & baseStickShapeX i <> stickClip it
-- PISTOL ->
-- REVOLVER ->
-- REVOLVERX i ->
-- MACHINEPISTOL ->
-- AUTOPISTOL ->
-- SMG ->
-- BANGCONE ->
-- BLUNDERBUSS ->
-- GRAPECANNON i ->
-- MINIGUNX i ->
-- VOLLEYGUN i ->
-- RIFLE ->
-- REPEATER ->
-- AUTORIFLE ->
-- BURSTRIFLE ->
-- BANGROD ->
-- ELEPHANTGUN ->
-- AMR ->
-- AUTOAMR ->
-- SNIPERRIFLE ->
-- MACHINEGUN ->
-- FLAMESPITTER ->
-- FLAMETHROWER ->
-- FLAMETORRENT ->
-- FLAMEWALL ->
-- BLOWTORCH ->
-- AUTOGUN ->
-- SPARKGUN ->
-- TESLAGUN ->
-- LASGUN ->
-- LASCIRCLE ->
-- DUALBEAM ->
-- LASWIDE i ->
-- SONICGUN ->
-- TRACTORGUN ->
-- LAUNCHER ->
-- LAUNCHERX i ->
-- REMOTELAUNCHER ->
-- POISONSPRAYER ->
-- DRONELAUNCHER ->
-- SHATTERGUN ->
modulesSPic :: Item -> SPic
modulesSPic it = mempty
baseStickShapeX :: Int -> Shape
baseStickShapeX i = foldMap f [0..i-1]
where
f j = rotateSH ang baseStickShape
where
ang = fromIntegral j * baseStickSpread - (fromIntegral i - 1) * baseStickSpread * 0.5
baseStickSpread :: Float
baseStickSpread = 0.2
stickClip :: Item -> Shape
stickClip it = case it ^? itConsumption . laLoaded of
Just x | x > 0 -> foldMap f [0..x-1]
_ -> mempty
where
f i = rotateSH ang $ translateSH (V3 5 0 3) $ upperPrismPoly 2 $ square 1.5
where
ang = baseStickSpread * fromIntegral i
- 0.5 * baseStickSpread * fromIntegral (_brlNum (_gunBarrels (_itParams it))-1)
+44 -45
View File
@@ -5,9 +5,9 @@ module Dodge.Item.Weapon.BatteryGuns
, lasWide
-- , lasWidePulse
--, lasSway
, lasSwing
-- , lasSwing
--, lasFocus
, lasPulse
-- , lasPulse
, sparkGun
, teslaGun
, teslaParams
@@ -70,7 +70,7 @@ defaultAutoBatteryGun = defaultAutoGun
sparkGun :: Item
sparkGun = teslaGun
& itType . iyBase .~ SPARKGUN
& itType . iyBase .~ HELD SPARKGUN
& itParams . arcSize .~ 10
teslaGun :: Item
teslaGun = defaultBatteryGun
@@ -96,7 +96,7 @@ teslaGun = defaultBatteryGun
& itUse . useAim . aimStance .~ TwoHandFlat
& itUse . useAim . aimHandlePos .~ 4
& itUse . useAim . aimMuzPos .~ 4
& itType . iyBase .~ TESLAGUN
& itType . iyBase .~ HELD TESLAGUN
teslaGunPic :: Item -> SPic
teslaGunPic _ = noPic $ colorSH blue $
upperPrismPoly 5 (rectNESW xb 8 xa 0)
@@ -104,27 +104,27 @@ teslaGunPic _ = noPic $ colorSH blue $
where
xa = 1
xb = 9
lasPulse :: Item
lasPulse = lasGun
& itType . iyBase .~ LASPULSE
& itUse . useMods .~
[ ammoCheckI
, withItem $ \it -> withTempLight 1 (100 * frac it) (xyzV4 (_lasColor $ _itParams it))
, withItem $ \it -> withSoundForVol (frac it) tone440sawtoothquietS 2
, withItemUpdate itup
$ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) (frac it * 0.8)
, useAmmoAmount 1
]
where
itup it = it
& itParams . lasCycle %~ (\i -> (i+1) `mod` 20)
& itParams . lasDamage .~ ceiling ((22 :: Float) * frac it)
& itParams . lasColor .~ frac it * orange
frac it = 0.5 * (1 + sin (pi * fromIntegral (_lasCycle $ _itParams it) * 0.1))
--lasPulse :: Item
--lasPulse = lasGun
-- & itType . iyBase .~ LASPULSE
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 (100 * frac it) (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withSoundForVol (frac it) tone440sawtoothquietS 2
-- , withItemUpdate itup
-- $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) (frac it * 0.8)
-- , useAmmoAmount 1
-- ]
-- where
-- itup it = it
-- & itParams . lasCycle %~ (\i -> (i+1) `mod` 20)
-- & itParams . lasDamage .~ ceiling ((22 :: Float) * frac it)
-- & itParams . lasColor .~ frac it * orange
-- frac it = 0.5 * (1 + sin (pi * fromIntegral (_lasCycle $ _itParams it) * 0.1))
lasCircle :: Item
lasCircle = lasGun
& itType . iyBase .~ LASCIRCLE
& itType . iyBase .~ HELD LASCIRCLE
& itParams . lasColor .~ orange
& itParams . lasDamage .~ 2
& itConsumption . laMax .~ 10000
@@ -150,7 +150,7 @@ lasCircle = lasGun
lasWide :: Int -> Item
lasWide n = lasGun
& itType . iyBase .~ LASWIDE n
& itType . iyBase .~ HELD (LASWIDE n)
& itParams . lasColor .~ yellow
& itParams . lasDamage .~ 2
& itUse . useMods .~
@@ -238,7 +238,7 @@ lasWide n = lasGun
dualBeam :: Item
dualBeam = lasGun
& itType . iyBase .~ DUALBEAM
& itType . iyBase .~ HELD DUALBEAM
& itUse . useAim . aimMuzPos .~ 0
& itDimension .dimSPic .~ dualBeamPic
& itParams .~ DualBeam
@@ -266,24 +266,24 @@ dualBeam = lasGun
& itType . iyModules . at ModDualBeam ?~ EMPTYMODULE
where
thegap = _dbGap . _itParams
lasSwing :: Item
lasSwing = lasGun
& itType . iyBase .~ LASGUNSWING
& itParams . lasColor .~ orange
& itUse . useMods .~
[ ammoCheckI
, withItem $ \it -> withTempLight 1 100 (xyzV4 (_lasColor $ _itParams it))
, withItem $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) 0.8
, withSoundForI tone440sawtoothquietS 2
, useAmmoAmount 1
, withItemUpdate itup $ \it -> duplicateOffsetsFocus (x it)
]
where
itup = itParams . lasCycle %~ (\i -> (i+1) `mod` 200)
x it = [-y,y]
where
y = 15 * sin (pi * fromIntegral x' * 0.01)
x' = _lasCycle $ _itParams it
--lasSwing :: Item
--lasSwing = lasGun
-- & itType . iyBase .~ LASGUNSWING
-- & itParams . lasColor .~ orange
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 100 (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) 0.8
-- , withSoundForI tone440sawtoothquietS 2
-- , useAmmoAmount 1
-- , withItemUpdate itup $ \it -> duplicateOffsetsFocus (x it)
-- ]
-- where
-- itup = itParams . lasCycle %~ (\i -> (i+1) `mod` 200)
-- x it = [-y,y]
-- where
-- y = 15 * sin (pi * fromIntegral x' * 0.01)
-- x' = _lasCycle $ _itParams it
lasGun :: Item
lasGun = defaultAutoBatteryGun
& itConsumption .~ ( defaultLoadable
@@ -321,7 +321,7 @@ lasGun = defaultAutoBatteryGun
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimHandlePos .~ 5
& itUse . useAim . aimMuzPos .~ 30
& itType . iyBase .~ LASGUN
& itType . iyBase .~ HELD LASGUN
lasGunPic :: Item -> SPic
lasGunPic it =
@@ -392,7 +392,7 @@ tractorGun = lasGun
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimHandlePos .~ 5
& itUse . useAim . aimMuzPos .~ 30
& itType . iyBase .~ TRACTORGUN
& itType . iyBase .~ HELD TRACTORGUN
tractorGunTweak :: TweakParam
tractorGunTweak = TweakParam
@@ -437,7 +437,6 @@ shootTeslaArc it cr w = w'
shootLaser :: Item -> Creature -> World -> World
shootLaser it cr = instantParticles .:~ lasRayAt (_lasColor $ _itParams it) dam phasev pos dir
where
--pos = _crPos cr +.+ aimingMuzzlePos cr it *.* unitVectorAtAngle dir
pos = _crPos cr
dir = _crDir cr
phasev = _phaseV . _itParams $ _crInv cr IM.! crSel cr
+6 -6
View File
@@ -115,7 +115,7 @@ volleyGun i = defaultBulletWeapon
,_brlInaccuracy = 0.1
}
& itParams . torqueAfter .~ 0.48 + 0.2 * fromIntegral i
& itType . iyBase .~ VOLLEYGUN i
& itType . iyBase .~ HELD (VOLLEYGUN i)
caneStickSoundChoice :: Item -> SoundID
caneStickSoundChoice it
| _laLoaded (_itConsumption it) < 2 = tap3S
@@ -137,7 +137,7 @@ rifle = defaultBangCane
}
}
& itUse . useAim . aimStance .~ TwoHandTwist
& itType . iyBase .~ RIFLE
& itType . iyBase .~ HELD RIFLE
& itConsumption . laMax .~ 1
& itConsumption . laCycle .~ [loadEject 5, loadInsert 5 ,loadPrime 5]
& itUse . useAim . aimWeight .~ 6
@@ -147,7 +147,7 @@ rifle = defaultBangCane
repeater :: Item
repeater = rifle
& itType . iyModules . at ModRifleMag ?~ EMPTYMODULE
& itType . iyBase .~ REPEATER
& itType . iyBase .~ HELD REPEATER
& itConsumption . laCycle .~ [loadEject 50, loadInsert 40 ,loadPrime 20]
& itConsumption . laMax .~ 15
& itDimension . dimSPic .~ (\it -> noPic $ baseRifleShape
@@ -162,13 +162,13 @@ baseRifleShape = colorSH red $ upperPrismPoly 3 $ rectXH 25 2
autoRifle :: Item
autoRifle = repeater
& itType . iyBase .~ AUTORIFLE
& itType . iyBase .~ HELD AUTORIFLE
& itUse . useMods %~ ((ammoCheckI :) . tail)
& itType . iyModules . at ModAutoMag ?~ EMPTYMODULE
-- & itUse . useDelay . rateMax .~ 6
burstRifle :: Item
burstRifle = repeater
& itType . iyBase .~ BURSTRIFLE
& itType . iyBase .~ HELD BURSTRIFLE
& itParams . gunBarrels . brlInaccuracy .~ 0.05
& itUse . useDelay . rateMax .~ 18
& itUse . useMods .~
@@ -282,7 +282,7 @@ miniGunX i = defaultAutoGun
, _dimSPic = miniGunXPictItem i
}
}
& itType . iyBase .~ MINIGUNX i
& itType . iyBase .~ HELD (MINIGUNX i)
& itUse . useAim . aimMuzPos .~ 40
miniGunXPictItem :: Int -> Item -> SPic
miniGunXPictItem i it = miniGunXPict i spin (_laLoaded $ _itConsumption it)
+6 -6
View File
@@ -65,7 +65,7 @@ bangRod = defaultBulletWeapon
}
& itConsumption . laMax .~ 1
& itConsumption . laCycle .~ [loadEject 5, loadInsert 10 , loadPrime 5]
& itType . iyBase .~ BANGROD
& itType . iyBase .~ HELD BANGROD
& itUse . useAim . aimWeight .~ 8
& itUse . useAim . aimRange .~ 1
& itUse . useAim . aimStance .~ OneHand
@@ -79,7 +79,7 @@ baseAMRShape :: Shape
baseAMRShape = colorSH orange $ upperPrismPoly 3 $ rectXH 30 2
elephantGun :: Item
elephantGun = bangRod
& itType . iyBase .~ ELEPHANTGUN
& itType . iyBase .~ HELD ELEPHANTGUN
& itUse . useAim . aimStance .~ TwoHandTwist
& itParams . gunBarrels .~ SingleBarrel 0.05
& itDimension . dimSPic .~ (\it -> noPic $ baseAMRShape
@@ -100,7 +100,7 @@ elephantGun = bangRod
& itParams . torqueAfter .~ 0.1
amr :: Item
amr = elephantGun
& itType . iyBase .~ AMR
& itType . iyBase .~ HELD AMR
& itConsumption . laMax .~ 15
& itDimension . dimSPic .~ (\it -> noPic $ baseAMRShape
<> makeTinClipAt 0 (V3 10 (-2) 0) it
@@ -108,12 +108,12 @@ amr = elephantGun
autoAmr :: Item
autoAmr = amr
& itType . iyBase .~ AUTOAMR
& itType . iyBase .~ HELD AUTOAMR
& itUse . useMods %~ ((ammoCheckI :) . tail)
sniperRifle :: Item
sniperRifle = elephantGun
& itType . iyBase .~ SNIPERRIFLE
& itType . iyBase .~ HELD SNIPERRIFLE
& itParams . gunBarrels .~ SingleBarrel 0
& itUse . useAim . aimZoom .~ defaultItZoom {_itZoomMax = 0.5, _itZoomMin = 0.5}
& itUse . heldScroll .~ zoomLongGun
@@ -122,7 +122,7 @@ sniperRifle = elephantGun
& itUse . useAim . aimZoom .~ defaultItZoom {_itZoomFac = 1}
machineGun :: Item
machineGun = bangRod
& itType . iyBase .~ MACHINEGUN
& itType . iyBase .~ HELD MACHINEGUN
& itUse . useDelay . rateMax .~ 25
& itUse . useMods .~
[ ammoCheckI
+7 -7
View File
@@ -75,7 +75,7 @@ bangStick i = defaultBulletWeapon
<> stickClip it
}
}
& itType . iyBase .~ BANGSTICK i
& itType . iyBase .~ HELD (BANGSTICK i)
& itUse . useAim . aimHandlePos .~ 5
& itUse . useAim . aimMuzPos .~ 10
& itConsumption . laMax .~ i
@@ -111,7 +111,7 @@ revolver = pistol
& laMax .~ 6
& laCycle .~ [loadPartialInsert 10 1] )
& itDimension . dimSPic .~ (\it -> noPic $ baseStickShape <> revolverClip it)
& itType . iyBase .~ REVOLVER
& itType . iyBase .~ HELD REVOLVER
revolverClip :: Item -> Shape
revolverClip it = case it ^? itConsumption . laLoaded of
@@ -170,23 +170,23 @@ pistol = bangStick 1
. ( recoil .~ 10 )
. ( torqueAfter .~ 0.2 )
)
& itType . iyBase .~ PISTOL
& itType . iyBase .~ HELD PISTOL
autoPistol :: Item
autoPistol = pistol
& itUse . useMods .~ (ammoCheckI : pistolAfterHamMods)
& itType . iyBase .~ AUTOPISTOL
& itType . iyBase .~ HELD AUTOPISTOL
& itType . iyModules . at ModAutoMag ?~ EMPTYMODULE
machinePistol :: Item
machinePistol = autoPistol
& itUse . useDelay . rateMax .~ 2
& itUse . useMods .~ (ammoCheckI : machinePistolAfterHamMods)
& itType . iyBase .~ MACHINEPISTOL
& itType . iyBase .~ HELD MACHINEPISTOL
& itType . iyModules . at ModAutoMag .~ Nothing
& itParams . recoil .~ 20
smg :: Item
smg = autoPistol -- & some parameter affecting stability
& itUse . useMods .~ (ammoCheckI : smgAfterHamMods)
& itType . iyBase .~ SMG
& itType . iyBase .~ HELD SMG
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimHandlePos .~ 2
& itParams . torqueAfter .~ 0.05
@@ -211,4 +211,4 @@ revolverX i = revolver
, withRecoil
]
& itConsumption . laMax .~ i * 6
& itType . iyBase .~ REVOLVERX i
& itType . iyBase .~ HELD (REVOLVERX i)
+4 -4
View File
@@ -78,7 +78,7 @@ autoGun = defaultAutoGun
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimZoom .~ defaultItZoom {_itZoomFac = 1.5}
& itUse . heldScroll .~ scrollCharMode
& itType . iyBase .~ AUTOGUN
& itType . iyBase .~ HELD AUTOGUN
autoGunPic :: Item -> SPic
autoGunPic it = noPic $
colorSH red (prismPoly
@@ -125,7 +125,7 @@ bangCone = defaultBulletWeapon
]
& itUse . useAim . aimHandlePos .~ 5
& itUse . useAim . aimMuzPos .~ 15
& itType . iyBase .~ BANGCONE
& itType . iyBase .~ HELD BANGCONE
& itConsumption . laMax .~ 5
& itConsumption . laCycle .~ [loadEject 5, loadInsert 20 , loadPrime 5]
coneRandItemUpdate :: State StdGen (Item -> Item)
@@ -156,10 +156,10 @@ blunderbuss = bangCone
& itUse . useAim . aimWeight .~ 6
& itUse . useAim . aimHandlePos .~ 5
& itUse . useAim . aimMuzPos .~ 30
& itType . iyBase .~ BLUNDERBUSS
& itType . iyBase .~ HELD BLUNDERBUSS
grapeCannon :: Int -> Item
grapeCannon i = blunderbuss
& itType . iyBase .~ GRAPECANNON i
& itType . iyBase .~ HELD (GRAPECANNON i)
& itConsumption . laMax .~ 25 + 25 * i
& itConsumption . laCycle .~ [loadEject 5, loadInsert (30 + i * 10) , loadPrime 5]
& itParams . recoil .~ (150 + fromIntegral i * 50)
+1 -1
View File
@@ -33,7 +33,7 @@ droneLauncher = defaultWeapon
& itUse . useAim . aimStance .~ TwoHandTwist
& itConsumption . laAmmoType .~ DroneAmmo { _amString = "LASDRONE" }
& itConsumption . laMax .~ 2
& itType . iyBase .~ DRONELAUNCHER
& itType . iyBase .~ HELD DRONELAUNCHER
lasDronesPic :: Item -> SPic
lasDronesPic _ =
+3 -3
View File
@@ -77,12 +77,12 @@ launcher = defaultWeapon
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimHandlePos .~ 5
& itUse . useAim . aimMuzPos .~ 20
& itType . iyBase .~ LAUNCHER
& itType . iyBase .~ HELD LAUNCHER
& itType . iyModules . at ModLauncherHoming ?~ EMPTYMODULE
launcherX :: Int -> Item
launcherX i = launcher
& itType . iyBase .~ LAUNCHERX i
& itType . iyBase .~ HELD (LAUNCHERX i)
& itConsumption . laMax .~ i
& itConsumption . laLoaded .~ i
& itUse . rUse .~ usePjCreationX i
@@ -278,7 +278,7 @@ trySpinByCID cid i pj w = w & props . ix pjid . pjSpin .~ newSpin
remoteLauncher :: Item
remoteLauncher = launcher
& itType . iyBase .~ REMOTELAUNCHER
& itType . iyBase .~ HELD REMOTELAUNCHER
& itUse . rUse .~ fireRemoteShell
& itScope .~ RemoteScope (V2 0 0) 1 True
& itConsumption . laAmmoType . amPjDraw .~ drawRemoteShell
+1 -1
View File
@@ -28,7 +28,7 @@ import LensHelp
shatterGun :: Item
shatterGun = defaultWeapon
& itType . iyBase .~ SHATTERGUN
& itType . iyBase .~ HELD SHATTERGUN
& itUse . useDelay . rateMax .~ 10
& itUse . rUse .~ shootShatter
& itUse . useMods .~
+1 -1
View File
@@ -53,7 +53,7 @@ sonicGun = defaultAutoGun
& itUse . useAim . aimRange .~ 1
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimMuzPos .~ 25
& itType . iyBase .~ SONICGUN
& itType . iyBase .~ HELD SONICGUN
baseSonicShape :: Shape
baseSonicShape = colorSH rose $ upperPrismPoly 3 $ rectXH 25 2
+6 -6
View File
@@ -40,7 +40,7 @@ import Control.Monad.State
import System.Random
poisonSprayer :: Item
poisonSprayer = flameThrower
& itType . iyBase .~ POISONSPRAYER
& itType . iyBase .~ HELD POISONSPRAYER
& itConsumption . laAmmoType .~ GasAmmo
{ _amString = "POISONGAS"
, _amCreateGas = aGasCloud
@@ -67,7 +67,7 @@ flamerPic it =
am = fractionLoadedAmmo2 it
flameSpitter :: Item
flameSpitter = flameThrower
& itType . iyBase .~ FLAMESPITTER
& itType . iyBase .~ HELD FLAMESPITTER
& itConsumption . laMax .~ 10
& itConsumption . laCycle .~ [loadEject 5, loadInsert 10 , loadPrime 20]
& itParams . sprayNozzles . ix 0 . nzPressure .~ 4
@@ -90,7 +90,7 @@ flameSpitter = flameThrower
flameTorrent :: Item
flameTorrent = flameThrower
& itType . iyBase .~ FLAMETORRENT
& itType . iyBase .~ HELD FLAMETORRENT
& itUse . useAim . aimZoom .~ defaultItZoom
& itParams . sprayNozzles . ix 0 %~
( (nzPressure .~ 10)
@@ -100,10 +100,10 @@ flameTorrent = flameThrower
blowTorch :: Item
blowTorch = flameThrower
& itType . iyBase .~ BLOWTORCH
& itType . iyBase .~ HELD BLOWTORCH
flameWall :: Item
flameWall = flameThrower
& itType . iyBase .~ FLAMEWALL
& itType . iyBase .~ HELD FLAMEWALL
& itParams . sprayNozzles .~ zipWith makeNozzle [0,0.6,-0.6] [2,2.5,2.5]
where
makeNozzle dir pres = Nozzle
@@ -157,7 +157,7 @@ flameThrower = defaultAutoGun
& itUse . useAim . aimStance .~ TwoHandTwist
& itUse . useAim . aimHandlePos .~ 0
& itUse . useAim . aimMuzPos .~ 18
& itType . iyBase .~ FLAMETHROWER
& itType . iyBase .~ HELD FLAMETHROWER
aGasCloud :: Float -> Point2 -> Float -> Creature -> World -> World
aGasCloud pressure pos dir cr = makeGasCloud pos
+1 -1
View File
@@ -124,7 +124,7 @@ forceFieldGun = defaultWeapon
& itUse . useDelay .~ NoDelay
& itUse . useMods .~
[ hammerCheckI , ammoCheckI , useAmmoAmount 1]
& itType . iyBase .~ FORCEFIELDGUN
& itType . iyBase .~ HELD FORCEFIELDGUN
-- I believe because the targeting returns to nothing straight after you release
-- the rmb, it is possible for this to do nothing
-- TODO investigate more and fix