This commit is contained in:
2025-06-20 22:30:01 +01:00
parent 7e84dcf173
commit b45d6817f5
2 changed files with 3 additions and 6 deletions
-3
View File
@@ -23,15 +23,12 @@ damageCrWlID :: Damage -> CrWlID -> World -> World
damageCrWlID dam = \case
NothingID -> id
CrID cid -> cWorld . lWorld . creatures . ix cid . crDamage .:~ dam
--WlID wlid -> cWorld . lWorld . wallDamages %~ IM.insertWith (++) wlid [dam]
WlID wlid -> cWorld . lWorld . wallDamages . at wlid . non mempty .:~ dam
damageCrWl :: Damage -> Either Creature Wall -> World -> World
damageCrWl dam = \case
Left cr -> damageCrWlID dam (CrID (_crID cr))
Right wl -> damageCrWlID dam (WlID (_wlID wl))
--damageCrWl dt (Left cr) = cWorld . lWorld . creatures . ix (_crID cr) . crDamage .:~ dt
--damageCrWl dt (Right wl) = cWorld . lWorld . wallDamages %~ IM.insertWith (++) (_wlID wl) [dt]
-- could sort for damage amount as well
damageDirection :: [Damage] -> Maybe Float
+3 -3
View File
@@ -98,9 +98,9 @@ wlsHit sp ep
wlsHitRadial :: Point2 -> Float -> World -> [(Point2, Wall)]
wlsHitRadial p r = mapMaybe f . wlsNearCirc p r
where
f wl = uncurry (intersectSegSeg p (p -.- r *.* v)) (_wlLine wl) <&> (,wl)
f wl = uncurry (intersectSegSeg p (p - r *.* v)) (_wlLine wl) <&> (,wl)
where
v = normalizeV $ vNormal $ uncurry (-.-) $ _wlLine wl
v = normalizeV . vNormal . uncurry (-) $ _wlLine wl
crsHitRadial :: Point2 -> Float -> World -> [(Point2, Creature)]
crsHitRadial p r = mapMaybe f . crsNearCirc p r
@@ -108,4 +108,4 @@ crsHitRadial p r = mapMaybe f . crsNearCirc p r
f cr = do
let cp = _crPos cr
guard $ dist p cp < r + crRad (_crType cr)
return $ (cp + (1 + crRad (_crType cr)) *.* (cp - p), cr)
return (cp + (1 + crRad (_crType cr)) *.* (cp - p), cr)