diff --git a/src/Dodge/Room/Start.hs b/src/Dodge/Room/Start.hs index e13f2c850..81f6e9c05 100644 --- a/src/Dodge/Room/Start.hs +++ b/src/Dodge/Room/Start.hs @@ -33,6 +33,9 @@ import LensHelp --import Data.Tree --import qualified Data.IntMap.Strict as IM +powerFakeout' :: RandomGen g => State g (MetaTree Room String) +powerFakeout' = tToBTree "powerFakeout'" <$> powerFakeout + powerFakeout :: RandomGen g => State g (Tree Room) powerFakeout = do ncor <- state $ randomR (0,2) @@ -42,28 +45,22 @@ powerFakeout = do ] roomwithmini <- pedestalRoom it randcors <- replicateM ncor $ shuffleLinks corridor - return $ ([ door + return $ treePost $ + [ corridor,door , roomwithmini , door ] ++ randcors ++ [ corridor & rmPmnts .:~ plRRpt 0 (PutFlIt shrinkGun) - , keyholeCorridor, corridor]) - `treeFromPost` cleatOnward door + , keyholeCorridor, corridor + ,cleatOnward door] startRoom :: RandomGen g => Int -> State g (MetaTree Room String) startRoom i = join (takeOne - [-- (,) (0.5::Float) ((chainUses <$> sequence [powerFakeout,fmap fst $weaponRoom i]) - -- <&> (,TreeSubLabelling "chainUses <$> sequence [powerFakeout,weaponRoom i]" Nothing)) - -- wat - -- rezBoxesWp >>= rToOnward "rezBoxesWp" --- attachOnward "startThenWeaponRoom" <$> preCritStart <*> weaponRoom i --- startThenWeaponRoom i --- rezBoxesWpCrit >>= rToOnward "rezBoxesWpCrit" --- runPastStart i >>= rToOnward ("runPastStart " ++ show i) - attachOnward "startThenCraft" <$> preCritStart <*> (startCrafts >>= roomsContaining []) --- startCrafts >>= roomsContaining' [] >>= preCritStart --- >>= rToOnward "startCrafts >>= roomsContaining [] >>= preCritStart" + [ attachOnward "startThenWeaponRoom" <$> preCritStart <*> weaponRoom i + , rezBoxesWpCrit >>= rToOnward "rezBoxesWpCrit" + , runPastStart i >>= rToOnward ("runPastStart " ++ show i) + , attachOnward "startThenCraft" <$> preCritStart <*> (startCrafts >>= roomsContaining []) ]) randomChallenges :: RandomGen g => State g (MetaTree Room String) randomChallenges = shootingRange @@ -92,7 +89,12 @@ rezBoxesThenWeaponRoom i = do return $ attachOnward "rezBoxesThenWeaponRoom" rboxes wroom preCritStart :: RandomGen g => State g (MetaTree Room String) -preCritStart = join $ takeOne [rezBoxes,rezBox'] +preCritStart = join $ takeOneWeighted + [10,10,(1::Float)] + [rezBoxes + ,rezBox' + ,attachOnward "rezBoxPowerFakeout" <$> rezBox' <*> powerFakeout' + ] startThenWeaponRoom :: RandomGen g => Int -> State g (MetaTree Room String) startThenWeaponRoom i = do