Name loadout restore pricing directly
This commit is contained in:
parent
bfa56b8de6
commit
4ca8f86bcf
3 changed files with 24 additions and 16 deletions
|
|
@ -18193,10 +18193,10 @@ static void RequireInventoryLoadoutRestoreRequestAuthority(string root)
|
|||
var rtsDocuments = File.Exists(rtsDocumentsPath)
|
||||
? File.ReadAllText(rtsDocumentsPath)
|
||||
: throw new InvalidOperationException("Cannot verify loadout restore authority; RTS viewport documents are missing.");
|
||||
var rtsProjectionPath = Path.Combine(root, "Packages", "org.gamecult.aetheria.state", "Runtime", "AetheriaRuntimeRtsDocuments.cs");
|
||||
var rtsProjection = File.Exists(rtsProjectionPath)
|
||||
? File.ReadAllText(rtsProjectionPath)
|
||||
: throw new InvalidOperationException("Cannot verify loadout restore authority; RTS projection source is missing.");
|
||||
var rtsDocumentFactoryPath = Path.Combine(root, "Packages", "org.gamecult.aetheria.state", "Runtime", "AetheriaRuntimeRtsDocuments.cs");
|
||||
var rtsDocumentFactory = File.Exists(rtsDocumentFactoryPath)
|
||||
? File.ReadAllText(rtsDocumentFactoryPath)
|
||||
: throw new InvalidOperationException("Cannot verify loadout restore authority; RTS document factory source is missing.");
|
||||
var clientPath = Path.Combine(root, "Packages", "org.gamecult.aetheria.state", "Runtime", "AetheriaClient.cs");
|
||||
var client = File.Exists(clientPath)
|
||||
? File.ReadAllText(clientPath)
|
||||
|
|
@ -18329,7 +18329,8 @@ static void RequireInventoryLoadoutRestoreRequestAuthority(string root)
|
|||
throw new InvalidOperationException("InventoryPanel no longer owns typed loadout restore operations directly.");
|
||||
}
|
||||
|
||||
if (inventoryPanel.Contains("AetheriaRuntimeDaemonTradeItemQueries.TryProjectLoadoutTemplatePrice(", StringComparison.Ordinal) ||
|
||||
if (inventoryPanel.Contains("AetheriaRuntimeDaemonTradeItemQueries.TryPriceLoadoutTemplate(", StringComparison.Ordinal) ||
|
||||
inventoryPanel.Contains("AetheriaRuntimeDaemonTradeItemQueries.TryProjectLoadoutTemplatePrice(", StringComparison.Ordinal) ||
|
||||
inventoryPanel.Contains("blueprint.Price(GameManager.ItemManager)", StringComparison.Ordinal) ||
|
||||
inventoryPanel.Contains("LoadoutTemplatesAsync()", StringComparison.Ordinal) ||
|
||||
inventoryPanel.Contains("ResolveLoadoutTemplates", StringComparison.Ordinal))
|
||||
|
|
@ -18338,13 +18339,20 @@ static void RequireInventoryLoadoutRestoreRequestAuthority(string root)
|
|||
"InventoryPanel must consume StationRefitAsync loadout restore options instead of pricing or enumerating loadouts locally.");
|
||||
}
|
||||
|
||||
if (!tradeQueries.Contains("public static bool TryProjectLoadoutTemplatePrice(", StringComparison.Ordinal) ||
|
||||
!tradeQueries.Contains("TryProjectEntityLoadoutPrice(", StringComparison.Ordinal) ||
|
||||
if (tradeQueries.Contains("TryProjectLoadoutTemplatePrice(", StringComparison.Ordinal) ||
|
||||
tradeQueries.Contains("TryProjectEntityLoadoutPrice(", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Shared runtime trade item queries must price typed loadout templates directly, without projector vocabulary.");
|
||||
}
|
||||
|
||||
if (!tradeQueries.Contains("public static bool TryPriceLoadoutTemplate(", StringComparison.Ordinal) ||
|
||||
!tradeQueries.Contains("TryPriceEntityLoadout(", StringComparison.Ordinal) ||
|
||||
!tradeQueries.Contains("typedItem.Stackable", StringComparison.Ordinal) ||
|
||||
!tradeQueries.Contains("typedItem.Price * Math.Max(1, item.Quantity)", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Shared runtime trade item queries must own typed loadout template price projection.");
|
||||
"Shared runtime trade item queries must own typed loadout template pricing.");
|
||||
}
|
||||
|
||||
if (!rtsDocuments.Contains("public IReadOnlyList<AetheriaRuntimeStationLoadoutRestoreOption> LoadoutRestoreOptions", StringComparison.Ordinal) ||
|
||||
|
|
@ -18352,9 +18360,9 @@ static void RequireInventoryLoadoutRestoreRequestAuthority(string root)
|
|||
!rtsDocuments.Contains("public string TargetEntityKey", StringComparison.Ordinal) ||
|
||||
!rtsDocuments.Contains("public int Price", StringComparison.Ordinal) ||
|
||||
!rtsDocuments.Contains("public bool CanRestore", StringComparison.Ordinal) ||
|
||||
!rtsProjection.Contains("ProjectLoadoutRestoreOptions(", StringComparison.Ordinal) ||
|
||||
!rtsProjection.Contains("AetheriaRuntimeDaemonTradeItemQueries.TryProjectLoadoutTemplatePrice(", StringComparison.Ordinal) ||
|
||||
!rtsProjection.Contains("credits >= price", StringComparison.Ordinal) ||
|
||||
!rtsDocumentFactory.Contains("ProjectLoadoutRestoreOptions(", StringComparison.Ordinal) ||
|
||||
!rtsDocumentFactory.Contains("AetheriaRuntimeDaemonTradeItemQueries.TryPriceLoadoutTemplate(", StringComparison.Ordinal) ||
|
||||
!rtsDocumentFactory.Contains("credits >= price", StringComparison.Ordinal) ||
|
||||
!clientState.Contains("public CultMeshDocumentHandle<AetheriaRuntimeLoadoutTemplatesDocument> LoadoutTemplates", StringComparison.Ordinal) ||
|
||||
!verseClient.Contains("RequireManagedLoadoutTemplates().Templates", StringComparison.Ordinal) ||
|
||||
!verseClient.Contains("StationRefit(", StringComparison.Ordinal))
|
||||
|
|
|
|||
|
|
@ -130,17 +130,17 @@ namespace GameCult.Aetheria.State.Verse
|
|||
durability);
|
||||
}
|
||||
|
||||
public static bool TryProjectLoadoutTemplatePrice(
|
||||
public static bool TryPriceLoadoutTemplate(
|
||||
AetheriaRuntimeLoadoutTemplateSnapshot? template,
|
||||
AetheriaRuntimeCatalogSnapshot? catalog,
|
||||
AetheriaRuntimeTradeValueSettings? settings,
|
||||
out int price)
|
||||
{
|
||||
price = 0;
|
||||
return TryProjectEntityLoadoutPrice(template?.RootEntity, catalog, settings, out price);
|
||||
return TryPriceEntityLoadout(template?.RootEntity, catalog, settings, out price);
|
||||
}
|
||||
|
||||
private static bool TryProjectEntityLoadoutPrice(
|
||||
private static bool TryPriceEntityLoadout(
|
||||
AetheriaRuntimeEntityLoadoutSnapshot? entity,
|
||||
AetheriaRuntimeCatalogSnapshot? catalog,
|
||||
AetheriaRuntimeTradeValueSettings? settings,
|
||||
|
|
@ -164,7 +164,7 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
foreach (var child in entity.Children ?? Array.Empty<AetheriaRuntimeEntityLoadoutSnapshot>())
|
||||
{
|
||||
if (!TryProjectEntityLoadoutPrice(child, catalog, settings, out var childPrice))
|
||||
if (!TryPriceEntityLoadout(child, catalog, settings, out var childPrice))
|
||||
return false;
|
||||
|
||||
price += childPrice;
|
||||
|
|
|
|||
|
|
@ -1199,7 +1199,7 @@ namespace GameCult.Aetheria.State.Verse
|
|||
for (var templateIndex = 0; templateIndex < templates.Count; templateIndex++)
|
||||
{
|
||||
var template = templates[templateIndex];
|
||||
var canPrice = AetheriaRuntimeDaemonTradeItemQueries.TryProjectLoadoutTemplatePrice(
|
||||
var canPrice = AetheriaRuntimeDaemonTradeItemQueries.TryPriceLoadoutTemplate(
|
||||
template,
|
||||
catalog,
|
||||
catalog?.TradeValueSettings,
|
||||
|
|
|
|||
Loading…
Reference in a new issue