Use typed stat modifier behavior kind

This commit is contained in:
Meta Vens 2026-06-14 10:03:28 +01:00
commit 6cb0c3f987
4 changed files with 9 additions and 5 deletions

Binary file not shown.

View file

@ -439,7 +439,7 @@ public class PropertiesPanel : MonoBehaviour
var sheet = AddStatSheet();
foreach (var behavior in typedItem?.BehaviorPayloads ?? Array.Empty<AetheriaRuntimeBehaviorPayload>())
{
if (string.Equals(behavior.Kind, nameof(StatModifierData), StringComparison.Ordinal))
if (string.Equals(behavior.Kind, AetheriaRuntimeBehaviorKinds.StatModifier, StringComparison.Ordinal))
{
var statReference = ReadTypedStatReference(FindTypedBehaviorField(behavior, 1)?.Value);
var modifier = ReadTypedPerformanceStat(FindTypedBehaviorField(behavior, 2)?.Value);

View file

@ -5,6 +5,7 @@ namespace GameCult.Aetheria.State.Unity
{
public static class AetheriaRuntimeBehaviorKinds
{
public const string StatModifier = "StatModifier";
public const string GuidedWeapon = "GuidedWeapon";
public const string Launcher = "Launcher";
public const string InstantWeapon = "InstantWeapon";

View file

@ -225,10 +225,11 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted.
manufacturer, base mass, max durability, thermal bounds, and thermal
performance curve keys for basic item presentation without hydrating legacy
DTOs. Runtime behavior stat display and damage-range curves read typed
behavior payload fields by legacy payload key. Damage-range payload selection
is keyed by package-owned typed weapon behavior metadata; legacy
`BehaviorData` ancestry is no longer a fallback for weapon payload selection.
The old explicit
behavior payload fields by legacy payload key; stat modifier presentation
checks the package-owned typed `StatModifier` kind instead of a legacy data
class name. Damage-range payload selection is keyed by package-owned typed
weapon behavior metadata; legacy `BehaviorData` ancestry is no longer a
fallback for weapon payload selection. The old explicit
`Inspect(ItemData)` DTO inspection overload is deleted; trade row clicks now
inspect the typed runtime catalog row directly. Incomplete typed thermal
curve rows render a neutral fallback curve instead of hydrating legacy
@ -761,6 +762,8 @@ First Aetheria surfaces to publish:
curves onto typed behavior payload fields, and delete the explicit
`Inspect(ItemData)` projection inspector after moving trade row inspection
onto typed runtime catalog rows.
- Done: replace the PropertiesPanel stat modifier class-name check with the
package-owned typed `StatModifier` behavior kind.
- Done: demote PropertiesPanel weapon damage-range payload matching from
`BehaviorData` `Type` authority to package-owned typed weapon behavior
metadata; `BehaviorData` reflection remains display/filter metadata-only