Move equipType out of record

This commit is contained in:
2025-06-05 13:52:36 +01:00
parent 1293aa0fdf
commit c8d44fea79
14 changed files with 123 additions and 164 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ data EquipEffect = EquipEffect
{ _eeUse :: Euse --Item -> Creature -> World -> World
, _eeOnEquip :: ItmCrWdWd --Item -> Creature -> World -> World
, _eeOnRemove :: ItmCrWdWd --Item -> Creature -> World -> World
, _eeType :: EquipType
-- , _eeType :: EquipType
, _eeParams :: EquipParams
, _eeViewDist :: Maybe Float
, _eeAttachPos :: Point3
-19
View File
@@ -1,17 +1,12 @@
module Dodge.Default.Item (
defaultHeldItem,
-- singleAmmo,
defaultBulletWeapon,
-- defaultLeftItem,
defaultCraftItem,
module Dodge.Default.Item.Use,
) where
import Control.Lens
--import qualified Data.IntMap.Strict as IM
import Dodge.Data.Item
import Dodge.Default.Item.Use
--import Geometry.Data
defaultHeldItem :: Item
defaultHeldItem =
@@ -21,7 +16,6 @@ defaultHeldItem =
, _itEffect = defaultItEffect
, _itID = 0 -- should this return an error ? const $ error "itID not correctly initialised" ?
, _itTargeting = NoItTargeting
-- , _itAmmoSlots = mempty
, _itLocation = InVoid
, _itUse = UseHeld
, _itParams = NoParams
@@ -30,22 +24,9 @@ defaultHeldItem =
, _itTimeLastUsed = 0
}
--defaultLeftItem :: Item
--defaultLeftItem = defaultHeldItem & itUse .~ defaultLeftUse
defaultCraftItem :: Item
defaultCraftItem = defaultHeldItem & itUse .~ UseNothing
--singleAmmo :: a -> IM.IntMap a
--singleAmmo x = IM.insert 0 x mempty
defaultBulletWeapon :: Item
defaultBulletWeapon =
defaultHeldItem
-- & itAmmoSlots .~ singleAmmo BulletAmmo
-- & itUse . heldMuzzles .~
-- [Muzzle (V2 15 0) 0 0.01 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0]
defaultItEffect :: ItEffect
defaultItEffect =
ItEffect
+2 -2
View File
@@ -6,8 +6,8 @@ import Dodge.Data.Item.Use.Equipment
defaultEquip :: EquipEffect
defaultEquip =
EquipEffect
{ _eeType = GoesOnHead
, _eeUse = EDoNothing
{ --_eeType = GoesOnHead
_eeUse = EDoNothing
, _eeOnEquip = ItmCrWdWdDoNothing
, _eeOnRemove = ItmCrWdWdDoNothing
, _eeParams = NoEquipParams
+3 -2
View File
@@ -4,6 +4,7 @@ module Dodge.Inventory.RBList (
eqSiteToPositions,
) where
import Dodge.Data.EquipType
import Control.Applicative
import Control.Lens
import Data.List (elemIndex, findIndex)
@@ -19,7 +20,7 @@ updateRBList w = case w ^. rbOptions of
EquipOptions{} -> w
_ -> fromMaybe (w & rbOptions .~ NoRightButtonOptions) $ do
i <- cr ^? crManipulation . manObject . imSelectedItem
esite <- cr ^? crInv . ix i . itUse . uequipEffect . eeType
esite <- cr ^? crInv . ix i >>= equipType -- . itUse . uequipEffect . eeType
return $
w & rbOptions
.~ EquipOptions
@@ -44,7 +45,7 @@ chooseFreeSite cr = fromMaybe 0 . findIndex hasnoequipment
getEquipmentAllocation :: Int -> World -> EquipmentAllocation
getEquipmentAllocation invid w = fromMaybe DoNotMoveEquipment $ do
esite <- you w ^? crInv . ix invid . itUse . uequipEffect . eeType
esite <- you w ^? crInv . ix invid >>= equipType-- . itUse . uequipEffect . eeType
i <-
w ^? rbOptions . opSel
<|> Just (chooseEquipPosition (you w) (eqSiteToPositions esite))
+10 -14
View File
@@ -28,25 +28,24 @@ magShield :: Item
magShield =
defaultEquipment
& itUse . uequipEffect . eeUse .~ EMagShield MagnetRepulse
& itUse . uequipEffect . eeType .~ GoesOnWrist
& itType .~ EQUIP MAGSHIELD
flameShield :: Item
flameShield =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnChest
-- & itUse . uequipEffect . eeType .~ GoesOnChest
& itType .~ EQUIP FLAMESHIELD
frontArmour :: Item
frontArmour =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnChest
-- & itUse . uequipEffect . eeType .~ GoesOnChest
& itType .~ EQUIP FRONTARMOUR
wristArmour :: Item
wristArmour =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnWrist
-- & itUse . uequipEffect . eeType .~ GoesOnWrist
& itUse . uequipEffect . eeOnEquip .~ EonWristShield
& itUse . uequipEffect . eeUse .~ EWristShield
& itUse . uequipEffect . eeOnRemove .~ EoffWristShield
@@ -55,7 +54,7 @@ wristArmour =
batteryPack :: Item
batteryPack =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnBack
-- & itUse . uequipEffect . eeType .~ GoesOnBack
& itUse . uequipEffect . eeAttachPos .~ V3 (-8) 0 10
& itUse . uequipEffect . eeUse .~ EDoNothing
& itConsumables
@@ -73,7 +72,7 @@ batteryPack =
fuelPack :: Item
fuelPack =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnBack
-- & itUse . uequipEffect . eeType .~ GoesOnBack
& itUse . uequipEffect . eeAttachPos .~ V3 (-9) 0 10
-- & itUse . uequipEffect . eeUse .~ EFuelSource 10000 10000
& itType .~ EQUIP FUELPACK
@@ -91,7 +90,7 @@ fuelPack =
bulletBeltPack :: Item
bulletBeltPack =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnBack
-- & itUse . uequipEffect . eeType .~ GoesOnBack
& itUse . uequipEffect . eeAttachPos .~ V3 (-9) 0 10
& itUse . uequipEffect . eeUse .~ EDoNothing
& itConsumables
@@ -109,7 +108,7 @@ bulletBeltPack =
bulletBeltBracer :: Item
bulletBeltBracer =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnWrist
-- & itUse . uequipEffect . eeType .~ GoesOnWrist
& itUse . uequipEffect . eeAttachPos .~ V3 (-9) 0 10
& itUse . uequipEffect . eeUse .~ EDoNothing
& itConsumables
@@ -127,26 +126,25 @@ bulletBeltBracer =
brainHat :: Item
brainHat =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnHead
-- & itUse . uequipEffect . eeType .~ GoesOnHead
& itType .~ EQUIP BRAINHAT
hat :: Item
hat =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnHead
-- & itUse . uequipEffect . eeType .~ GoesOnHead
& itType .~ EQUIP HAT
headLamp :: Item
headLamp =
defaultEquipment
& itUse . uequipEffect . eeUse .~ EHeadLamp
& itUse . uequipEffect . eeType .~ GoesOnHead
-- & itUse . uequipEffect . eeType .~ GoesOnHead
& itType .~ EQUIP HEADLAMP
powerLegs :: Item
powerLegs =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnLegs
& itType .~ EQUIP POWERLEGS
speedLegs :: Item
@@ -158,7 +156,6 @@ jumpLegs = powerLegs & itType .~ EQUIP JUMPLEGS
wristInvisibility :: Item
wristInvisibility =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnWrist
-- & itUse . uequipEffect . eeOnEquip .~ ECamouflage Invisible
-- & itUse . uequipEffect . eeOnRemove .~ ECamouflage FullyVisible
& itType .~ EQUIP (INVISIBILITYEQUIPMENT GoesOnWrist)
@@ -166,5 +163,4 @@ wristInvisibility =
pulseChecker :: Item
pulseChecker =
defaultEquipment
& itUse . uequipEffect . eeType .~ GoesOnWrist
& itType .~ EQUIP WRIST_ECG
+2 -10
View File
@@ -12,17 +12,9 @@ import Dodge.Default
--import qualified Data.IntMap.Strict as IM
import LensHelp
defaultBangCane :: Item
defaultBangCane =
defaultBulletWeapon
-- & itUse . heldParams . recoil .~ 50
-- & itUse . heldDelay . rateMax .~ 6
-- & itUse . heldMods .~ BangCaneMod
-- & itUse . heldAim . aimHandlePos .~ 5
volleyGun :: Int -> Item
volleyGun i =
defaultBangCane
defaultHeldItem
-- & itUse . heldMuzzles .~ getZipList
-- (ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6]
-- <*> ZipList [0..i-1]
@@ -36,7 +28,7 @@ volleyGun i =
-- & itUse . heldUseEffect .~ RandomiseMuzzleFrames i
rifle :: Item
rifle = defaultBangCane & itType .~ HELD RIFLE
rifle = defaultHeldItem & itType .~ HELD RIFLE
-- & itUse . heldMuzzles . ix 0 . mzPos .~ V2 25 0
alteRifle :: Item
+3 -15
View File
@@ -7,24 +7,12 @@ module Dodge.Item.Held.Cone (
import Control.Lens
import Dodge.Data.Item
import Dodge.Default.Item
--import Geometry.Data
--import Linear
bangCone :: Item
bangCone =
defaultBulletWeapon
-- & itUse . heldDelay . rateMax .~ 20
-- & itUse . heldMuzzles
-- .~ [Muzzle (V2 15 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) 0]
& itType .~ HELD BANGCONE
bangCone = defaultHeldItem & itType .~ HELD BANGCONE
blunderbuss :: Item
blunderbuss =
bangCone
-- & itUse . heldMuzzles . ix 0 . mzPos . _x .~ 30
& itType .~ HELD BLUNDERBUSS
blunderbuss = bangCone & itType .~ HELD BLUNDERBUSS
grapeCannon :: Int -> Item
grapeCannon i =
blunderbuss
& itType .~ HELD (GRAPECANNON i)
grapeCannon i = blunderbuss & itType .~ HELD (GRAPECANNON i)
+1 -1
View File
@@ -17,7 +17,7 @@ import LensHelp
bangRod :: Item
bangRod =
defaultBulletWeapon
defaultHeldItem
-- & itUse . heldDelay . rateMax .~ 12
& itType .~ HELD BANGROD
-- & itUse . heldMuzzles . ix 0 . mzPos .~ V2 30 0
+1 -1
View File
@@ -14,7 +14,7 @@ import LensHelp
bangStick :: Int -> Item
bangStick i =
defaultBulletWeapon
defaultHeldItem
-- & itUse . heldParams . recoil .~ 25
& itType .~ HELD (BANGSTICK i)
-- & itUse . heldDelay . rateMax .~ 8
+2 -1
View File
@@ -4,6 +4,7 @@ module Dodge.Item.Info (
itemInfo,
) where
import Dodge.Data.EquipType
import Dodge.Data.AimStance
import Data.Char
--import qualified Data.Map.Strict as M
@@ -245,7 +246,7 @@ aimStanceInfo as = case as of
OneHand -> "It is held in one hand."
itmEquipSiteInfo :: Item -> String
itmEquipSiteInfo = maybe "" equipSiteInfo . (^? itUse . uequipEffect . eeType)
itmEquipSiteInfo = maybe "" equipSiteInfo . equipType-- (^? itUse . uequipEffect . eeType)
equipSiteInfo :: EquipType -> String
equipSiteInfo es = case es of
+2 -1
View File
@@ -4,6 +4,7 @@ module Dodge.Render.HUD (
drawHUD,
) where
import Dodge.Data.EquipType
import Dodge.Item.Location
import Control.Applicative
import Control.Lens
@@ -252,7 +253,7 @@ drawRBOptions cfig w = fold $ do
invid <- you w ^? crManipulation . manObject . imSelectedItem
eslist <-
fmap eqSiteToPositions $
you w ^? crInv . ix invid . itUse . uequipEffect . eeType
you w ^? crInv . ix invid >>= equipType-- . itUse . uequipEffect . eeType
i <- w ^? rbOptions . opSel
let ae = getEquipmentAllocation invid w
sss <- w ^? hud . hudElement . diSections
+2 -1
View File
@@ -2,6 +2,7 @@ module Dodge.Update.Scroll (
updateWheelEvent,
) where
import Dodge.Data.EquipType
import Padding
import Control.Monad
import qualified Data.Map.Strict as M
@@ -38,7 +39,7 @@ updateBaseWheelEvent yi w
bdown b = w & has (input . mouseButtons . ix b)
rbscrollmax = fromMaybe 1 $ do
invid <- you w ^? crManipulation . manObject . imSelectedItem
esite <- you w ^? crInv . ix invid . itUse . uequipEffect . eeType
esite <- you w ^? crInv . ix invid >>= equipType -- . itUse . uequipEffect . eeType
return . length $ eqSiteToPositions esite
selectedItemScroll :: Int -> World -> Maybe World