Cleanup code, speed up radar sweeps
This commit is contained in:
@@ -74,11 +74,11 @@ digraph {
|
||||
97 [shape=box
|
||||
,label="HELD {_ibtHeld = FLATSHIELD}"];
|
||||
107 [shape=box
|
||||
,label="EQUIP {_ibtEquip = AUTODETECTOR ITEMDETECTOR}"];
|
||||
,label="HELD {_ibtHeld = DETECTOR ITEMDETECTOR}"];
|
||||
110 [shape=box
|
||||
,label="EQUIP {_ibtEquip = AUTODETECTOR WALLDETECTOR}"];
|
||||
,label="HELD {_ibtHeld = DETECTOR WALLDETECTOR}"];
|
||||
112 [shape=box
|
||||
,label="EQUIP {_ibtEquip = AUTODETECTOR CREATUREDETECTOR}"];
|
||||
,label="HELD {_ibtHeld = DETECTOR CREATUREDETECTOR}"];
|
||||
114 [shape=box
|
||||
,label="HELD {_ibtHeld = TORCH}"];
|
||||
115 [shape=box
|
||||
|
||||
@@ -7,6 +7,7 @@ module Dodge.HeldUse (
|
||||
mcUseHeld,
|
||||
) where
|
||||
|
||||
import Dodge.RadarSweep
|
||||
import Color
|
||||
import Control.Monad
|
||||
import Data.Maybe
|
||||
@@ -19,7 +20,6 @@ import Dodge.Data.World
|
||||
import Dodge.Gas
|
||||
import Dodge.Inventory.Lock
|
||||
import Dodge.Item.HeldOffset
|
||||
import Dodge.Item.Weapon.Radar
|
||||
import Dodge.Item.Weapon.Shatter
|
||||
import Dodge.Item.Weapon.TriggerType
|
||||
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 itm cr w = fromMaybe w $ do
|
||||
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 mzid mz itm cr w = fromMaybe w $ do
|
||||
|
||||
@@ -2,13 +2,11 @@
|
||||
module Dodge.Item.Weapon (
|
||||
module Dodge.Item.Weapon.TriggerType,
|
||||
module Dodge.Item.Weapon.ExtraEffect,
|
||||
module Dodge.Item.Weapon.Radar,
|
||||
module Dodge.Item.Weapon.Utility,
|
||||
module Dodge.Item.Weapon.Drone,
|
||||
) where
|
||||
|
||||
import Dodge.Item.Weapon.Drone
|
||||
import Dodge.Item.Weapon.ExtraEffect
|
||||
import Dodge.Item.Weapon.Radar
|
||||
import Dodge.Item.Weapon.TriggerType
|
||||
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 =
|
||||
cWorld . lWorld . radarSweeps
|
||||
.:~ RadarSweep
|
||||
{ _rsTimer = 100
|
||||
{ _rsTimer = 50
|
||||
, _rsRad = 0
|
||||
, _rsPos = _crPos cr
|
||||
, _rsObject = ob
|
||||
@@ -39,7 +39,7 @@ updateRadarSweep w pt
|
||||
putBlips = cWorld . lWorld . radarBlips .++~ blips
|
||||
blips = map bf circPoints
|
||||
circPoints = blipsF p r w
|
||||
r = fromIntegral (400 - x * 4)
|
||||
r = fromIntegral (400 - x * 8)
|
||||
|
||||
findBlips :: ObjectType -> Point2 -> Float -> World -> [Point2]
|
||||
findBlips ob = case ob of
|
||||
|
||||
Reference in New Issue
Block a user