Move equipType out of record
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
Reference in New Issue
Block a user