Fix at least one bug from item refactor, more remain

This commit is contained in:
2025-08-24 21:01:02 +01:00
parent 94f6d5c630
commit c2daa86463
19 changed files with 95 additions and 95 deletions
+30 -28
View File
@@ -6,13 +6,13 @@ Room layout (compact):
| |
| +- 22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46
| | |
| | +- 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63
| | +- 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
| | |
| | 64,65
| | 65,66
| |
| 66,67,68
| 67,68,69
|
69,70,71
70,71,72
Layout with room names:
rezBox-0
@@ -107,55 +107,57 @@ ElecautoRect-6
| | |
| | autoDoor-45
| | |
| | rect-46
| | 8gon-46
| | |
| | +- autoDoor-47
| | +- triggerDoorRoom-47
| | | |
| | | autoDoor-48
| | | |
| | | Corridor-49
| | | autoDoor-49
| | | |
| | | autoRect-50
| | | Corridor-50
| | | |
| | | defaultRoom-51
| | | autoRect-51
| | | |
| | | autoRect-52
| | | defaultRoom-52
| | | |
| | | defaultRoom-53
| | | autoRect-53
| | | |
| | | autoRect-54
| | | defaultRoom-54
| | | |
| | | autoDoor-55
| | | autoRect-55
| | | |
| | | Corridor-56
| | | autoDoor-56
| | | |
| | | autoDoor-57
| | | Corridor-57
| | | |
| | | 8gon-58
| | | autoDoor-58
| | | |
| | | triggerDoorRoom-59
| | | 8gon-59
| | | |
| | | autoDoor-60
| | | triggerDoorRoom-60
| | | |
| | | autoDoor-61
| | | |
| | | Corridor-62
| | | autoDoor-62
| | | |
| | | defaultRoom-63
| | |
| | Corridor-64
| | | Corridor-63
| | | |
| | | defaultRoom-64
| | |
| | autoDoor-65
| | |
| | Corridor-66
| |
| autoDoor-66
| autoDoor-67
| |
| Corridor-67
| Corridor-68
| |
| autoRect-68
| autoRect-69
|
autoDoor-69
autoDoor-70
|
Corridor-70
Corridor-71
|
autoRect-71
defaultRoom-72
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727
72 rooms in total
73 rooms in total
+13 -11
View File
@@ -35,7 +35,7 @@ Seed: 7114951007332849727
|
17:corDoor
|
18:PassthroughLockKeyLists-HELD {_ibtHeld = SNIPERRIFLE}
18:PassthroughLockKeyLists-HELD {_ibtHeld = RLAUNCHER}
|
19:corDoor
|
@@ -87,7 +87,7 @@ Seed: 7114951007332849727
|
2:0:0:0:5:Corridor
2:0:1:0:autoRect
2:0:1:0:defaultRoom
3:0:corDoor
@@ -125,7 +125,7 @@ Seed: 7114951007332849727
8:0:0:RassThroughLockKeyLists
|
8:0:1:roomsContaining chaseCritchaseCritchaseCritKEYCARD 0
8:0:1:roomsContaining DEFAULTCRNAMEchaseCritchaseCritKEYCARD 0
8:0:0:0:keyCardRoomRunPast
@@ -203,25 +203,27 @@ Seed: 7114951007332849727
|
17:0:1:Corridor
18:0:PassthroughLockKeyLists-HELD {_ibtHeld = SNIPERRIFLE}
18:0:PassthroughLockKeyLists-HELD {_ibtHeld = RLAUNCHER}
18:0:0:RassThroughLockKeyLists
|
18:0:1:roomsContaining chaseCritchaseCritSNIPERRIFLE
18:0:1:roomsContaining chaseCritchaseCritTUBETUBEHARDWARE
18:0:0:0:longRoomRunPast
18:0:0:0:lasCenSensEdge
18:0:0:0:0:autoDoor
|
18:0:0:0:1:rect
18:0:0:0:1:8gon
|
+- 18:0:0:0:2:autoDoor
|
18:0:0:0:3:Corridor
+- 18:0:0:0:2:triggerDoorRoom
| |
| 18:0:0:0:3:autoDoor
|
18:0:0:0:4:autoDoor
|
18:0:0:0:5:Corridor
18:0:1:0:rectPillars
18:0:1:0:autoRect
19:0:corDoor
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -8,7 +8,7 @@ import Control.Lens
import Dodge.Creature.ChaseCrit
import Dodge.Data.Creature
import Dodge.Default
import Dodge.Item.Equipment
--import Dodge.Item.Equipment
import qualified IntMapHelp as IM
flockArmourChaseCrit :: Creature
+2 -2
View File
@@ -2,11 +2,11 @@ module Dodge.Creature.AutoCrit (
autoCrit,
) where
import Dodge.Item.Held.Cane
--import Dodge.Item.Held.Cane
--import Control.Lens
import Dodge.Data.Creature
import Dodge.Default
import qualified IntMapHelp as IM
--import qualified IntMapHelp as IM
--import Picture
autoCrit :: Creature
+3 -3
View File
@@ -4,11 +4,11 @@ module Dodge.Creature.ChaseCrit (
chaseCrit,
) where
import Dodge.Data.Equipment.Misc
import Control.Lens
--import Dodge.Data.Equipment.Misc
--import Control.Lens
import Dodge.Data.Creature
import Dodge.Default
import Dodge.Item.Equipment
--import Dodge.Item.Equipment
import Picture
smallChaseCrit :: Creature
+8 -8
View File
@@ -15,7 +15,7 @@ module Dodge.Creature.HandPos (
headPQ,
) where
import Dodge.Data.Equipment.Misc
--import Dodge.Data.Equipment.Misc
import qualified Data.IntMap.Strict as IM
import qualified Quaternion as Q
import Control.Lens
@@ -27,13 +27,13 @@ import ShapePicture
translatePointToRightHand :: IM.IntMap Item -> Creature -> Point3 -> Point3
translatePointToRightHand m cr p = fst (rightHandPQ m cr `Q.comp` (p,Q.qID))
equipSitePQ :: EquipSite -> IM.IntMap Item -> Creature -> Point3Q
equipSitePQ = \case
OnRightWrist -> rightHandPQ
OnLeftWrist -> leftHandPQ
OnBack -> backPQ
OnChest -> chestPQ
_ -> undefined
--equipSitePQ :: EquipSite -> IM.IntMap Item -> Creature -> Point3Q
--equipSitePQ = \case
-- OnRightWrist -> rightHandPQ
-- OnLeftWrist -> leftHandPQ
-- OnBack -> backPQ
-- OnChest -> chestPQ
-- _ -> undefined
rightHandPQ :: IM.IntMap Item -> Creature -> Point3Q
rightHandPQ m cr
+2 -2
View File
@@ -2,11 +2,11 @@ module Dodge.Creature.LauncherCrit (
launcherCrit,
) where
import Dodge.Item.Held.Launcher
--import Dodge.Item.Held.Launcher
--import Control.Lens
import Dodge.Data.Creature
import Dodge.Default
import qualified IntMapHelp as IM
--import qualified IntMapHelp as IM
--import Picture
launcherCrit :: Creature
+1 -2
View File
@@ -5,8 +5,7 @@ module Dodge.Creature.SpreadGunCrit (
--import Control.Lens
import Dodge.Data.Creature
import Dodge.Default
import Dodge.Item.Held.Stick
import qualified IntMapHelp as IM
--import qualified IntMapHelp as IM
--import Picture
spreadGunCrit :: Creature
-1
View File
@@ -8,7 +8,6 @@ module Dodge.Creature.Statistics (
import Dodge.Data.LWorld
import Data.Maybe
import Dodge.Data.Creature
import qualified IntMapHelp as IM
import LensHelp
+1 -1
View File
@@ -97,7 +97,7 @@ crInAimStance as m cr = crIsAiming cr && mitstance == Just as
mitstance = do
i <- cr ^? crManipulation . manObject . imRootSelectedItem
--itm <- invRootTrees' (cr ^. crInv) ^? ix i
itm <- fmap (fmap (\(a,b,_) -> (a,b))) $ invIMDT (fmap (\i -> m ^?! ix i) (cr ^. crInv)) ^? ix i
itm <- fmap (fmap (\(a,b,_) -> (a,b))) $ invIMDT (fmap (\k -> m ^?! ix k) (cr ^. crInv)) ^? ix i
return $ aimStance itm
--cr ^? crInv . ix i . itUse . heldAim . aimStance
+1 -5
View File
@@ -114,11 +114,7 @@ displayIndents 3 = 2
displayIndents 5 = 2
displayIndents _ = 0
updateDisplaySections ::
World ->
Configuration ->
IM.IntMap (SelectionSection ()) ->
IM.IntMap (SelectionSection ())
updateDisplaySections :: World -> Configuration -> IMSS () -> IMSS ()
updateDisplaySections w cfig =
updateSectionsPositioning
displayIndents
+13 -17
View File
@@ -1,36 +1,32 @@
module Dodge.FloorItem (
copyItemToFloor,
copyItemToFloorID,
-- copyItemToFloorID,
) where
import Dodge.Item.InvSize
import NewInt
import Control.Lens
import Data.Maybe
import Data.Monoid
import Dodge.Base
import Dodge.Data.World
import Dodge.Item.InvSize
import Geometry
import qualified IntMapHelp as IM
--import qualified IntMapHelp as IM
import NewInt
import System.Random
-- | Copy an item to the floor.
-- | Copy an item to the floor
copyItemToFloor :: Point2 -> Item -> World -> World
copyItemToFloor pos it = copyItemToFloorID pos it
-- | Copy an item to the floor, returns the floor item's id.
copyItemToFloorID :: Point2 -> Item -> World -> World
copyItemToFloorID pos it w =
w'
& cWorld . lWorld . floorItems %~ IM.insert (_unNInt $ _itID it) theflit
& cWorld . lWorld . items . ix (_unNInt $ _itID it) . itLocation .~ OnFloor
& hud . closeItems %~ (_itID it:)
-- & hud . hudElement . diSections . ix 3 . ssOffset .~ 0
-- ensures dropped item is at the top of the close item selection list
copyItemToFloor pos it w =
w'
& cWorld . lWorld . floorItems . at (_unNInt $ _itID it) ?~ theflit
& cWorld . lWorld . items . at (_unNInt $ _itID it) ?~ (it & itLocation .~ OnFloor)
& hud . closeItems %~ (_itID it :)
where
-- & hud . hudElement . diSections . ix 3 . ssOffset .~ 0
-- ensures dropped item is at the top of the close item selection list
(p', w') = findWallFreeDropPoint (_dimRad $ itDim it) pos w
rot = fst . randomR (- pi, pi) $ _randGen w
theflit = FlIt { _flItPos = p' , _flItRot = rot }
theflit = FlIt{_flItPos = p', _flItRot = rot}
cardinalVectors :: [Point2]
cardinalVectors =
+2 -2
View File
@@ -111,11 +111,11 @@ tryPutItemInInvAt i cid itid w = do
-- return (Just i, w')
createItemYou :: Item -> World -> World
createItemYou itm w = fromMaybe w' $ fmap snd $ tryPutItemInInv 0 itid w'
createItemYou itm w = w' -- fromMaybe w' $ fmap snd $ tryPutItemInInv 0 itid w'
where
itid = IM.newKey $ w ^. cWorld . lWorld . items
pos = w ^?! cWorld . lWorld . creatures . ix 0 . crPos
w' = copyItemToFloorID pos (itm & itID .~ NInt itid) w
w' = copyItemToFloor pos (itm & itID .~ NInt itid) w
-- | Pick up a specific item.
pickUpItem :: Int -> Int -> World -> World
+2 -1
View File
@@ -46,7 +46,8 @@ crUpdateItemLocations :: Int -> LWorld -> LWorld
crUpdateItemLocations crid lw = fromMaybe lw $ do
mo <- lw ^? creatures . ix crid . crManipulation . manObject
itids <- lw ^? creatures . ix crid . crInv
let crinv = IM.restrictKeys (lw ^. items) (IS.fromList $ IM.elems itids)
--let crinv = IM.restrictKeys (lw ^. items) (IS.fromList $ IM.elems itids)
let crinv = fmap (\k -> lw ^?! items . ix k) itids
return $ crSetRoots crid $ IM.foldlWithKey' (crUpdateInvidLocations mo crid) lw crinv
crSetRoots :: Int -> LWorld -> LWorld
+2 -2
View File
@@ -19,8 +19,8 @@ import ShapePicture
itemEquipPict :: IM.IntMap Item -> Creature -> DTree CItem -> SPic
itemEquipPict m cr itmtree
| Just i <- itm ^? itLocation . ilInvID
, Just esite <- itm ^? itLocation . ilEquipSite . _Just
| --Just i <- itm ^? itLocation . ilInvID
Just esite <- itm ^? itLocation . ilEquipSite . _Just
, Just attachpos <- equipAttachPos <$> itm ^? itType . ibtEquip
= equipPosition esite m cr attachpos (itemSPic itm)
| itm ^? itLocation . ilInvID == cr ^? crManipulation . manObject . imRootSelectedItem
+5 -5
View File
@@ -3,11 +3,11 @@ module Dodge.Item.Location.Initialize
--, initItemLocations
)
where
import NewInt
import Dodge.Data.LWorld
import Control.Lens
import qualified IntMapHelp as IM
import Data.Traversable
--import NewInt
--import Dodge.Data.LWorld
--import Control.Lens
--import qualified IntMapHelp as IM
--import Data.Traversable
--initItemLocations :: LWorld -> LWorld
----initItemLocations = initCrsItemLocations . initFlItemsLocations . initTusItemLocations
+7 -2
View File
@@ -27,11 +27,16 @@ import Dodge.Data.Universe
import qualified IntMapHelp as IM
import qualified Data.Map.Strict as M
import NewInt
import Data.Foldable
testStringInit :: Universe -> [String]
testStringInit u = map show (IM.keys $ u ^. uvWorld . cWorld . lWorld . items)
testStringInit u = map f (IM.elems $ u ^. uvWorld . cWorld . lWorld . items)
<> ["---"]
<> map show (IM.toList . fold $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv)
<> ["---"]
<> map show (IM.keys $ u ^. uvWorld . cWorld . lWorld . floorItems)
<> map show (u ^. uvWorld . hud . closeItems)
where
f itm = show (itm ^. itID . unNInt) <> ":"<> show (itm ^. itLocation)
-- map shortShow (u ^.. uvWorld . cWorld . lWorld . debris . each . to g)
-- where
-- g db = (pz,z,norm v)