Add dimensions to all items
This commit is contained in:
@@ -309,7 +309,7 @@ sizeSelf x cr w
|
|||||||
| otherwise = Nothing
|
| otherwise = Nothing
|
||||||
where
|
where
|
||||||
cr1 = colCrWall w (cr {_crRad = 10* x})
|
cr1 = colCrWall w (cr {_crRad = 10* x})
|
||||||
cr2 = colCrWall w cr1
|
--cr2 = colCrWall w cr1
|
||||||
distR = 120
|
distR = 120
|
||||||
distortionBulge
|
distortionBulge
|
||||||
| _crRad cr < 10*x = raddist 1.9
|
| _crRad cr < 10*x = raddist 1.9
|
||||||
|
|||||||
@@ -346,6 +346,7 @@ data Item
|
|||||||
, _itHammer :: HammerPosition
|
, _itHammer :: HammerPosition
|
||||||
, _itAimStance :: AimStance
|
, _itAimStance :: AimStance
|
||||||
, _itCurseStatus :: CurseStatus
|
, _itCurseStatus :: CurseStatus
|
||||||
|
, _itDimension :: ItemDimension
|
||||||
}
|
}
|
||||||
| Craftable
|
| Craftable
|
||||||
{ _itName :: String
|
{ _itName :: String
|
||||||
@@ -359,6 +360,7 @@ data Item
|
|||||||
, _itInvColor :: Color
|
, _itInvColor :: Color
|
||||||
, _itAimStance :: AimStance
|
, _itAimStance :: AimStance
|
||||||
, _itCurseStatus :: CurseStatus
|
, _itCurseStatus :: CurseStatus
|
||||||
|
, _itDimension :: ItemDimension
|
||||||
}
|
}
|
||||||
| Equipment
|
| Equipment
|
||||||
{ _itName :: String
|
{ _itName :: String
|
||||||
@@ -376,6 +378,7 @@ data Item
|
|||||||
, _itHammer :: HammerPosition
|
, _itHammer :: HammerPosition
|
||||||
, _itAimStance :: AimStance
|
, _itAimStance :: AimStance
|
||||||
, _itCurseStatus :: CurseStatus
|
, _itCurseStatus :: CurseStatus
|
||||||
|
, _itDimension :: ItemDimension
|
||||||
}
|
}
|
||||||
| Throwable
|
| Throwable
|
||||||
{ _itName :: String
|
{ _itName :: String
|
||||||
@@ -403,6 +406,7 @@ data Item
|
|||||||
, _itScroll :: Float -> Creature -> Item -> Item
|
, _itScroll :: Float -> Creature -> Item -> Item
|
||||||
, _itAimStance :: AimStance
|
, _itAimStance :: AimStance
|
||||||
, _itCurseStatus :: CurseStatus
|
, _itCurseStatus :: CurseStatus
|
||||||
|
, _itDimension :: ItemDimension
|
||||||
}
|
}
|
||||||
| NoItem
|
| NoItem
|
||||||
data CurseStatus = Uncursed | UndroppableIdentified | UndroppableUnidentified
|
data CurseStatus = Uncursed | UndroppableIdentified | UndroppableUnidentified
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ This module contains prototypical data structures.
|
|||||||
-}
|
-}
|
||||||
module Dodge.Default where
|
module Dodge.Default where
|
||||||
import Dodge.Item.Weapon.ExtraEffect
|
import Dodge.Item.Weapon.ExtraEffect
|
||||||
|
import Dodge.Default.Weapon
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.Picture.Layer
|
import Dodge.Picture.Layer
|
||||||
@@ -145,6 +146,7 @@ defaultEquipment = Equipment
|
|||||||
, _itInvColor = yellow
|
, _itInvColor = yellow
|
||||||
, _itInvDisplay = _itName
|
, _itInvDisplay = _itName
|
||||||
, _itAimStance = LeaveHolstered
|
, _itAimStance = LeaveHolstered
|
||||||
|
, _itDimension = defaultItemDimension
|
||||||
}
|
}
|
||||||
defaultItZoom :: ItZoom
|
defaultItZoom :: ItZoom
|
||||||
defaultItZoom = ItZoom 20 0.2 1
|
defaultItZoom = ItZoom 20 0.2 1
|
||||||
@@ -164,6 +166,7 @@ defaultConsumable = Consumable
|
|||||||
, _itEffect = wpRecock
|
, _itEffect = wpRecock
|
||||||
, _itHammer = HammerUp
|
, _itHammer = HammerUp
|
||||||
, _itAimStance = LeaveHolstered
|
, _itAimStance = LeaveHolstered
|
||||||
|
, _itDimension = defaultItemDimension
|
||||||
}
|
}
|
||||||
defaultApplyDamage :: [DamageType] -> Creature -> (World -> World, Creature)
|
defaultApplyDamage :: [DamageType] -> Creature -> (World -> World, Creature)
|
||||||
defaultApplyDamage ds cr = (id, doPoisonDam $ foldl' (flip $ \d c -> snd $ applyIndividualDamage d c) cr ds')
|
defaultApplyDamage ds cr = (id, doPoisonDam $ foldl' (flip $ \d c -> snd $ applyIndividualDamage d c) cr ds')
|
||||||
@@ -199,6 +202,7 @@ defaultFlIt = FlIt {_flItRot=0,_flIt = defaultIt, _flItPos = V2 0 0, _flItID = 0
|
|||||||
defaultIt :: Item
|
defaultIt :: Item
|
||||||
defaultIt = Consumable
|
defaultIt = Consumable
|
||||||
{ _itIdentity = Medkit25
|
{ _itIdentity = Medkit25
|
||||||
|
, _itDimension = defaultItemDimension
|
||||||
, _itCurseStatus = Uncursed
|
, _itCurseStatus = Uncursed
|
||||||
, _itName = "defaultIt"
|
, _itName = "defaultIt"
|
||||||
, _itMaxStack = 3
|
, _itMaxStack = 3
|
||||||
|
|||||||
@@ -235,6 +235,7 @@ remoteBombUnarmedPic = color (dark $ dark orange) $ circleSolid 5
|
|||||||
pipe :: Item
|
pipe :: Item
|
||||||
pipe = Craftable
|
pipe = Craftable
|
||||||
{ _itIdentity = Generic
|
{ _itIdentity = Generic
|
||||||
|
, _itDimension = defaultItemDimension
|
||||||
, _itCurseStatus = Uncursed
|
, _itCurseStatus = Uncursed
|
||||||
, _itName = "PIPE"
|
, _itName = "PIPE"
|
||||||
, _itMaxStack = 3
|
, _itMaxStack = 3
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import Dodge.Picture.Layer
|
|||||||
import Dodge.WorldEvent.Explosion
|
import Dodge.WorldEvent.Explosion
|
||||||
import Dodge.Item.Weapon.TriggerType
|
import Dodge.Item.Weapon.TriggerType
|
||||||
import Dodge.Default
|
import Dodge.Default
|
||||||
|
import Dodge.Default.Weapon
|
||||||
import Dodge.Base
|
import Dodge.Base
|
||||||
import Dodge.Zone
|
import Dodge.Zone
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
@@ -24,6 +25,7 @@ import qualified Data.IntMap.Strict as IM
|
|||||||
grenade :: Item
|
grenade :: Item
|
||||||
grenade = Throwable
|
grenade = Throwable
|
||||||
{ _itName = "GRENADE " ++ show fuseTime
|
{ _itName = "GRENADE " ++ show fuseTime
|
||||||
|
, _itDimension = defaultItemDimension
|
||||||
, _itCurseStatus = Uncursed
|
, _itCurseStatus = Uncursed
|
||||||
, _itIdentity = Grenade
|
, _itIdentity = Grenade
|
||||||
, _itMaxStack = 8
|
, _itMaxStack = 8
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import Dodge.Default.Room
|
|||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
--import Dodge.LightSources.Lamp
|
--import Dodge.LightSources.Lamp
|
||||||
import Dodge.Placement.Instance
|
import Dodge.Placement.Instance
|
||||||
|
import Dodge.PlacementSpot
|
||||||
import Geometry
|
import Geometry
|
||||||
import Tile
|
import Tile
|
||||||
|
|
||||||
@@ -20,6 +21,7 @@ corridor = defaultRoom
|
|||||||
, _rmPmnts = [ spanLightI (V2 0 40) (V2 40 40) ]
|
, _rmPmnts = [ spanLightI (V2 0 40) (V2 40 40) ]
|
||||||
, _rmBound = [ rectNSWE 50 30 0 40 ]
|
, _rmBound = [ rectNSWE 50 30 0 40 ]
|
||||||
, _rmFloor = [makeTileFromPoly poly 2]
|
, _rmFloor = [makeTileFromPoly poly 2]
|
||||||
|
, _rmRandPSs = [psRandRanges (10,30) (30,60) (0,2*pi)]
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
poly = rectNSWE 80 0 0 40
|
poly = rectNSWE 80 0 0 40
|
||||||
|
|||||||
+11
-9
@@ -33,26 +33,28 @@ import System.Random
|
|||||||
minigunfakeout :: RandomGen g => State g (Tree (Either Room Room))
|
minigunfakeout :: RandomGen g => State g (Tree (Either Room Room))
|
||||||
minigunfakeout = do
|
minigunfakeout = do
|
||||||
rcol <- rezColor
|
rcol <- rezColor
|
||||||
ncor <- state $ randomR (1,3)
|
ncor <- state $ randomR (0,2)
|
||||||
roomwithmini <- randomiseAllLinks $ roomRectAutoLinks 150 150
|
roomwithmini <- randomiseAllLinks $ roomRectAutoLinks 150 150
|
||||||
& rmPmnts %~ ([plRRpt 0 (PutFlIt miniGun),plRRpt 0 (PutFlIt shrinkGun)]++)
|
& rmPmnts %~ (plRRpt 0 (PutFlIt miniGun):)
|
||||||
|
randcors <- replicateM ncor $ (fmap Left . randomiseOutLinks) corridor
|
||||||
return $ ([Left $ rezBox rcol
|
return $ ([Left $ rezBox rcol
|
||||||
,Left door
|
,Left door
|
||||||
,Left roomwithmini
|
,Left roomwithmini
|
||||||
,Left door
|
,Left door
|
||||||
]
|
]
|
||||||
++ replicate ncor (Left corridor)
|
++ randcors
|
||||||
++ [Left keyholeCorridor,Left corridor])
|
++ [Left $ corridor & rmPmnts %~ ( plRRpt 0 (PutFlIt shrinkGun) :)
|
||||||
|
,Left keyholeCorridor,Left corridor])
|
||||||
`treeFromPost` Right door
|
`treeFromPost` Right door
|
||||||
|
|
||||||
startRoom :: RandomGen g => State g (Tree (Either Room Room))
|
startRoom :: RandomGen g => State g (Tree (Either Room Room))
|
||||||
startRoom = join $ takeOne
|
startRoom = join $ takeOne
|
||||||
[ minigunfakeout
|
[ minigunfakeout
|
||||||
--, rezBoxesWp
|
, rezBoxesWp
|
||||||
--, rezBoxesThenWeaponRoom
|
, rezBoxesThenWeaponRoom
|
||||||
--, rezBoxThenWeaponRoom
|
, rezBoxThenWeaponRoom
|
||||||
--, rezBoxesWpCrit
|
, rezBoxesWpCrit
|
||||||
--, runPastStart
|
, runPastStart
|
||||||
]
|
]
|
||||||
|
|
||||||
runPastStart :: RandomGen g => State g (Tree (Either Room Room))
|
runPastStart :: RandomGen g => State g (Tree (Either Room Room))
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ pushOutFromWall rad cp2 (wp1,wp2)
|
|||||||
-- isOnWall = circOnSeg wp1 wp2 cp2 rad
|
-- isOnWall = circOnSeg wp1 wp2 cp2 rad
|
||||||
|
|
||||||
pushOutFromCorners :: Float -> [(Point2,Point2)] -> Point2 -> Point2
|
pushOutFromCorners :: Float -> [(Point2,Point2)] -> Point2 -> Point2
|
||||||
pushOutFromCorners r ls p = foldr (intersectCirclePoint r) p (map fst ls)
|
pushOutFromCorners r ls p = foldr (intersectCirclePoint r . fst) p ls
|
||||||
|
|
||||||
--pushOutFromCorners' :: World -> Creature -> Creature
|
--pushOutFromCorners' :: World -> Creature -> Creature
|
||||||
--pushOutFromCorners' w cr = cr & crPos .~ newPos
|
--pushOutFromCorners' w cr = cr & crPos .~ newPos
|
||||||
|
|||||||
Reference in New Issue
Block a user