diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 40c37be7d..fcbc6d4b8 100644 Binary files a/.voidbot/state/aetheria.cc and b/.voidbot/state/aetheria.cc differ diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs index 14b18b1f9..5817d17b2 100644 --- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs @@ -60,6 +60,6 @@ public class GuidedProjectileManager : InstantWeaponEffectManager p.TopSpeed = item.Evaluate(guidance.MissileVelocity); p.TargetPosition = () => source.Entity.Position + length( (float3)source.LookAtPoint.position - source.Entity.Position) * source.Entity.LookDirection; } - else Debug.LogError($"Weapon {item.Data.Name} linked to {name} effect, but is not a Launcher!"); + else Debug.LogError($"Weapon {item.RuntimeItem?.Name ?? "Unknown item"} linked to {name} effect, but is not a Launcher!"); } } diff --git a/Assets/Scripts/UI/Menu/WeaponGroupAssignment.cs b/Assets/Scripts/UI/Menu/WeaponGroupAssignment.cs index 37de10f7b..ddd453d88 100644 --- a/Assets/Scripts/UI/Menu/WeaponGroupAssignment.cs +++ b/Assets/Scripts/UI/Menu/WeaponGroupAssignment.cs @@ -21,7 +21,7 @@ public class WeaponGroupAssignment : MonoBehaviour public void Inspect(EquippedItem item) { var weapon = item.GetBehavior(); - if (weapon == null) throw new ArgumentException($"Attempted to inspect weapon groups on item \"{item.Data.Name}\" but no weapon is present!"); + if (weapon == null) throw new ArgumentException($"Attempted to inspect weapon groups on item \"{item.RuntimeItem?.Name ?? "Unknown item"}\" but no weapon is present!"); var groupCount = ActionGameManager.Instance.Settings.GameplaySettings.WeaponGroupCount; for (int i = 0; i < groupCount; i++) { diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index 6443c9316..9114d9a8b 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -253,7 +253,9 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. max durability only, with current runtime durability as the generic denominator for incomplete typed rows. `ItemManager.Evaluate` also uses typed runtime item max durability and item names when evaluating unequipped - performance stats. `ItemManager` typed item instantiation primitives create + performance stats. Weapon group assignment and guided projectile diagnostics + report names from equipped typed runtime rows instead of `ItemData.Name`. + `ItemManager` typed item instantiation primitives create simple commodities, crafted items, and equippable items from runtime catalog rows; old DTO-based item creation is gone from blueprint cloning. `EquippedItem` also takes conductivity, max durability, thermal bounds, and