From a89b0c784fe25c27c80f15bce0b7d9384bc7aabe Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 20 Jul 2022 22:54:05 +0100 Subject: [PATCH] Start targeting refactor --- src/Dodge/Data.hs | 28 ++-------------------------- src/Dodge/Data/ItEffect.hs | 29 +++++++++++++++++++++++++++++ src/Dodge/Data/Targeting.hs | 7 +++++++ src/Dodge/Item/Weapon/Utility.hs | 2 +- 4 files changed, 39 insertions(+), 27 deletions(-) create mode 100644 src/Dodge/Data/Targeting.hs diff --git a/src/Dodge/Data.hs b/src/Dodge/Data.hs index 31adc16fd..3c6988797 100644 --- a/src/Dodge/Data.hs +++ b/src/Dodge/Data.hs @@ -10,6 +10,7 @@ circular imports are probably not a good idea. {-# LANGUAGE DerivingStrategies #-} module Dodge.Data ( module Dodge.Data + , module Dodge.Data.Targeting , module Dodge.Data.ItEffect , module Dodge.Data.Hammer , module Dodge.Data.Item.Use @@ -65,6 +66,7 @@ module Dodge.Data , module Dodge.Data.RadarBlip , module Dodge.Data.PathGraph ) where +import Dodge.Data.Targeting import Dodge.Data.ItEffect import Dodge.Data.Hammer import Dodge.Data.Item.Use @@ -442,31 +444,6 @@ data Targeting , _tgActive :: Bool } --- I believe this is called every frame, not sure when though -data ItEffect - = NoItEffect - | ItInvEffect - {_ieInv :: ItInvEffect --Item -> Creature -> World -> World - ,_ieCounter :: Int - } - | ItRewindEffect - {_ieInv :: ItInvEffect --Item -> Creature -> World -> World - ,_ieStoredWorlds :: [World] - } - | ItEffect - {_ieInv :: ItInvEffect --Item -> Creature -> World -> World - ,_ieFloor :: ItFloorEffect --Int -> World -> World - ,_ieCounter :: Int - } - | ItInvEffectID - {_ieInv :: ItInvEffect --Item -> Creature -> World -> World - ,_ieMID :: Maybe Int - } -- the duplication of ieMID may cause errors... - | ItInvEffectDrop - { _ieInv :: ItInvEffect --Item -> Creature -> World -> World - , _ieDrop :: ItDropEffect --Item -> Creature -> World -> World - , _ieMID :: Maybe Int - } data IntID a = IntID Int a data WorldBeams = WorldBeams @@ -1227,7 +1204,6 @@ makeLenses ''CreatureState makeLenses ''World makeLenses ''Creature makeLenses ''Item -makeLenses ''ItEffect makeLenses ''FloorItem makeLenses ''TweakParam makeLenses ''Prop diff --git a/src/Dodge/Data/ItEffect.hs b/src/Dodge/Data/ItEffect.hs index 2a8004cdb..63dc33d0c 100644 --- a/src/Dodge/Data/ItEffect.hs +++ b/src/Dodge/Data/ItEffect.hs @@ -1,4 +1,32 @@ +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE StrictData #-} module Dodge.Data.ItEffect where +import Control.Lens +-- I believe this is called every frame, not sure when though +data ItEffect + = NoItEffect + | ItInvEffect + {_ieInv :: ItInvEffect --Item -> Creature -> World -> World + ,_ieCounter :: Int + } + | ItRewindEffect + {_ieInv :: ItInvEffect --Item -> Creature -> World -> World +-- ,_ieStoredWorlds :: [World] + } + | ItEffect + {_ieInv :: ItInvEffect --Item -> Creature -> World -> World + ,_ieFloor :: ItFloorEffect --Int -> World -> World + ,_ieCounter :: Int + } + | ItInvEffectID + {_ieInv :: ItInvEffect --Item -> Creature -> World -> World + ,_ieMID :: Maybe Int + } -- the duplication of ieMID may cause errors... + | ItInvEffectDrop + { _ieInv :: ItInvEffect --Item -> Creature -> World -> World + , _ieDrop :: ItDropEffect --Item -> Creature -> World -> World + , _ieMID :: Maybe Int + } data ItInvEffect = NoInvEffect | RewindEffect @@ -9,3 +37,4 @@ data ItInvEffect = NoInvEffect | RemoveShieldWall data ItFloorEffect = NoFloorEffect data ItDropEffect = NoDropEffect +makeLenses ''ItEffect diff --git a/src/Dodge/Data/Targeting.hs b/src/Dodge/Data/Targeting.hs new file mode 100644 index 000000000..3a49a6db7 --- /dev/null +++ b/src/Dodge/Data/Targeting.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE StrictData #-} +module Dodge.Data.Targeting where + +data TargetUpdate = NoTargeting + +data TargetDraw = SquareTarget diff --git a/src/Dodge/Item/Weapon/Utility.hs b/src/Dodge/Item/Weapon/Utility.hs index 015c22b21..cab814cd8 100644 --- a/src/Dodge/Item/Weapon/Utility.hs +++ b/src/Dodge/Item/Weapon/Utility.hs @@ -20,7 +20,7 @@ rewindGun = defaultLeftItem { _wpMaxCharge = 250 , _wpCharge = 0 } - , _itEffect = ItRewindEffect RewindEffect [] + , _itEffect = ItRewindEffect RewindEffect-- [] , _itUse = defaultlUse & lUse .~ LRewind --useRewindGun & eqEq . eqSite .~ GoesOnChest