feat(card): /card/create_foil_card Seer's Globe conversion (1 orb + 1 base → 1 foil)

This commit is contained in:
gamer147
2026-06-13 09:58:55 -04:00
parent 13ca7d118e
commit 43dee9d00b
4 changed files with 270 additions and 3 deletions

View File

@@ -0,0 +1,30 @@
using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests.Card;
/// <summary>
/// POST /card/create_foil_card — Seer's Globe conversion (Wizard/PremiumCardConversionTask.cs).
/// Consumes <see cref="CreateNumber"/> Orbs (Item id 1000) + <see cref="CreateNumber"/> copies of
/// <see cref="BaseCardId"/> to grant <see cref="CreateNumber"/> copies of the foil twin (base+1).
/// </summary>
[MessagePackObject]
public class CardCreateFoilCardRequest : BaseRequest
{
[JsonPropertyName("base_card_id")]
[Key("base_card_id")]
public int BaseCardId { get; set; }
/// <summary>
/// Client's snapshot of how many normal copies it has at request time. Sanity-check only —
/// the actual spend is <c>create_number</c> copies, not this value.
/// </summary>
[JsonPropertyName("base_card_number")]
[Key("base_card_number")]
public int BaseCardNumber { get; set; }
/// <summary>Hardcoded to 1 by <c>PremiumCardConversionTask.SetParameter</c>.</summary>
[JsonPropertyName("create_number")]
[Key("create_number")]
public int CreateNumber { get; set; }
}

View File

@@ -0,0 +1,19 @@
using MessagePack;
using SVSim.EmulatedEntrypoint.Models.Dtos;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.Card;
/// <summary>
/// /card/create_foil_card response. reward_list entries are POST-STATE TOTALS — client's
/// <c>PlayerStaticData.UpdateHaveUserGoodsNumByJsonData</c> does direct assignment. Contains
/// the Item (Orb) post-balance, base-card post-count, and foil-card post-count.
/// </summary>
[MessagePackObject]
public class CardCreateFoilCardResponse
{
[JsonPropertyName("reward_list")]
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
[Key("reward_list")]
public List<RewardListEntry> RewardList { get; set; } = new();
}