Add visuals for legs equipment

This commit is contained in:
2022-05-22 23:55:10 +01:00
parent 1c038b79be
commit b71726d1ca
3 changed files with 27 additions and 3 deletions
+22
View File
@@ -49,6 +49,28 @@ translateToLeftHand cr
sLen = _strideLength $ _crStance cr
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
translateToLeftLeg :: Creature -> SPic -> SPic
translateToLeftLeg cr = case cr ^? crStance . carriage of
Just (Walking sa LeftForward) -> translateSPf ( f sa) off
Just (Walking sa RightForward) -> translateSPf (-f sa) off
_ -> translateSPf 0 off
where
off = 5
sLen = _strideLength $ _crStance cr
f i = 6 * fromIntegral (sLen - i) / fromIntegral sLen
translateToRightLeg :: Creature -> SPic -> SPic
translateToRightLeg cr = case cr ^? crStance . carriage of
Just (Walking sa LeftForward) -> translateSPf (-f sa) (-off)
Just (Walking sa RightForward) -> translateSPf ( f sa) (-off)
_ -> translateSPf 0 (-off)
where
aFoot :: Shape
aFoot = upperPrismPoly 10 $ polyCirc 3 4
off = 5
sLen = _strideLength $ _crStance cr
f i = 6 * fromIntegral (sLen - i) / fromIntegral sLen
oneH :: Creature -> Bool
oneH = crInStance OneHand
+3
View File
@@ -75,6 +75,8 @@ equipPosition :: EquipPosition -> Creature -> SPic -> SPic
equipPosition epos cr sh = case epos of
OnLeftWrist -> translateToLeftHand cr sh
OnRightWrist -> translateToRightHand cr $ mirrorSPxz sh
OnLegs -> translateToLeftLeg cr sh <>
translateToRightLeg cr (mirrorSPxz sh)
_ -> sh
flatShield :: Item
@@ -199,6 +201,7 @@ powerLegs = defaultEquipment
{_eqUse = \_ _ -> id
,_eqSite = GoesOnLegs
}
, _itEquipPict = pictureOnEquip (noPic $ translateSH (V3 0 4 0) $ colorSH yellow $ upperPrismPoly 3 $ rectWH 2 2)
, _itEffect = NoItEffect
, _itID = Nothing
}
+2 -3
View File
@@ -60,7 +60,7 @@ autoSonar :: Item
autoSonar = defaultEquipment
{ _itType = RADAR
, _itName = "AUTOSONAR"
, _itEquipPict = \_ _ -> (,) emptySH blank
, _itEquipPict = shapeForWrist (colorSH red $ upperPrismPoly 3 $ rectWH 2 2)
, _itEffect = autoSonarEffect
, _itID = Nothing
} & itUse . eqSite .~ GoesOnWrist
@@ -70,8 +70,7 @@ autoRadar :: Item
autoRadar = defaultEquipment
{ _itType = RADAR
, _itName = "AUTORADAR"
, _itEquipPict = pictureOnEquip $ noPic (colorSH yellow $ translateSH (V3 0 4 (-4)) $ upperPrismPoly 3
$ rectWH 2 2)
, _itEquipPict = shapeForWrist (colorSH yellow $ upperPrismPoly 3 $ rectWH 2 2)
, _itEffect = autoRadarEffect
, _itID = Nothing
} & itUse . eqSite .~ GoesOnWrist