Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+56 -15
View File
@@ -1,19 +1,23 @@
module Dodge.Default.Item (
defaultItem,
defaultItEffect,
module Dodge.Default.Item,
module Dodge.Default.Item.Use,
module Dodge.Default.Item.Effect,
) where
import Color
import Control.Lens
import qualified Data.Map.Strict as M
import Dodge.Data.Item
import Dodge.Default.Item.Effect
import Dodge.Default.Item.Use
import Geometry.Data
import Picture
defaultItem :: Item
defaultItem =
Item
{ _itCurseStatus = Uncursed
, _itType = defaultItemType
, -- , _itEquipPict = \_ _ -> (,) emptySH blank
_itEffect = defaultItEffect
, _itEffect = defaultItEffect
, _itID = Nothing
, _itIsHeld = False
, _itInvColor = yellow
@@ -28,15 +32,52 @@ defaultItem =
, _itValue = ItemValue 0 MundaneItem
}
defaultItEffect :: ItEffect
defaultItEffect =
ItEffect
{ _ieInv = NoInvEffect
, _ieOnInsert = NoInvEffect
, _ieOnDrop = NoInvEffect
, _ieOnHeld = NoInvEffect
, _ieOnStash = NoInvEffect
}
defaultLeftItem :: Item
defaultLeftItem =
defaultItem
& itUse .~ defaultLeftUse
& itInvColor .~ cyan
defaultHeldItem :: Item
defaultHeldItem =
defaultItem
& itInvColor .~ white
& itUse .~ defaultHeldUse
defaultCraftItem :: Item
defaultCraftItem =
defaultItem
& itUse .~ CraftUse 1
& itInvColor .~ green
defaultItemType :: ItemType
defaultItemType = ItemType (error "defaultItemType not initialized") mempty NoStack
defaultItemType = ItemType NoItemType mempty NoStack
defaultBulletWeapon :: Item
defaultBulletWeapon =
defaultWeapon
& itUse . heldConsumption .~ defaultBulletLoadable
& itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams
& itType . iyModules . at ModBullet ?~ EMPTYMODULE
& itType . iyModules . at ModBulletSpawn ?~ EMPTYMODULE
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
defaultWeapon :: Item
defaultWeapon =
defaultHeldItem
& itUse .~ defaultHeldUse
& itInvColor .~ white
& itType . iyModules
.~ M.fromList
[ (ModTarget, EMPTYMODULE)
, (ModTeleport, EMPTYMODULE)
]
defaultConsumable :: Item
defaultConsumable =
defaultItem
& itUse .~ ConsumeUse CDoNothing 1
& itInvColor .~ blue
defaultItZoom :: ItZoom
defaultItZoom = ItZoom 20 0.2 1