Add visuals for legs equipment
This commit is contained in:
@@ -49,6 +49,28 @@ translateToLeftHand cr
|
|||||||
sLen = _strideLength $ _crStance cr
|
sLen = _strideLength $ _crStance cr
|
||||||
f i = negate 2 + negate 6 * fromIntegral (sLen - i) / fromIntegral sLen
|
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 :: Creature -> Bool
|
||||||
oneH = crInStance OneHand
|
oneH = crInStance OneHand
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,8 @@ equipPosition :: EquipPosition -> Creature -> SPic -> SPic
|
|||||||
equipPosition epos cr sh = case epos of
|
equipPosition epos cr sh = case epos of
|
||||||
OnLeftWrist -> translateToLeftHand cr sh
|
OnLeftWrist -> translateToLeftHand cr sh
|
||||||
OnRightWrist -> translateToRightHand cr $ mirrorSPxz sh
|
OnRightWrist -> translateToRightHand cr $ mirrorSPxz sh
|
||||||
|
OnLegs -> translateToLeftLeg cr sh <>
|
||||||
|
translateToRightLeg cr (mirrorSPxz sh)
|
||||||
_ -> sh
|
_ -> sh
|
||||||
|
|
||||||
flatShield :: Item
|
flatShield :: Item
|
||||||
@@ -199,6 +201,7 @@ powerLegs = defaultEquipment
|
|||||||
{_eqUse = \_ _ -> id
|
{_eqUse = \_ _ -> id
|
||||||
,_eqSite = GoesOnLegs
|
,_eqSite = GoesOnLegs
|
||||||
}
|
}
|
||||||
|
, _itEquipPict = pictureOnEquip (noPic $ translateSH (V3 0 4 0) $ colorSH yellow $ upperPrismPoly 3 $ rectWH 2 2)
|
||||||
, _itEffect = NoItEffect
|
, _itEffect = NoItEffect
|
||||||
, _itID = Nothing
|
, _itID = Nothing
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ autoSonar :: Item
|
|||||||
autoSonar = defaultEquipment
|
autoSonar = defaultEquipment
|
||||||
{ _itType = RADAR
|
{ _itType = RADAR
|
||||||
, _itName = "AUTOSONAR"
|
, _itName = "AUTOSONAR"
|
||||||
, _itEquipPict = \_ _ -> (,) emptySH blank
|
, _itEquipPict = shapeForWrist (colorSH red $ upperPrismPoly 3 $ rectWH 2 2)
|
||||||
, _itEffect = autoSonarEffect
|
, _itEffect = autoSonarEffect
|
||||||
, _itID = Nothing
|
, _itID = Nothing
|
||||||
} & itUse . eqSite .~ GoesOnWrist
|
} & itUse . eqSite .~ GoesOnWrist
|
||||||
@@ -70,8 +70,7 @@ autoRadar :: Item
|
|||||||
autoRadar = defaultEquipment
|
autoRadar = defaultEquipment
|
||||||
{ _itType = RADAR
|
{ _itType = RADAR
|
||||||
, _itName = "AUTORADAR"
|
, _itName = "AUTORADAR"
|
||||||
, _itEquipPict = pictureOnEquip $ noPic (colorSH yellow $ translateSH (V3 0 4 (-4)) $ upperPrismPoly 3
|
, _itEquipPict = shapeForWrist (colorSH yellow $ upperPrismPoly 3 $ rectWH 2 2)
|
||||||
$ rectWH 2 2)
|
|
||||||
, _itEffect = autoRadarEffect
|
, _itEffect = autoRadarEffect
|
||||||
, _itID = Nothing
|
, _itID = Nothing
|
||||||
} & itUse . eqSite .~ GoesOnWrist
|
} & itUse . eqSite .~ GoesOnWrist
|
||||||
|
|||||||
Reference in New Issue
Block a user