Implement targeting launcher shells using separate item
This commit is contained in:
@@ -77,14 +77,14 @@ data Creature = Creature
|
||||
, _crName :: String
|
||||
, _crStatistics :: CreatureStatistics
|
||||
, _crCamouflage :: CamouflageStatus
|
||||
, _crTargeting :: CreatureTargeting
|
||||
-- , _crTargeting :: CreatureTargeting
|
||||
}
|
||||
|
||||
--deriving (Eq, Show, Read) --Generic, Flat)
|
||||
|
||||
data CreatureTargeting = CreatureTargeting
|
||||
{ _ctPos :: Maybe Point2
|
||||
, _ctType :: Maybe TargetType
|
||||
, _ctType :: Maybe TargetingType
|
||||
, _ctID :: Maybe Int
|
||||
, _ctActive :: Bool
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ data CraftType
|
||||
| TIMEMODULE
|
||||
| SIZEMODULE
|
||||
| GRAVITYMODULE
|
||||
| TARGETMODULE TargetType
|
||||
| TARGETMODULE TargetingType
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
--deriving (Eq, Ord, Show, Enum, Read) --Generic, Flat)
|
||||
@@ -90,13 +90,13 @@ data ItemBaseType
|
||||
| CRAFT CraftType
|
||||
| ATTACH {_ibtAttach :: AttachType}
|
||||
| AMMOMAG {_ibtAmmoMag :: AmmoMagType}
|
||||
| TARGETING {_ibtTargeting :: TargetingType}
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data AttachType
|
||||
= ZOOMSCOPE
|
||||
| TARGETATTACH {_ibtAttachTarget :: TargetType}
|
||||
| BULLETSYNTHESIZER
|
||||
| REMOTESCREEN
|
||||
| HOMINGMODULE
|
||||
@@ -130,7 +130,7 @@ data EquipItemType
|
||||
| INVISIBILITYEQUIPMENT EquipSite
|
||||
| BRAINHAT
|
||||
| HAT
|
||||
| TARGETINGHAT TargetType
|
||||
| TARGETINGHAT TargetingType
|
||||
| HEADLAMP
|
||||
| POWERLEGS
|
||||
| SPEEDLEGS
|
||||
@@ -208,7 +208,7 @@ data ItemModuleType
|
||||
| BULPAY BulletSpawn
|
||||
| BULBODY BulletEffect
|
||||
| BULTRAJ {_imtBulletTrajectoryType :: BulletTrajectoryType}
|
||||
| TARGET {_imtTargetType :: TargetType}
|
||||
| TARGET {_imtTargetType :: TargetingType}
|
||||
| INCENDLAS
|
||||
| SPLITLAS
|
||||
| STATICLAS
|
||||
|
||||
@@ -8,7 +8,7 @@ module Dodge.Data.Item.Targeting where
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
|
||||
data TargetType
|
||||
data TargetingType
|
||||
= TARGETLASER
|
||||
| TargetRBPress
|
||||
| TargetRBLine
|
||||
@@ -16,4 +16,4 @@ data TargetType
|
||||
| TargetCursor
|
||||
deriving (Eq, Ord, Show, Read, Enum, Bounded) --Generic, Flat)
|
||||
|
||||
deriveJSON defaultOptions ''TargetType
|
||||
deriveJSON defaultOptions ''TargetingType
|
||||
|
||||
@@ -57,7 +57,7 @@ data ItemUse
|
||||
}
|
||||
| EquipUse
|
||||
{ _equipEffect :: EquipEffect
|
||||
, _equipTargeting :: Maybe TargetType
|
||||
, _equipTargeting :: Maybe TargetingType
|
||||
}
|
||||
| CraftUse
|
||||
| -- {_useAmount :: ItAmount}
|
||||
|
||||
@@ -20,10 +20,16 @@ import Dodge.Data.Payload
|
||||
data ProjectileDraw = DrawShell | DrawRemoteShell | DrawDrone | DrawBlankProjectile
|
||||
deriving (Show, Eq, Ord, Enum, Bounded, Read) --Generic, Flat)
|
||||
|
||||
data ProjectileHoming
|
||||
= NoHoming
|
||||
| HomeUsingRemoteScreen {_phRemoteID :: NewInt ItmInt}
|
||||
| HomeUsingTargeting {_phTargetingID :: NewInt ItmInt}
|
||||
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
||||
|
||||
data ProjectileUpdate
|
||||
= ThrustPU {_pjuStart :: Int, _pjuEnd :: Int}
|
||||
| StartSpinPU {_pjuTime :: Int, _pjuCID :: Int, _pjuSpinAmound :: Int}
|
||||
| RemoteDirectionPU {_pjuStart :: Int, _pjuEnd :: Int, _pjuControllerID :: Maybe (NewInt ItmInt)}
|
||||
| RemoteDirectionPU {_pjuStart :: Int, _pjuEnd :: Int, _pjuControllerID :: ProjectileHoming}
|
||||
| ReduceSpinPU {_pjuReduceSpin :: Float}
|
||||
| DestroyPU {_pjuScreenID :: Maybe (NewInt ItmInt), _pjuTimer :: Int}
|
||||
| TimePU
|
||||
@@ -50,7 +56,9 @@ data GasCreate = CreatePoisonGas | CreateFlame
|
||||
|
||||
makeLenses ''ProjectileUpdate
|
||||
makeLenses ''AmmoType
|
||||
makeLenses ''ProjectileHoming
|
||||
deriveJSON defaultOptions ''GasFuel
|
||||
deriveJSON defaultOptions ''ProjectileHoming
|
||||
deriveJSON defaultOptions ''ProjectileDraw
|
||||
deriveJSON defaultOptions ''ProjectileUpdate
|
||||
deriveJSON defaultOptions ''GasCreate
|
||||
|
||||
@@ -31,7 +31,7 @@ module Dodge.Data.LWorld (
|
||||
module Dodge.Data.Machine,
|
||||
module Dodge.Data.Magnet,
|
||||
module Dodge.Data.Modification,
|
||||
module Dodge.Data.PathGraph,
|
||||
-- module Dodge.Data.PathGraph,
|
||||
module Dodge.Data.PosEvent,
|
||||
module Dodge.Data.PressPlate,
|
||||
module Dodge.Data.Projectile,
|
||||
@@ -77,7 +77,7 @@ import Dodge.Data.LinearShockwave
|
||||
import Dodge.Data.Machine
|
||||
import Dodge.Data.Magnet
|
||||
import Dodge.Data.Modification
|
||||
import Dodge.Data.PathGraph
|
||||
--import Dodge.Data.PathGraph
|
||||
import Dodge.Data.PosEvent
|
||||
import Dodge.Data.PressPlate
|
||||
import Dodge.Data.Projectile
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
module Dodge.Data.Laser where
|
||||
|
||||
import NewInt
|
||||
import Dodge.Data.Item.Location
|
||||
import Color
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -13,7 +15,7 @@ import Geometry.Data
|
||||
|
||||
data LaserType
|
||||
= DamageLaser {_laserTypeDamage :: Int}
|
||||
| TargetingLaser
|
||||
| TargetingLaser {_laserEmmiter :: NewInt ItmInt}
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data LaserStart = LaserStart
|
||||
|
||||
+10
-10
@@ -18,17 +18,17 @@ import Control.Lens
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
import Data.Graph.Inductive
|
||||
import Data.Map.Strict (Map)
|
||||
--import Data.Map.Strict (Map)
|
||||
import qualified Data.Set as Set
|
||||
import Geometry.Data
|
||||
|
||||
data PathGraph = PathGraph
|
||||
{ _pgGraph :: Gr Point2 PathEdge
|
||||
, _pgNodeMap :: Map Point2 Int
|
||||
, _pgNodeCount :: Int
|
||||
, _pgEdgeMap :: Map (V2 Point2) PathEdgeNodes
|
||||
}
|
||||
deriving (Eq, Show, Read) --, Generic)
|
||||
--data PathGraph = PathGraph
|
||||
-- { _pgGraph :: Gr Point2 PathEdge
|
||||
-- , _pgNodeMap :: Map Point2 Int
|
||||
-- , _pgNodeCount :: Int
|
||||
-- , _pgEdgeMap :: Map (V2 Point2) PathEdgeNodes
|
||||
-- }
|
||||
-- deriving (Eq, Show, Read) --, Generic)
|
||||
|
||||
data PathEdgeNodes = PathEdgeNodes
|
||||
{ _penStart :: Int
|
||||
@@ -59,11 +59,11 @@ data EdgeObstacle
|
||||
|
||||
--deriving instance (Flat (Gr Point2 PathEdge))
|
||||
|
||||
makeLenses ''PathGraph
|
||||
--makeLenses ''PathGraph
|
||||
makeLenses ''PathEdge
|
||||
makeLenses ''PathEdgeNodes
|
||||
deriveJSON defaultOptions ''EdgeObstacle
|
||||
deriveJSON defaultOptions ''PathEdge
|
||||
deriveJSON defaultOptions ''PathEdgeNodes
|
||||
deriveJSON defaultOptions ''Gr
|
||||
deriveJSON defaultOptions ''PathGraph
|
||||
--deriveJSON defaultOptions ''PathGraph
|
||||
|
||||
Reference in New Issue
Block a user