Files
gamer147 5e7a65fe5a Story
2026-05-25 14:36:12 -04:00

98 lines
3.1 KiB
C#

using MessagePack;
using System.Text.Json.Serialization;
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Story;
[MessagePackObject]
public class StartRequest : BaseRequest
{
[JsonPropertyName("story_ids")]
[Key("story_ids")]
public int[] StoryIds { get; set; } = Array.Empty<int>();
}
// The `start` response is dynamic — each numeric key corresponds to a request story_ids index.
// We use a Dictionary<string, object> to support both the populated and empty slot shapes.
// MessagePack handles Dictionary natively; no [MessagePackObject] needed here.
public class StartResponse : Dictionary<string, object>
{
public void AddSlot(int index, object slotPayload) => this[index.ToString()] = slotPayload;
}
[MessagePackObject]
public class StartSlotWithSbs
{
[JsonPropertyName("special_battle_setting")]
[Key("special_battle_setting")]
public SpecialBattleSettingDto SpecialBattleSetting { get; set; } = new();
}
[MessagePackObject]
public class SpecialBattleSettingDto
{
[JsonPropertyName("id")]
[Key("id")]
public string Id { get; set; } = "";
[JsonPropertyName("player_first_turn")]
[Key("player_first_turn")]
public string PlayerFirstTurn { get; set; } = "";
[JsonPropertyName("player_start_pp")]
[Key("player_start_pp")]
public string PlayerStartPp { get; set; } = "";
[JsonPropertyName("enemy_start_pp")]
[Key("enemy_start_pp")]
public string EnemyStartPp { get; set; } = "";
[JsonPropertyName("player_start_life")]
[Key("player_start_life")]
public string PlayerStartLife { get; set; } = "";
[JsonPropertyName("enemy_start_life")]
[Key("enemy_start_life")]
public string EnemyStartLife { get; set; } = "";
[JsonPropertyName("player_attach_skill")]
[Key("player_attach_skill")]
public string PlayerAttachSkill { get; set; } = "";
[JsonPropertyName("enemy_attach_skill")]
[Key("enemy_attach_skill")]
public string EnemyAttachSkill { get; set; } = "";
[JsonPropertyName("id_override_in_battle_log")]
[Key("id_override_in_battle_log")]
public string IdOverrideInBattleLog { get; set; } = "";
[JsonPropertyName("banish_effect_override")]
[Key("banish_effect_override")]
public string BanishEffectOverride { get; set; } = "";
[JsonPropertyName("token_draw_effect_override")]
[Key("token_draw_effect_override")]
public string TokenDrawEffectOverride { get; set; } = "";
[JsonPropertyName("special_token_draw_effect_override")]
[Key("special_token_draw_effect_override")]
public string SpecialTokenDrawEffectOverride { get; set; } = "";
[JsonPropertyName("result_skip")]
[Key("result_skip")]
public string ResultSkip { get; set; } = "";
[JsonPropertyName("vs_effect_override")]
[Key("vs_effect_override")]
public string VsEffectOverride { get; set; } = "";
[JsonPropertyName("class_destroy_effect_override")]
[Key("class_destroy_effect_override")]
public string ClassDestroyEffectOverride { get; set; } = "";
[JsonPropertyName("note")]
[Key("note")]
public string Note { get; set; } = "";
}