Cleanup code, speed up radar sweeps

This commit is contained in:
2024-12-18 15:57:37 +00:00
parent 86d884ba01
commit 9bc9dd2a08
5 changed files with 10 additions and 21 deletions
+3 -3
View File
@@ -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
+5 -2
View File
@@ -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
View File
@@ -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
-12
View File
@@ -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)
+2 -2
View File
@@ -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