diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index d68945627..e334b093a 100644 Binary files a/.voidbot/state/aetheria.cc and b/.voidbot/state/aetheria.cc differ diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 32ea15417..68a048351 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -1514,7 +1514,11 @@ public class ActionGameManager : MonoBehaviour var threshold = Settings.GameplaySettings.TargetDetectionInfoThreshold; TargetVisibilityFill.fillAmount = lerp(.25f, .75f, (CurrentEntity.EntityInfoGathered[target] - threshold)/(1-threshold)); VisibilityToTargetFill.fillAmount = lerp(.25f, .75f, target.EntityInfoGathered[CurrentEntity] / threshold); - TargetHitpointsFill.fillAmount = lerp(.25f, .75f, target.Hull.Durability / target.EquippedHull.Data.Durability); + var targetHull = ItemManager.GetRuntimeItem(target.Hull); + var targetMaxDurability = targetHull?.Durability > 0 + ? (float)targetHull.Durability + : Math.Max(target.Hull.Durability, 1f); + TargetHitpointsFill.fillAmount = lerp(.25f, .75f, target.Hull.Durability / targetMaxDurability); TargetShieldsFill.fillAmount = target.Shield == null ? 0 : lerp(.25f, .75f, target.Shield.Progress); } diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index dd14f1a46..e635a12ee 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -102,7 +102,9 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. values until those session facts have typed runtime surfaces. Hull and item durability percentages use typed max durability only; incomplete typed rows use current runtime durability as the generic denominator instead - of falling back to legacy `ItemData.Durability`. + of falling back to legacy `ItemData.Durability`. Target HUD hitpoint fill also + reads target hull max durability from the typed runtime hull row instead of + `EquippedHull.Data.Durability`. Gear heat-fill ranges in the schematic HUD also read typed catalog thermal bounds; rows without typed thermal bounds use a neutral current-temperature range instead of hydrating legacy `ItemData`. @@ -701,6 +703,8 @@ First Aetheria surfaces to publish: - Done: move schematic HUD weapon-row classification onto typed behavior-kind rows; runtime `Weapon` instances remain the owner for live ammo/cooldown display values. + - Done: move target HUD hitpoint fill denominator onto typed hull durability; + live hull item durability remains the numerator/runtime damage owner. - Done: import typed item specific heat and move `ItemManager` generic mass, thermal-mass, and crafted-price helpers onto typed runtime catalog rows. - Done: import typed thermal performance curve keys and move PropertiesPanel