diff --git a/src/Dodge/Data/Item/Use.hs b/src/Dodge/Data/Item/Use.hs index 158b76e7a..9330fe3ff 100644 --- a/src/Dodge/Data/Item/Use.hs +++ b/src/Dodge/Data/Item/Use.hs @@ -31,10 +31,6 @@ import Geometry.Data data ItemUse = UseHeld --- { --_heldDelay :: UseDelay ----- , _heldMuzzles :: [Muzzle] ----- _heldFrame :: Int --- } | UseEquip {_uequipEffect :: EquipEffect} | UseAttach {_uaParams :: AttachParams} | UseInt {_uInt :: Int} diff --git a/src/Dodge/Data/Item/Use/Equipment.hs b/src/Dodge/Data/Item/Use/Equipment.hs index 939f57489..b0bc33281 100644 --- a/src/Dodge/Data/Item/Use/Equipment.hs +++ b/src/Dodge/Data/Item/Use/Equipment.hs @@ -7,7 +7,6 @@ module Dodge.Data.Item.Use.Equipment ( module Dodge.Data.Item.Use.Equipment, ) where -import Geometry.Data import Control.Lens import Data.Aeson import Data.Aeson.TH @@ -18,10 +17,9 @@ data EquipEffect = EquipEffect { _eeUse :: Euse --Item -> Creature -> World -> World , _eeOnEquip :: ItmCrWdWd --Item -> Creature -> World -> World , _eeOnRemove :: ItmCrWdWd --Item -> Creature -> World -> World --- , _eeType :: EquipType , _eeParams :: EquipParams , _eeViewDist :: Maybe Float - , _eeAttachPos :: Point3 +-- , _eeAttachPos :: Point3 } deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Default/Item/Use/Equipment.hs b/src/Dodge/Default/Item/Use/Equipment.hs index 817adce99..32944b606 100644 --- a/src/Dodge/Default/Item/Use/Equipment.hs +++ b/src/Dodge/Default/Item/Use/Equipment.hs @@ -12,5 +12,5 @@ defaultEquip = , _eeOnRemove = ItmCrWdWdDoNothing , _eeParams = NoEquipParams , _eeViewDist = Nothing - , _eeAttachPos = 0 +-- , _eeAttachPos = 0 } diff --git a/src/Dodge/Item/Draw.hs b/src/Dodge/Item/Draw.hs index f83fcb4b3..2d14f83d2 100644 --- a/src/Dodge/Item/Draw.hs +++ b/src/Dodge/Item/Draw.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE LambdaCase #-} module Dodge.Item.Draw ( itemSPic, itemEquipPict, @@ -17,7 +18,7 @@ itemEquipPict :: Creature -> LabelDoubleTree ItemLink ComposedItem -> SPic itemEquipPict cr itmtree | Just i <- itm ^? itLocation . ilInvID , Just esite <- cr ^? crInv . ix i . itLocation . ilEquipSite . _Just - , Just attachpos <- itm ^? itUse . uequipEffect . eeAttachPos + , Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip = equipPosition esite cr attachpos (itemSPic itm) | itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem = overPosSP (heldItemOffset itm cr) (itemTreeSPic itmtree) @@ -25,6 +26,14 @@ itemEquipPict cr itmtree where itm = itmtree ^. ldtValue . _1 +equipAttachPos :: EquipItemType -> Point3 +equipAttachPos = \case + BATTERYPACK -> V3 (-8) 0 10 + FUELPACK -> V3 (-9) 0 10 + BULLETBELTPACK -> V3 (-9) 0 10 + BULLETBELTBRACER -> V3 (-9) 0 10 + _ -> 0 + equipPosition :: EquipSite -> Creature -> Point3 -> SPic -> SPic equipPosition epos cr p sh = case epos of OnLeftWrist -> translateToLeftWrist cr sh diff --git a/src/Dodge/Item/Equipment.hs b/src/Dodge/Item/Equipment.hs index 0c3811298..0ce86cee6 100644 --- a/src/Dodge/Item/Equipment.hs +++ b/src/Dodge/Item/Equipment.hs @@ -19,7 +19,6 @@ module Dodge.Item.Equipment ( import Dodge.Data.Magnet import Dodge.Item.Weapon.Bullet -import Geometry.Data import Dodge.Data.Item import Dodge.Default import LensHelp @@ -33,19 +32,16 @@ magShield = flameShield :: Item flameShield = defaultEquipment --- & itUse . uequipEffect . eeType .~ GoesOnChest & itType .~ EQUIP FLAMESHIELD frontArmour :: Item frontArmour = defaultEquipment --- & itUse . uequipEffect . eeType .~ GoesOnChest & itType .~ EQUIP FRONTARMOUR wristArmour :: Item wristArmour = defaultEquipment --- & itUse . uequipEffect . eeType .~ GoesOnWrist & itUse . uequipEffect . eeOnEquip .~ EonWristShield & itUse . uequipEffect . eeUse .~ EWristShield & itUse . uequipEffect . eeOnRemove .~ EoffWristShield @@ -54,13 +50,10 @@ wristArmour = batteryPack :: Item batteryPack = defaultEquipment --- & itUse . uequipEffect . eeType .~ GoesOnBack - & itUse . uequipEffect . eeAttachPos .~ V3 (-8) 0 10 & itUse . uequipEffect . eeUse .~ EDoNothing & itConsumables .~ AmmoMag { _magParams = NoAmmoParams --- , _magType = ElectricalAmmo , _magLoadStatus = ReloadStatus { _iaMax = 10000000 @@ -72,14 +65,11 @@ batteryPack = fuelPack :: Item fuelPack = defaultEquipment --- & itUse . uequipEffect . eeType .~ GoesOnBack - & itUse . uequipEffect . eeAttachPos .~ V3 (-9) 0 10 -- & itUse . uequipEffect . eeUse .~ EFuelSource 10000 10000 & itType .~ EQUIP FUELPACK & itConsumables .~ AmmoMag { _magParams = GasParams ChemFuel --- , _magType = GasAmmo , _magLoadStatus = ReloadStatus { _iaMax = 100000 @@ -90,13 +80,10 @@ fuelPack = bulletBeltPack :: Item bulletBeltPack = defaultEquipment - -- & itUse . uequipEffect . eeType .~ GoesOnBack - & itUse . uequipEffect . eeAttachPos .~ V3 (-9) 0 10 & itUse . uequipEffect . eeUse .~ EDoNothing & itConsumables .~ AmmoMag { _magParams = BulletParams defaultBullet --- , _magType = BeltBulletAmmo , _magLoadStatus = ReloadStatus { _iaMax = 10000000 @@ -108,13 +95,10 @@ bulletBeltPack = bulletBeltBracer :: Item bulletBeltBracer = defaultEquipment - -- & itUse . uequipEffect . eeType .~ GoesOnWrist - & itUse . uequipEffect . eeAttachPos .~ V3 (-9) 0 10 & itUse . uequipEffect . eeUse .~ EDoNothing & itConsumables .~ AmmoMag { _magParams = BulletParams defaultBullet --- , _magType = BeltBulletAmmo , _magLoadStatus = ReloadStatus { _iaMax = 100000 @@ -124,22 +108,15 @@ bulletBeltBracer = & itType .~ EQUIP BULLETBELTBRACER brainHat :: Item -brainHat = - defaultEquipment - -- & itUse . uequipEffect . eeType .~ GoesOnHead - & itType .~ EQUIP BRAINHAT +brainHat = defaultEquipment & itType .~ EQUIP BRAINHAT hat :: Item -hat = - defaultEquipment - -- & itUse . uequipEffect . eeType .~ GoesOnHead - & itType .~ EQUIP HAT +hat = defaultEquipment & itType .~ EQUIP HAT headLamp :: Item headLamp = defaultEquipment & itUse . uequipEffect . eeUse .~ EHeadLamp - -- & itUse . uequipEffect . eeType .~ GoesOnHead & itType .~ EQUIP HEADLAMP powerLegs :: Item @@ -161,6 +138,4 @@ wristInvisibility = & itType .~ EQUIP (INVISIBILITYEQUIPMENT GoesOnWrist) pulseChecker :: Item -pulseChecker = - defaultEquipment - & itType .~ EQUIP WRIST_ECG +pulseChecker = defaultEquipment & itType .~ EQUIP WRIST_ECG