19 lines
863 B
C#
19 lines
863 B
C#
using Unity.NetCode;
|
|
|
|
namespace ProjectM.Simulation
|
|
{
|
|
/// <summary>
|
|
/// Client → server permanent meta-upgrade purchase: <see cref="UpgradeId"/> keys the baked meta catalog. The
|
|
/// TIER is SERVER-COMPUTED (a purchase always buys owned+1) — putting a tier on the wire would invite
|
|
/// desync/cheat. Server-validated (<c>RunInfo.Lifecycle==Staging</c> phase gate, class mask, prereq, MaxTier,
|
|
/// Aether affordability) with DR-014 in-loop ledger atomicity so two same-tick purchases on barely-enough Aether
|
|
/// cannot both pass. UNCONDITIONAL wire type. Declared at Step 3 (wire front-load); consumed by
|
|
/// <c>MetaSpendSystem</c> from Step 13.
|
|
/// </summary>
|
|
public struct MetaSpendRequest : IRpcCommand
|
|
{
|
|
/// <summary>Meta-catalog upgrade id (append-only key).</summary>
|
|
public byte UpgradeId;
|
|
}
|
|
}
|