Vleanup
This commit is contained in:
+6
-56
@@ -1,90 +1,48 @@
|
||||
module Dodge.Euse (
|
||||
createShieldWall,
|
||||
removeShieldWall,
|
||||
doItmCrWdWd,
|
||||
useE,
|
||||
) where
|
||||
|
||||
import Color
|
||||
--import Control.Monad
|
||||
import Data.Maybe
|
||||
import Dodge.Creature.HandPos
|
||||
import Dodge.Creature.Test
|
||||
import Dodge.Data.ComposedItem
|
||||
import Dodge.Data.DoubleTree
|
||||
import Dodge.Data.Equipment.Misc
|
||||
import Dodge.Data.World
|
||||
import Dodge.Default.Wall
|
||||
import Dodge.Item.HeldOffset
|
||||
import Dodge.Item.Location
|
||||
import Dodge.Wall.Create
|
||||
import Dodge.Wall.Delete
|
||||
import Dodge.Wall.ForceField
|
||||
import Dodge.Wall.Move
|
||||
import Geometry
|
||||
import qualified IntMapHelp as IM
|
||||
import LensHelp
|
||||
|
||||
doItmCrWdWd :: ItmCrWdWd -> Item -> Creature -> World -> World
|
||||
doItmCrWdWd x itm cr = case x of
|
||||
-- (ECamouflage vis) -> overCID (crCamouflage .~ vis) itm cr
|
||||
EonWristShield -> onEquipWristShield itm cr
|
||||
EoffWristShield -> onRemoveWristShield itm cr
|
||||
_ -> id
|
||||
|
||||
useE :: LocationLDT ItemLink ComposedItem -> Creature -> World -> World
|
||||
useE loc cr = case eo of
|
||||
-- Nothing -> id
|
||||
-- Just EDoNothing -> id
|
||||
--Just (EMagShield mt)
|
||||
EQUIP (MAGSHIELD mt) -> useMagShield mt itm cr
|
||||
--Just EWristShield
|
||||
EQUIP WRISTARMOUR -> setWristShieldPos itm cr
|
||||
--Just EHeadLamp
|
||||
EQUIP HEADLAMP -> createHeadLamp itm cr
|
||||
_ -> id
|
||||
where
|
||||
itm = loc ^. locLDT . ldtValue . _1
|
||||
eo = itm ^. itType
|
||||
--eo = itm ^? itUse . uequipEffect . eeUse
|
||||
|
||||
-- this should probably drain energy
|
||||
useMagShield :: MagnetBuBu -> Item -> Creature -> World -> World
|
||||
useMagShield mt _ cr w = w & cWorld . lWorld . magnets .:~ themagnet
|
||||
where
|
||||
themagnet =
|
||||
Magnet
|
||||
useMagShield mt _ cr w =
|
||||
w & cWorld . lWorld . magnets
|
||||
.:~ Magnet
|
||||
{ _mgPos = _crPos cr
|
||||
--, _mgField = MagnetBuBuCurveAroundField 50 200
|
||||
, _mgField = mt
|
||||
, --, _mgField = MagnetBuBuCurveAroundField 50 200
|
||||
_mgField = mt
|
||||
}
|
||||
|
||||
onEquipWristShield :: Item -> Creature -> World -> World
|
||||
onEquipWristShield itm cr w =
|
||||
w
|
||||
-- & pointerToItem itm . itUse . uequipEffect . eeParams .~ EquipID i
|
||||
& pointerToItem itm . itParams .~ ItemParamID {_itParamID = i}
|
||||
& cWorld . lWorld . walls . at i ?~ forceField{_wlID = i}
|
||||
& setWristShieldPos (itm
|
||||
-- & itUse . uequipEffect . eeParams .~ EquipID i
|
||||
& itParams .~ ItemParamID {_itParamID = i}
|
||||
) cr
|
||||
where
|
||||
i = IM.newKey (w ^. cWorld . lWorld . walls)
|
||||
|
||||
onRemoveWristShield :: Item -> Creature -> World -> World
|
||||
onRemoveWristShield itm _ =
|
||||
--(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall
|
||||
(pointerToItem itm . itParams .~ NoParams) . mremovewall
|
||||
where
|
||||
mremovewall = fromMaybe id $ do
|
||||
--i <- itm ^? itUse . uequipEffect . eeParams . eparamID
|
||||
i <- itm ^? itParams . itParamID
|
||||
return $ deleteWallID i
|
||||
|
||||
setWristShieldPos :: Item -> Creature -> World -> World
|
||||
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
|
||||
where
|
||||
--i = _eparamID $ _eeParams $ _uequipEffect $ _itUse itm
|
||||
i = _itParamID $ _itParams itm
|
||||
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
|
||||
invid = _ilInvID (_itLocation itm)
|
||||
@@ -148,11 +106,3 @@ createHeadLamp _ cr =
|
||||
((_crPos cr `v2z` 0) +.+.+ rotate3 (_crDir cr) (translatePointToHead cr (V3 5 0 3)))
|
||||
200
|
||||
0.7
|
||||
|
||||
-- cWorld . lWorld . tempLightSources
|
||||
-- .:~ tlsTimeRadColPos
|
||||
-- 1
|
||||
-- 200
|
||||
-- 0.7
|
||||
-- ((_crPos cr `v2z` 0) +.+.+ rotate3 (_crDir cr) (translatePointToHead cr (V3 5 0 3)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user