Commit before perhaps rethinking item structure
This commit is contained in:
@@ -43,7 +43,7 @@ data ItemStructuralFunction
|
|||||||
| JoystickSF
|
| JoystickSF
|
||||||
| RemoteDetonatorSF
|
| RemoteDetonatorSF
|
||||||
| SmokeReducerSF
|
| SmokeReducerSF
|
||||||
| UncomposableIsolateSF
|
| NoSF
|
||||||
| AmmoModifierSF AmmoType
|
| AmmoModifierSF AmmoType
|
||||||
| AmmoTargetingSF AmmoType
|
| AmmoTargetingSF AmmoType
|
||||||
| AmmoPayloadSF AmmoType
|
| AmmoPayloadSF AmmoType
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ import Data.Aeson.TH
|
|||||||
import Dodge.Data.Bullet
|
import Dodge.Data.Bullet
|
||||||
|
|
||||||
data BulletMod
|
data BulletMod
|
||||||
= -- BulletModTrajectory { _bmTrajectory :: BulletTrajectoryType}
|
= BulletModPayload {_bmPayload :: BulletPayload}
|
||||||
BulletModPayload {_bmPayload :: BulletPayload}
|
|
||||||
| BulletModEffect {_bmEffect :: BulletEffect}
|
| BulletModEffect {_bmEffect :: BulletEffect}
|
||||||
deriving (Eq, Ord, Show, Read)
|
deriving (Eq, Ord, Show, Read)
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ data ItemType
|
|||||||
| AMMOMAG {_ibtAmmoMag :: AmmoMagType}
|
| AMMOMAG {_ibtAmmoMag :: AmmoMagType}
|
||||||
| TARGETING {_ibtTargeting :: TargetingType}
|
| TARGETING {_ibtTargeting :: TargetingType}
|
||||||
| BULLETMOD {_ibtBulletMod :: BulletMod}
|
| BULLETMOD {_ibtBulletMod :: BulletMod}
|
||||||
|
| STICKYMOD
|
||||||
deriving (Eq, Ord, Show, Read)
|
deriving (Eq, Ord, Show, Read)
|
||||||
|
|
||||||
data CraftType
|
data CraftType
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ itemFromBase = \case
|
|||||||
AMMOMAG t -> itemFromAmmoMag t
|
AMMOMAG t -> itemFromAmmoMag t
|
||||||
TARGETING tt -> targetingScope tt
|
TARGETING tt -> targetingScope tt
|
||||||
BULLETMOD bm -> bulletModule bm
|
BULLETMOD bm -> bulletModule bm
|
||||||
|
STICKYMOD -> stickyMod
|
||||||
|
|
||||||
itemFromAmmoMag :: AmmoMagType -> Item
|
itemFromAmmoMag :: AmmoMagType -> Item
|
||||||
itemFromAmmoMag at = case at of
|
itemFromAmmoMag at = case at of
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ itemBaseName = \case
|
|||||||
TARGETING tt -> show tt
|
TARGETING tt -> show tt
|
||||||
BULLETMOD (BulletModPayload btt) -> show btt
|
BULLETMOD (BulletModPayload btt) -> show btt
|
||||||
BULLETMOD (BulletModEffect btt) -> show btt
|
BULLETMOD (BulletModEffect btt) -> show btt
|
||||||
|
STICKYMOD -> "STICKYMOD"
|
||||||
|
|
||||||
showAttachItem :: AttachType -> String
|
showAttachItem :: AttachType -> String
|
||||||
showAttachItem t = case t of
|
showAttachItem t = case t of
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ itemSPic it = case it ^. itType of
|
|||||||
AMMOMAG amt -> ammoMagSPic it amt
|
AMMOMAG amt -> ammoMagSPic it amt
|
||||||
TARGETING{} -> defSPic
|
TARGETING{} -> defSPic
|
||||||
BULLETMOD{} -> defSPic
|
BULLETMOD{} -> defSPic
|
||||||
|
STICKYMOD -> defSPic
|
||||||
|
|
||||||
craftItemSPic :: CraftType -> Shape
|
craftItemSPic :: CraftType -> Shape
|
||||||
craftItemSPic = \case
|
craftItemSPic = \case
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import Dodge.DoubleTree
|
|||||||
import Dodge.Item.Orientation
|
import Dodge.Item.Orientation
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import ListHelp
|
import ListHelp
|
||||||
|
import qualified Data.Set as S
|
||||||
|
|
||||||
tryAttachItems ::
|
tryAttachItems ::
|
||||||
LabelDoubleTree ItemLink ComposedItem ->
|
LabelDoubleTree ItemLink ComposedItem ->
|
||||||
@@ -108,7 +109,7 @@ itemToFunction itm = case itm ^. itType of
|
|||||||
| Just amtype <- itm ^? itConsumables . magType
|
| Just amtype <- itm ^? itConsumables . magType
|
||||||
, Just _ <- itm ^? itLocation . ilEquipSite . _Just ->
|
, Just _ <- itm ^? itLocation . ilEquipSite . _Just ->
|
||||||
AmmoMagSF amtype
|
AmmoMagSF amtype
|
||||||
AMMOMAG{} -> maybe UncomposableIsolateSF AmmoMagSF $ itm ^? itConsumables . magType
|
AMMOMAG{} -> maybe NoSF AmmoMagSF $ itm ^? itConsumables . magType
|
||||||
ATTACH REMOTESCREEN -> RemoteScreenSF
|
ATTACH REMOTESCREEN -> RemoteScreenSF
|
||||||
ATTACH JOYSTICK -> JoystickSF
|
ATTACH JOYSTICK -> JoystickSF
|
||||||
ATTACH REMOTEDETONATOR -> RemoteDetonatorSF
|
ATTACH REMOTEDETONATOR -> RemoteDetonatorSF
|
||||||
@@ -124,7 +125,12 @@ itemToFunction itm = case itm ^. itType of
|
|||||||
EQUIP WRIST_ECG -> TriggerSF
|
EQUIP WRIST_ECG -> TriggerSF
|
||||||
EQUIP{} -> EquipmentPlatformSF
|
EQUIP{} -> EquipmentPlatformSF
|
||||||
ATTACH SHELLPAYLOAD{} -> AmmoPayloadSF LauncherAmmo
|
ATTACH SHELLPAYLOAD{} -> AmmoPayloadSF LauncherAmmo
|
||||||
_ -> UncomposableIsolateSF
|
_ -> NoSF
|
||||||
|
|
||||||
|
structureToPotentialFunction
|
||||||
|
:: LabelDoubleTree ComposedItem ItemLink
|
||||||
|
-> S.Set ItemStructuralFunction
|
||||||
|
structureToPotentialFunction _ = mempty
|
||||||
|
|
||||||
baseCI :: Item -> ComposedItem
|
baseCI :: Item -> ComposedItem
|
||||||
baseCI itm = (itm, itemToFunction itm, itemBaseConnections itm)
|
baseCI itm = (itm, itemToFunction itm, itemBaseConnections itm)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ itemInvColor ci = case ci ^. _2 of
|
|||||||
JoystickSF -> azure
|
JoystickSF -> azure
|
||||||
RemoteDetonatorSF -> azure
|
RemoteDetonatorSF -> azure
|
||||||
SmokeReducerSF -> azure
|
SmokeReducerSF -> azure
|
||||||
UncomposableIsolateSF -> greyN 0.5
|
NoSF -> greyN 0.5
|
||||||
AmmoModifierSF{} -> orange
|
AmmoModifierSF{} -> orange
|
||||||
AmmoTargetingSF{} -> green
|
AmmoTargetingSF{} -> green
|
||||||
AmmoPayloadSF{} -> violet
|
AmmoPayloadSF{} -> violet
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
module Dodge.Item.Scope (
|
module Dodge.Item.Scope (
|
||||||
|
stickyMod,
|
||||||
shellModule,
|
shellModule,
|
||||||
zoomScope,
|
zoomScope,
|
||||||
targetingScope,
|
targetingScope,
|
||||||
@@ -36,6 +37,13 @@ targetingScope tt = defaultHeldItem
|
|||||||
homingModule :: Item
|
homingModule :: Item
|
||||||
homingModule = makeAttach HOMINGMODULE
|
homingModule = makeAttach HOMINGMODULE
|
||||||
|
|
||||||
|
stickyMod :: Item
|
||||||
|
stickyMod =
|
||||||
|
defaultHeldItem
|
||||||
|
& itType .~ STICKYMOD
|
||||||
|
& itUse .~ UseNothing
|
||||||
|
|
||||||
|
|
||||||
bulletModule :: BulletMod -> Item
|
bulletModule :: BulletMod -> Item
|
||||||
bulletModule bm =
|
bulletModule bm =
|
||||||
defaultHeldItem
|
defaultHeldItem
|
||||||
|
|||||||
@@ -94,8 +94,11 @@ shellCollisionCheck pj w
|
|||||||
time = _pjTimer pj
|
time = _pjTimer pj
|
||||||
oldPos = _pjPos pj
|
oldPos = _pjPos pj
|
||||||
|
|
||||||
|
-- note this doesn't take into account moving walls, which may break the
|
||||||
|
-- bouncing in some way
|
||||||
tryShellBounce :: (Point2, Either Creature Wall) -> Projectile -> World -> World
|
tryShellBounce :: (Point2, Either Creature Wall) -> Projectile -> World -> World
|
||||||
tryShellBounce (p, Right wl) pj w
|
tryShellBounce (p, Right wl) pj w
|
||||||
|
| Just GStick <- pj ^? pjType . gnHitEffect = w
|
||||||
| Just x <- pj ^? pjType . gnHitEffect . bounceTolerance =
|
| Just x <- pj ^? pjType . gnHitEffect . bounceTolerance =
|
||||||
if abs (dotV (pj ^. pjVel) (vNormal hitline)) < x
|
if abs (dotV (pj ^. pjVel) (vNormal hitline)) < x
|
||||||
then w & cWorld . lWorld . projectiles . ix (_pjID pj) . pjVel %~ reflectIn
|
then w & cWorld . lWorld . projectiles . ix (_pjID pj) . pjVel %~ reflectIn
|
||||||
|
|||||||
@@ -3824,7 +3824,7 @@ debugMenuOptions src/Dodge/Menu.hs 119;" f
|
|||||||
debugOn src/Dodge/Data/Config.hs 151;" f
|
debugOn src/Dodge/Data/Config.hs 151;" f
|
||||||
debugSelectCreatureList src/Dodge/Debug.hs 86;" f
|
debugSelectCreatureList src/Dodge/Debug.hs 86;" f
|
||||||
debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f
|
debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f
|
||||||
decTimMvVel src/Dodge/Projectile/Update.hs 181;" f
|
decTimMvVel src/Dodge/Projectile/Update.hs 184;" f
|
||||||
decodedtmap src/Dodge/Terminal.hs 205;" f
|
decodedtmap src/Dodge/Terminal.hs 205;" f
|
||||||
decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f
|
decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f
|
||||||
decomposeTree src/Dodge/Tree/Compose.hs 57;" f
|
decomposeTree src/Dodge/Tree/Compose.hs 57;" f
|
||||||
@@ -3927,7 +3927,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f
|
|||||||
destroyMcType src/Dodge/Machine/Destroy.hs 21;" f
|
destroyMcType src/Dodge/Machine/Destroy.hs 21;" f
|
||||||
destroyMount src/Dodge/Block.hs 104;" f
|
destroyMount src/Dodge/Block.hs 104;" f
|
||||||
destroyMounts src/Dodge/Block.hs 101;" f
|
destroyMounts src/Dodge/Block.hs 101;" f
|
||||||
destroyProjectile src/Dodge/Projectile/Update.hs 109;" f
|
destroyProjectile src/Dodge/Projectile/Update.hs 112;" f
|
||||||
detV src/Geometry/Vector.hs 93;" f
|
detV src/Geometry/Vector.hs 93;" f
|
||||||
detector src/Dodge/Item/Held/Utility.hs 41;" f
|
detector src/Dodge/Item/Held/Utility.hs 41;" f
|
||||||
detectorColor src/Dodge/Item/Draw/SPic.hs 434;" f
|
detectorColor src/Dodge/Item/Draw/SPic.hs 434;" f
|
||||||
@@ -4041,7 +4041,7 @@ doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f
|
|||||||
doTestDrawing src/Dodge/Render.hs 42;" f
|
doTestDrawing src/Dodge/Render.hs 42;" f
|
||||||
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
|
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
|
||||||
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
|
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
|
||||||
doThrust src/Dodge/Projectile/Update.hs 121;" f
|
doThrust src/Dodge/Projectile/Update.hs 124;" f
|
||||||
doTimeScroll src/Dodge/Update.hs 205;" f
|
doTimeScroll src/Dodge/Update.hs 205;" f
|
||||||
doTmTm src/Dodge/TmTm.hs 6;" f
|
doTmTm src/Dodge/TmTm.hs 6;" f
|
||||||
doTmWdWd src/Dodge/WorldEffect.hs 101;" f
|
doTmWdWd src/Dodge/WorldEffect.hs 101;" f
|
||||||
@@ -4248,7 +4248,7 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
|
|||||||
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
|
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
|
||||||
expireAndDamage src/Dodge/Bullet.hs 195;" f
|
expireAndDamage src/Dodge/Bullet.hs 195;" f
|
||||||
expireAndDamageFL src/Dodge/Flame.hs 47;" f
|
expireAndDamageFL src/Dodge/Flame.hs 47;" f
|
||||||
explodeShell src/Dodge/Projectile/Update.hs 189;" f
|
explodeShell src/Dodge/Projectile/Update.hs 192;" f
|
||||||
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f
|
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f
|
||||||
explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f
|
explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f
|
||||||
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
|
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
|
||||||
@@ -5129,7 +5129,7 @@ pipe src/Dodge/Item/Craftable.hs 32;" f
|
|||||||
pistol src/Dodge/Item/Held/Stick.hs 42;" f
|
pistol src/Dodge/Item/Held/Stick.hs 42;" f
|
||||||
pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f
|
pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f
|
||||||
pistolerRoom src/Dodge/Room/Room.hs 321;" f
|
pistolerRoom src/Dodge/Room/Room.hs 321;" f
|
||||||
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 166;" f
|
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 169;" f
|
||||||
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
|
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
|
||||||
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
|
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
|
||||||
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
|
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
|
||||||
@@ -6036,8 +6036,8 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f
|
|||||||
tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f
|
tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f
|
||||||
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f
|
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f
|
||||||
trySeedFromClipboard src/Dodge/Menu.hs 88;" f
|
trySeedFromClipboard src/Dodge/Menu.hs 88;" f
|
||||||
tryShellBounce src/Dodge/Projectile/Update.hs 97;" f
|
tryShellBounce src/Dodge/Projectile/Update.hs 99;" f
|
||||||
trySpinByCID src/Dodge/Projectile/Update.hs 148;" f
|
trySpinByCID src/Dodge/Projectile/Update.hs 151;" f
|
||||||
trySynthBullet src/Dodge/Creature/State.hs 204;" f
|
trySynthBullet src/Dodge/Creature/State.hs 204;" f
|
||||||
tryUseParent src/Dodge/Creature/State.hs 197;" f
|
tryUseParent src/Dodge/Creature/State.hs 197;" f
|
||||||
turnTo src/Dodge/Movement/Turn.hs 4;" f
|
turnTo src/Dodge/Movement/Turn.hs 4;" f
|
||||||
|
|||||||
Reference in New Issue
Block a user