Add shrinkability and cursed items

This commit is contained in:
2021-11-18 18:30:22 +00:00
parent 147d6098ab
commit a546d070f0
82 changed files with 273 additions and 233 deletions
+20 -1
View File
@@ -9,12 +9,22 @@ circular imports are probably not a good idea.
{-# LANGUAGE DeriveGeneric #-}
module Dodge.Data
( module Dodge.Data
, module Dodge.Distortion.Data
, module Dodge.Data.DamageType
, module Dodge.Data.SoundOrigin
, module Dodge.Creature.State.Data
, module Dodge.Creature.Stance.Data
, module Dodge.Creature.Perception.Data
, module Dodge.Creature.Memory.Data
, module Dodge.Item.Attachment.Data
, module Dodge.Item.Data
, module Dodge.Config.Data
) where
import Dodge.Creature.State.Data
import Dodge.Creature.Stance.Data
import Dodge.Creature.Perception.Data
import Dodge.Creature.Memory.Data
import Dodge.Distortion.Data
import Dodge.Data.SoundOrigin
import Dodge.Data.DamageType
import Dodge.Config.Data
@@ -98,7 +108,7 @@ data World = World
, _sideEffects :: World -> IO World
, _inventoryMode :: InventoryMode
, _lClickHammer :: HammerPosition
, _radDistortion :: [(Point2,Point2,Point2,Float)]
, _distortions :: [Distortion]
, _worldBounds :: Bounds
, _gameRooms :: [GameRoom]
, _keyConfig :: KeyConfigSDL
@@ -107,6 +117,7 @@ data World = World
, _savedWorlds :: M.Map SaveSlot World
, _frameClock :: Int
}
data SaveSlot = QuicksaveSlot | LevelStartSlot
deriving (Eq,Ord)
@@ -150,6 +161,7 @@ data InventoryMode
| TweakInventory
| CombineInventory
| InspectInventory
| LockedInventory
deriving (Eq, Ord, Show)
data CrGroupParams = CrGroupParams
{ _crGroupParamID :: Int
@@ -239,6 +251,7 @@ data Intention = Intention
data CrMvType
= NoMvType
| MvWalking { _mvSpeed :: Float }
| ChaseMvType
{ _mvSpeed :: Float
, _mvTurnRad :: Float -> Float
@@ -316,6 +329,7 @@ data Item
, _itAimStance :: AimStance
, _wpNumBarrels :: Int
, _itDimension :: ItemDimension
, _itCurseStatus :: CurseStatus
}
| Consumable
{ _itName :: String
@@ -331,6 +345,7 @@ data Item
, _itEffect :: ItEffect
, _itHammer :: HammerPosition
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
}
| Craftable
{ _itName :: String
@@ -343,6 +358,7 @@ data Item
, _itInvDisplay :: Item -> String
, _itInvColor :: Color
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
}
| Equipment
{ _itName :: String
@@ -359,6 +375,7 @@ data Item
, _itInvColor :: Color
, _itHammer :: HammerPosition
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
}
| Throwable
{ _itName :: String
@@ -385,8 +402,10 @@ data Item
, _itHammer :: HammerPosition
, _itScroll :: Float -> Creature -> Item -> Item
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
}
| NoItem
data CurseStatus = Uncursed | UndroppableIdentified | UndroppableUnidentified
data ItemDimension = ItemDimension
{ _itDim :: Point3 -- length width height