Add visuals for wrist equipment

This commit is contained in:
2022-05-22 23:23:29 +01:00
parent b83392d441
commit 1c038b79be
8 changed files with 108 additions and 22 deletions
+10 -3
View File
@@ -5,6 +5,7 @@ import Dodge.Item.Weapon.InventoryDisplay
import Dodge.Default
import Dodge.Default.Wall
import Dodge.Creature.Test
import Dodge.Creature.HandPos
import Dodge.Wall
import Dodge.Magnet
import Picture
@@ -66,9 +67,15 @@ frontArmour = defaultEquipment
, _itID = Nothing
}
pictureOnEquip :: SPic -> Creature -> Item -> SPic
pictureOnEquip sp cr itm = case _itInvPos itm of
Just i | isJust (cr ^? crInvEquipped . ix i) -> sp
_ -> mempty
pictureOnEquip sp cr itm = fromMaybe mempty $ do
i <- _itInvPos itm
epos <- cr^? crInvEquipped . ix i
return $ equipPosition epos cr sp
equipPosition :: EquipPosition -> Creature -> SPic -> SPic
equipPosition epos cr sh = case epos of
OnLeftWrist -> translateToLeftHand cr sh
OnRightWrist -> translateToRightHand cr $ mirrorSPxz sh
_ -> sh
flatShield :: Item
flatShield = defaultEquipment
+7 -1
View File
@@ -3,6 +3,7 @@ import Dodge.Data
--import Dodge.Picture.Layer
import Dodge.Default
import Dodge.Item.Draw
import Dodge.Item.Equipment
import Dodge.Item.Weapon.TriggerType
import Dodge.Item.Weapon.ExtraEffect
import Dodge.Item.Weapon.UseEffect
@@ -12,6 +13,7 @@ import Dodge.Default.Weapon
import Geometry
import Picture
import Shape
import ShapePicture
import Control.Lens
@@ -68,7 +70,11 @@ autoRadar :: Item
autoRadar = defaultEquipment
{ _itType = RADAR
, _itName = "AUTORADAR"
, _itEquipPict = \_ _ -> (,) emptySH blank
, _itEquipPict = pictureOnEquip $ noPic (colorSH yellow $ translateSH (V3 0 4 (-4)) $ upperPrismPoly 3
$ rectWH 2 2)
, _itEffect = autoRadarEffect
, _itID = Nothing
} & itUse . eqSite .~ GoesOnWrist
shapeForWrist :: Shape -> Creature -> Item -> SPic
shapeForWrist = pictureOnEquip . noPic . translateSH (V3 0 4 (-4))