Fix crsHitRadial, unify some radial damages
This commit is contained in:
@@ -13,6 +13,8 @@ module Dodge.WorldEvent.ThingsHit (
|
||||
crHit,
|
||||
) where
|
||||
|
||||
import Dodge.Creature.Radius
|
||||
import Control.Monad
|
||||
import Control.Lens
|
||||
import Data.Bifunctor
|
||||
import qualified Data.IntSet as IS
|
||||
@@ -103,9 +105,7 @@ wlsHitRadial p r = mapMaybe f . wlsNearCirc p r
|
||||
crsHitRadial :: Point2 -> Float -> World -> [(Point2, Creature)]
|
||||
crsHitRadial p r = mapMaybe f . crsNearCirc p r
|
||||
where
|
||||
f cr
|
||||
| dist hitpos p <= r = Just (hitpos, cr)
|
||||
| otherwise = Nothing
|
||||
where
|
||||
hitpos = cpos +.+ r *.* normalizeV (p -.- cpos)
|
||||
cpos = _crPos cr
|
||||
f cr = do
|
||||
let cp = _crPos cr
|
||||
guard $ dist p cp < r + crRad (_crType cr)
|
||||
return $ (cp + (1 + crRad (_crType cr)) *.* (cp - p), cr)
|
||||
|
||||
Reference in New Issue
Block a user