Fix at least one bug from item refactor, more remain
This commit is contained in:
+30
-28
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user