Cleanup code, speed up radar sweeps
This commit is contained in:
@@ -74,11 +74,11 @@ digraph {
|
|||||||
97 [shape=box
|
97 [shape=box
|
||||||
,label="HELD {_ibtHeld = FLATSHIELD}"];
|
,label="HELD {_ibtHeld = FLATSHIELD}"];
|
||||||
107 [shape=box
|
107 [shape=box
|
||||||
,label="EQUIP {_ibtEquip = AUTODETECTOR ITEMDETECTOR}"];
|
,label="HELD {_ibtHeld = DETECTOR ITEMDETECTOR}"];
|
||||||
110 [shape=box
|
110 [shape=box
|
||||||
,label="EQUIP {_ibtEquip = AUTODETECTOR WALLDETECTOR}"];
|
,label="HELD {_ibtHeld = DETECTOR WALLDETECTOR}"];
|
||||||
112 [shape=box
|
112 [shape=box
|
||||||
,label="EQUIP {_ibtEquip = AUTODETECTOR CREATUREDETECTOR}"];
|
,label="HELD {_ibtHeld = DETECTOR CREATUREDETECTOR}"];
|
||||||
114 [shape=box
|
114 [shape=box
|
||||||
,label="HELD {_ibtHeld = TORCH}"];
|
,label="HELD {_ibtHeld = TORCH}"];
|
||||||
115 [shape=box
|
115 [shape=box
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ module Dodge.HeldUse (
|
|||||||
mcUseHeld,
|
mcUseHeld,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Dodge.RadarSweep
|
||||||
import Color
|
import Color
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
@@ -19,7 +20,6 @@ import Dodge.Data.World
|
|||||||
import Dodge.Gas
|
import Dodge.Gas
|
||||||
import Dodge.Inventory.Lock
|
import Dodge.Inventory.Lock
|
||||||
import Dodge.Item.HeldOffset
|
import Dodge.Item.HeldOffset
|
||||||
import Dodge.Item.Weapon.Radar
|
|
||||||
import Dodge.Item.Weapon.Shatter
|
import Dodge.Item.Weapon.Shatter
|
||||||
import Dodge.Item.Weapon.TriggerType
|
import Dodge.Item.Weapon.TriggerType
|
||||||
import Dodge.Projectile.Create
|
import Dodge.Projectile.Create
|
||||||
@@ -251,7 +251,10 @@ useLoadedAmmo itmtree cr (cme, w) (mzid, Just (mz, x, magtree)) = (,) (cme & cme
|
|||||||
itemDetectorEffect :: Item -> Creature -> World -> World
|
itemDetectorEffect :: Item -> Creature -> World -> World
|
||||||
itemDetectorEffect itm cr w = fromMaybe w $ do
|
itemDetectorEffect itm cr w = fromMaybe w $ do
|
||||||
DETECTOR dt <- itm ^? itType . ibtHeld
|
DETECTOR dt <- itm ^? itType . ibtHeld
|
||||||
return $ detectorEffect dt itm cr w
|
return $ case dt of
|
||||||
|
ITEMDETECTOR -> aRadarPulse ObItem cr w
|
||||||
|
CREATUREDETECTOR -> aRadarPulse ObCreature cr w
|
||||||
|
WALLDETECTOR -> aRadarPulse ObWall cr w
|
||||||
|
|
||||||
walkNozzle :: Int -> Muzzle -> Item -> Creature -> World -> World
|
walkNozzle :: Int -> Muzzle -> Item -> Creature -> World -> World
|
||||||
walkNozzle mzid mz itm cr w = fromMaybe w $ do
|
walkNozzle mzid mz itm cr w = fromMaybe w $ do
|
||||||
|
|||||||
@@ -2,13 +2,11 @@
|
|||||||
module Dodge.Item.Weapon (
|
module Dodge.Item.Weapon (
|
||||||
module Dodge.Item.Weapon.TriggerType,
|
module Dodge.Item.Weapon.TriggerType,
|
||||||
module Dodge.Item.Weapon.ExtraEffect,
|
module Dodge.Item.Weapon.ExtraEffect,
|
||||||
module Dodge.Item.Weapon.Radar,
|
|
||||||
module Dodge.Item.Weapon.Utility,
|
module Dodge.Item.Weapon.Utility,
|
||||||
module Dodge.Item.Weapon.Drone,
|
module Dodge.Item.Weapon.Drone,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Dodge.Item.Weapon.Drone
|
import Dodge.Item.Weapon.Drone
|
||||||
import Dodge.Item.Weapon.ExtraEffect
|
import Dodge.Item.Weapon.ExtraEffect
|
||||||
import Dodge.Item.Weapon.Radar
|
|
||||||
import Dodge.Item.Weapon.TriggerType
|
import Dodge.Item.Weapon.TriggerType
|
||||||
import Dodge.Item.Weapon.Utility
|
import Dodge.Item.Weapon.Utility
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
module Dodge.Item.Weapon.Radar (
|
|
||||||
detectorEffect,
|
|
||||||
) where
|
|
||||||
|
|
||||||
import Dodge.Data.World
|
|
||||||
import Dodge.RadarSweep
|
|
||||||
|
|
||||||
detectorEffect :: Detector -> Item -> Creature -> World -> World
|
|
||||||
detectorEffect dt = case dt of
|
|
||||||
ITEMDETECTOR -> const (aRadarPulse ObItem)
|
|
||||||
CREATUREDETECTOR -> const (aRadarPulse ObCreature)
|
|
||||||
WALLDETECTOR -> const (aRadarPulse ObWall)
|
|
||||||
@@ -16,7 +16,7 @@ aRadarPulse :: ObjectType -> Creature -> World -> World
|
|||||||
aRadarPulse ob cr =
|
aRadarPulse ob cr =
|
||||||
cWorld . lWorld . radarSweeps
|
cWorld . lWorld . radarSweeps
|
||||||
.:~ RadarSweep
|
.:~ RadarSweep
|
||||||
{ _rsTimer = 100
|
{ _rsTimer = 50
|
||||||
, _rsRad = 0
|
, _rsRad = 0
|
||||||
, _rsPos = _crPos cr
|
, _rsPos = _crPos cr
|
||||||
, _rsObject = ob
|
, _rsObject = ob
|
||||||
@@ -39,7 +39,7 @@ updateRadarSweep w pt
|
|||||||
putBlips = cWorld . lWorld . radarBlips .++~ blips
|
putBlips = cWorld . lWorld . radarBlips .++~ blips
|
||||||
blips = map bf circPoints
|
blips = map bf circPoints
|
||||||
circPoints = blipsF p r w
|
circPoints = blipsF p r w
|
||||||
r = fromIntegral (400 - x * 4)
|
r = fromIntegral (400 - x * 8)
|
||||||
|
|
||||||
findBlips :: ObjectType -> Point2 -> Float -> World -> [Point2]
|
findBlips :: ObjectType -> Point2 -> Float -> World -> [Point2]
|
||||||
findBlips ob = case ob of
|
findBlips ob = case ob of
|
||||||
|
|||||||
Reference in New Issue
Block a user