Remove creature records
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
|||||||
-- | Actions performed by creatures within the world
|
-- | Actions performed by creatures within the world
|
||||||
module Dodge.Creature.Action (
|
module Dodge.Creature.Action (
|
||||||
performActions,
|
performActions,
|
||||||
setMinInvSize,
|
-- setMinInvSize,
|
||||||
dropExcept,
|
dropExcept,
|
||||||
dropItem,
|
dropItem,
|
||||||
blinkActionMousePos,
|
blinkActionMousePos,
|
||||||
@@ -140,8 +140,8 @@ performAction cr w ac = case ac of
|
|||||||
(imps, _) -> (imps, Just $ DoReplicatePartial startac (t -1) startac)
|
(imps, _) -> (imps, Just $ DoReplicatePartial startac (t -1) startac)
|
||||||
NoAction -> ([], Nothing)
|
NoAction -> ([], Nothing)
|
||||||
|
|
||||||
setMinInvSize :: Int -> Creature -> World -> World
|
--setMinInvSize :: Int -> Creature -> World -> World
|
||||||
setMinInvSize n cr = cWorld . lWorld . creatures . ix (_crID cr) . crInvCapacity .~ n
|
--setMinInvSize n cr = cWorld . lWorld . creatures . ix (_crID cr) . crInvCapacity .~ n
|
||||||
|
|
||||||
---- maybe this should be removed...
|
---- maybe this should be removed...
|
||||||
--stripNoItems :: Creature -> World -> World
|
--stripNoItems :: Creature -> World -> World
|
||||||
@@ -191,7 +191,8 @@ youDropItem w = fromMaybe w $ do
|
|||||||
curpos <-
|
curpos <-
|
||||||
cr ^? crManipulation . manObject . imSelectedItem
|
cr ^? crManipulation . manObject . imSelectedItem
|
||||||
<|> fmap fst (IM.lookupMax (cr ^. crInv))
|
<|> fmap fst (IM.lookupMax (cr ^. crInv))
|
||||||
guard $ not $ _crInvLock cr
|
--guard $ not $ _crInvLock cr
|
||||||
|
guard $ not $ w ^. cWorld . lWorld . lInvLock
|
||||||
return $ case cr ^. crStance . posture of
|
return $ case cr ^. crStance . posture of
|
||||||
Aiming -> throwItem w
|
Aiming -> throwItem w
|
||||||
AtEase -> dropItem cr curpos w
|
AtEase -> dropItem cr curpos w
|
||||||
|
|||||||
@@ -2,13 +2,14 @@ module Dodge.Creature.Info (
|
|||||||
yourInfo,
|
yourInfo,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Dodge.Inventory.CheckSlots
|
||||||
import Dodge.Data.Creature
|
import Dodge.Data.Creature
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
yourInfo :: Creature -> String
|
yourInfo :: Creature -> String
|
||||||
yourInfo cr =
|
yourInfo cr =
|
||||||
yourStatsInfo cr
|
yourStatsInfo cr
|
||||||
++ " You can carry a maximum of " ++ show (cr ^. crInvCapacity) ++ " individual items. "
|
++ " You can carry a maximum of " ++ show maxInvSlots ++ " individual items. "
|
||||||
++ " You can't remember your name."
|
++ " You can't remember your name."
|
||||||
|
|
||||||
statsModifier :: Int -> String -> String -> String -> String
|
statsModifier :: Int -> String -> String -> String -> String
|
||||||
|
|||||||
@@ -43,8 +43,7 @@ data Creature = Creature
|
|||||||
, _crHP :: Int
|
, _crHP :: Int
|
||||||
, _crInv :: IM.IntMap Item
|
, _crInv :: IM.IntMap Item
|
||||||
, _crManipulation :: Manipulation
|
, _crManipulation :: Manipulation
|
||||||
, _crInvCapacity :: Int
|
-- , _crInvLock :: Bool
|
||||||
, _crInvLock :: Bool
|
|
||||||
, _crEquipment :: M.Map EquipSite Int
|
, _crEquipment :: M.Map EquipSite Int
|
||||||
, _crState :: CreatureState
|
, _crState :: CreatureState
|
||||||
, _crPastDamage :: Int
|
, _crPastDamage :: Int
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ data LWorld = LWorld
|
|||||||
, _hotkeys :: M.Map Hotkey (NewInt ItmInt)
|
, _hotkeys :: M.Map Hotkey (NewInt ItmInt)
|
||||||
, _imHotkeys :: NewIntMap ItmInt Hotkey
|
, _imHotkeys :: NewIntMap ItmInt Hotkey
|
||||||
, _lAimPos :: Point2
|
, _lAimPos :: Point2
|
||||||
|
, _lInvLock :: Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
--data WorldBeams = WorldBeams
|
--data WorldBeams = WorldBeams
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ data WdWd
|
|||||||
| WorldEffects [WdWd]
|
| WorldEffects [WdWd]
|
||||||
| SetLSCol Point3 Int
|
| SetLSCol Point3 Int
|
||||||
| AccessTerminal (Maybe Int)
|
| AccessTerminal (Maybe Int)
|
||||||
| UnlockInv Int
|
| UnlockInv
|
||||||
| SoundStart SoundOrigin Point2 SoundID (Maybe Int)
|
| SoundStart SoundOrigin Point2 SoundID (Maybe Int)
|
||||||
| MakeStartCloudAt Point3
|
| MakeStartCloudAt Point3
|
||||||
| TorqueCr Float Int
|
| TorqueCr Float Int
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ applyTerminalCommand s = case s of
|
|||||||
['L', x] ->
|
['L', x] ->
|
||||||
(uvWorld . cWorld . lWorld %~ initSpecificCrItemLocations 0)
|
(uvWorld . cWorld . lWorld %~ initSpecificCrItemLocations 0)
|
||||||
. (uvWorld . cWorld . lWorld . creatures . ix 0 . crInv .~ IM.fromList (zip [0 ..] $ inventoryX x))
|
. (uvWorld . cWorld . lWorld . creatures . ix 0 . crInv .~ IM.fromList (zip [0 ..] $ inventoryX x))
|
||||||
. (uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ 50)
|
-- . (uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ 50)
|
||||||
['I','S',x,y] -> uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ read [x,y]
|
-- ['I','S',x,y] -> uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ read [x,y]
|
||||||
"GODON" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crType . avatarMaterial .~ Crystal
|
"GODON" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crType . avatarMaterial .~ Crystal
|
||||||
"GODOFF" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crType . avatarMaterial .~ Flesh
|
"GODOFF" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crType . avatarMaterial .~ Flesh
|
||||||
x -> fromMaybe id $ do
|
x -> fromMaybe id $ do
|
||||||
@@ -83,7 +83,7 @@ applySetTerminalString [] = id
|
|||||||
applySetTerminalString var = case key' of
|
applySetTerminalString var = case key' of
|
||||||
"" -> showTerminalError ("set " ++ var) ("Unable to read as argument as float: " ++ val)
|
"" -> showTerminalError ("set " ++ var) ("Unable to read as argument as float: " ++ val)
|
||||||
"hp" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crHP .~ round (fromJust val')
|
"hp" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crHP .~ round (fromJust val')
|
||||||
"invcap" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ round (fromJust val')
|
-- "invcap" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ round (fromJust val')
|
||||||
-- "mass" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMass .~ fromJust val'
|
-- "mass" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMass .~ fromJust val'
|
||||||
"mvspeed" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMvType . mvSpeed .~ fromJust val'
|
"mvspeed" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMvType . mvSpeed .~ fromJust val'
|
||||||
_ -> showTerminalError ("set " ++ var) ("Invalid set command: " ++ key) -- never reached?
|
_ -> showTerminalError ("set " ++ var) ("Invalid set command: " ++ key) -- never reached?
|
||||||
|
|||||||
@@ -25,8 +25,7 @@ defaultCreature =
|
|||||||
-- , _crMaxHP = 150
|
-- , _crMaxHP = 150
|
||||||
, _crInv = IM.empty
|
, _crInv = IM.empty
|
||||||
, _crManipulation = Manipulator SelNothing
|
, _crManipulation = Manipulator SelNothing
|
||||||
, _crInvCapacity = 25
|
-- , _crInvCapacity = 25
|
||||||
, _crInvLock = False
|
|
||||||
, _crState = defaultState
|
, _crState = defaultState
|
||||||
-- , _crCorpse = MakeDefaultCorpse
|
-- , _crCorpse = MakeDefaultCorpse
|
||||||
-- , _crMaterial = Flesh
|
-- , _crMaterial = Flesh
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ defaultLWorld =
|
|||||||
, _hotkeys = mempty
|
, _hotkeys = mempty
|
||||||
, _imHotkeys = mempty
|
, _imHotkeys = mempty
|
||||||
, _lAimPos = 0
|
, _lAimPos = 0
|
||||||
|
, _lInvLock = False
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultHUD :: HUD
|
defaultHUD :: HUD
|
||||||
|
|||||||
@@ -425,9 +425,9 @@ itemSidePush = \case
|
|||||||
applyInvLock :: Item -> Creature -> World -> World
|
applyInvLock :: Item -> Creature -> World -> World
|
||||||
applyInvLock itm cr = case itemInvLock itm of
|
applyInvLock itm cr = case itemInvLock itm of
|
||||||
i
|
i
|
||||||
| i > 0 ->
|
| i > 0 && cid == 0 ->
|
||||||
(cWorld . lWorld . delayedEvents .:~ (i, UnlockInv cid))
|
(cWorld . lWorld . delayedEvents .:~ (i, UnlockInv))
|
||||||
. lockInv cid
|
. lockInv
|
||||||
_ -> id
|
_ -> id
|
||||||
where
|
where
|
||||||
cid = _crID cr
|
cid = _crID cr
|
||||||
@@ -441,7 +441,7 @@ heldItemInvLock :: HeldItemType -> Int
|
|||||||
heldItemInvLock = \case
|
heldItemInvLock = \case
|
||||||
FLAMESPITTER -> 10
|
FLAMESPITTER -> 10
|
||||||
VOLLEYGUN i -> i + 1
|
VOLLEYGUN i -> i + 1
|
||||||
BURSTRIFLE -> 7
|
BURSTRIFLE -> 70
|
||||||
_ -> 0
|
_ -> 0
|
||||||
|
|
||||||
applySoundCME :: Item -> Creature -> World -> World
|
applySoundCME :: Item -> Creature -> World -> World
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
module Dodge.Inventory.CheckSlots (
|
module Dodge.Inventory.CheckSlots (
|
||||||
checkInvSlotsYou,
|
checkInvSlotsYou,
|
||||||
crNumFreeSlots,
|
crNumFreeSlots,
|
||||||
|
maxInvSlots,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
@@ -20,7 +21,11 @@ checkInvSlotsYou it w = do
|
|||||||
Just . IM.newKey $ _crInv ycr
|
Just . IM.newKey $ _crInv ycr
|
||||||
|
|
||||||
crNumFreeSlots :: Creature -> Int
|
crNumFreeSlots :: Creature -> Int
|
||||||
crNumFreeSlots cr = _crInvCapacity cr - invSize (_crInv cr)
|
--crNumFreeSlots cr = _crInvCapacity cr - invSize (_crInv cr)
|
||||||
|
crNumFreeSlots cr = maxInvSlots - invSize (_crInv cr)
|
||||||
|
|
||||||
|
maxInvSlots :: Int
|
||||||
|
maxInvSlots = 25
|
||||||
|
|
||||||
invSize :: IM.IntMap Item -> Int
|
invSize :: IM.IntMap Item -> Int
|
||||||
invSize = alaf Sum foldMap itInvHeight
|
invSize = alaf Sum foldMap itInvHeight
|
||||||
|
|||||||
@@ -6,8 +6,10 @@ module Dodge.Inventory.Lock (
|
|||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Dodge.Data.World
|
import Dodge.Data.World
|
||||||
|
|
||||||
lockInv :: Int -> World -> World
|
lockInv :: World -> World
|
||||||
lockInv cid = cWorld . lWorld . creatures . ix cid . crInvLock ||~ True
|
--lockInv cid = cWorld . lWorld . creatures . ix cid . crInvLock ||~ True
|
||||||
|
lockInv = cWorld . lWorld . lInvLock .~ True
|
||||||
|
|
||||||
unlockInv :: Int -> World -> World
|
--unlockInv :: Int -> World -> World
|
||||||
unlockInv cid = cWorld . lWorld . creatures . ix cid . crInvLock &&~ False
|
unlockInv :: World -> World
|
||||||
|
unlockInv = cWorld . lWorld . lInvLock .~ False
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ updateWheelEvent yi w = case w ^. hud . hudElement . subInventory of
|
|||||||
-- yi should be nonzero
|
-- yi should be nonzero
|
||||||
updateBaseWheelEvent :: Int -> World -> World
|
updateBaseWheelEvent :: Int -> World -> World
|
||||||
updateBaseWheelEvent yi w
|
updateBaseWheelEvent yi w
|
||||||
| Just True <- w ^? cWorld . lWorld . creatures . ix 0 . crInvLock = w
|
-- | Just True <- w ^? cWorld . lWorld . creatures . ix 0 . crInvLock = w
|
||||||
|
| Just True <- w ^? cWorld . lWorld . lInvLock = w
|
||||||
| bdown ButtonRight = case _rbOptions w of
|
| bdown ButtonRight = case _rbOptions w of
|
||||||
EquipOptions{} -> w & rbOptions . opSel %~ scrollRBOption yi rbscrollmax
|
EquipOptions{} -> w & rbOptions . opSel %~ scrollRBOption yi rbscrollmax
|
||||||
NoRightButtonOptions -> fromMaybe w (selectedItemScroll yi w)
|
NoRightButtonOptions -> fromMaybe w (selectedItemScroll yi w)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ doWdWd we = case we of
|
|||||||
SetLSCol col lsid -> cWorld . lWorld . lightSources . ix lsid . lsParam . lsCol .~ col
|
SetLSCol col lsid -> cWorld . lWorld . lightSources . ix lsid . lsParam . lsCol .~ col
|
||||||
AccessTerminal mtmid -> accessTerminal mtmid
|
AccessTerminal mtmid -> accessTerminal mtmid
|
||||||
WorldEffects wes -> \w -> foldr doWdWd w wes
|
WorldEffects wes -> \w -> foldr doWdWd w wes
|
||||||
UnlockInv cid -> unlockInv cid
|
UnlockInv -> unlockInv
|
||||||
MakeStartCloudAt p -> makeStartCloudAt p
|
MakeStartCloudAt p -> makeStartCloudAt p
|
||||||
TorqueCr x cid -> torqueCr x cid
|
TorqueCr x cid -> torqueCr x cid
|
||||||
SoundStart so p sid mi -> soundStart so p sid mi
|
SoundStart so p sid mi -> soundStart so p sid mi
|
||||||
|
|||||||
@@ -2424,7 +2424,6 @@ _crHP src/Dodge/Data/Creature.hs 43;" f
|
|||||||
_crID src/Dodge/Data/Creature.hs 42;" f
|
_crID src/Dodge/Data/Creature.hs 42;" f
|
||||||
_crIntention src/Dodge/Data/Creature.hs 59;" f
|
_crIntention src/Dodge/Data/Creature.hs 59;" f
|
||||||
_crInv src/Dodge/Data/Creature.hs 44;" f
|
_crInv src/Dodge/Data/Creature.hs 44;" f
|
||||||
_crInvCapacity src/Dodge/Data/Creature.hs 46;" f
|
|
||||||
_crInvLock src/Dodge/Data/Creature.hs 47;" f
|
_crInvLock src/Dodge/Data/Creature.hs 47;" f
|
||||||
_crManipulation src/Dodge/Data/Creature.hs 45;" f
|
_crManipulation src/Dodge/Data/Creature.hs 45;" f
|
||||||
_crMemory src/Dodge/Data/Creature.hs 55;" f
|
_crMemory src/Dodge/Data/Creature.hs 55;" f
|
||||||
@@ -4663,7 +4662,7 @@ invSetSelection src/Dodge/Inventory.hs 185;" f
|
|||||||
invSetSelectionPos src/Dodge/Inventory.hs 193;" f
|
invSetSelectionPos src/Dodge/Inventory.hs 193;" f
|
||||||
invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f
|
invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f
|
||||||
invSideEff src/Dodge/Creature/State.hs 167;" f
|
invSideEff src/Dodge/Creature/State.hs 167;" f
|
||||||
invSize src/Dodge/Inventory/CheckSlots.hs 25;" f
|
invSize src/Dodge/Inventory/CheckSlots.hs 29;" f
|
||||||
inventoryX src/Dodge/Creature.hs 113;" f
|
inventoryX src/Dodge/Creature.hs 113;" f
|
||||||
inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f
|
inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f
|
||||||
inverseSelSecYint src/Dodge/SelectionSections.hs 201;" f
|
inverseSelSecYint src/Dodge/SelectionSections.hs 201;" f
|
||||||
@@ -4956,6 +4955,7 @@ makeTypeCraftNum src/Dodge/Item/Craftable.hs 12;" f
|
|||||||
mapper src/Dodge/Item/Scope.hs 70;" f
|
mapper src/Dodge/Item/Scope.hs 70;" f
|
||||||
maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f
|
maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f
|
||||||
maxDamageType src/Dodge/Damage.hs 37;" f
|
maxDamageType src/Dodge/Damage.hs 37;" f
|
||||||
|
maxInvSlots src/Dodge/Inventory/CheckSlots.hs 26;" f
|
||||||
maxShowX src/Dodge/Combine/Graph.hs 49;" f
|
maxShowX src/Dodge/Combine/Graph.hs 49;" f
|
||||||
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
|
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
|
||||||
maybeBlockedPassage src/Dodge/Room/RezBox.hs 69;" f
|
maybeBlockedPassage src/Dodge/Room/RezBox.hs 69;" f
|
||||||
@@ -5696,7 +5696,6 @@ setInvPosFromSS src/Dodge/Inventory/Location.hs 82;" f
|
|||||||
setLayer src/Picture/Base.hs 139;" f
|
setLayer src/Picture/Base.hs 139;" f
|
||||||
setLinkType src/Dodge/RoomLink.hs 60;" f
|
setLinkType src/Dodge/RoomLink.hs 60;" f
|
||||||
setLinkTypePD src/Dodge/RoomLink.hs 67;" f
|
setLinkTypePD src/Dodge/RoomLink.hs 67;" f
|
||||||
setMinInvSize src/Dodge/Creature/Action.hs 143;" f
|
|
||||||
setMusicVolume src/Sound.hs 162;" f
|
setMusicVolume src/Sound.hs 162;" f
|
||||||
setMvPos src/Dodge/Creature/ReaderUpdate.hs 52;" f
|
setMvPos src/Dodge/Creature/ReaderUpdate.hs 52;" f
|
||||||
setOldPos src/Dodge/Update.hs 467;" f
|
setOldPos src/Dodge/Update.hs 467;" f
|
||||||
|
|||||||
Reference in New Issue
Block a user