feat(items): port retail shared cooldown overlays
Preserve public shared-cooldown metadata, resolve the authoritative cooldown enchantment with retail expiry semantics, and project the exact ten DAT-authored radial steps through the shared retained item-slot architecture. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
19e8863f4e
commit
6b1ae4fb76
27 changed files with 875 additions and 20 deletions
|
|
@ -212,6 +212,22 @@ public sealed class ClientObjectTableTests
|
|||
Assert.Equal("desc", item.Properties.Strings[100]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UpdateProperties_projects_assessed_shared_cooldown_metadata()
|
||||
{
|
||||
var repo = new ClientObjectTable();
|
||||
var item = MakeItem(100);
|
||||
repo.AddOrUpdate(item);
|
||||
var patch = new PropertyBundle();
|
||||
patch.Ints[ClientObjectTable.SharedCooldownPropertyId] = 42;
|
||||
patch.Floats[ClientObjectTable.CooldownDurationPropertyId] = 30d;
|
||||
|
||||
repo.UpdateProperties(100, patch);
|
||||
|
||||
Assert.Equal(42u, item.CooldownId);
|
||||
Assert.Equal(30d, item.CooldownDuration);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Clear_RemovesAllItems()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue