DTOs for index mostly done, doing DB models
This commit is contained in:
12
SVSim.EmulatedEntrypoint/Models/Dtos/ArenaConfig.cs
Normal file
12
SVSim.EmulatedEntrypoint/Models/Dtos/ArenaConfig.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class ArenaConfig
|
||||
{
|
||||
[Key("use_challenge_two_pick_premium_card")]
|
||||
public int UseChallengePickTwoPremiumCard { get; set; }
|
||||
[Key("challenge_two_pick_sleeve_id")]
|
||||
public int ChallengePickTwoCardSleeve { get; set; }
|
||||
}
|
||||
21
SVSim.EmulatedEntrypoint/Models/Dtos/ArenaFormatInfo.cs
Normal file
21
SVSim.EmulatedEntrypoint/Models/Dtos/ArenaFormatInfo.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using MessagePack;
|
||||
using SVSim.Database.Enums;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class ArenaFormatInfo
|
||||
{
|
||||
[Key("two_pick_type")]
|
||||
public PickTwoFormat PickTwoFormat { get; set; }
|
||||
[Key("card_pool_name")]
|
||||
public string CardPoolName { get; set; } = string.Empty;
|
||||
[Key("announce_id")]
|
||||
public string AnnounceId { get; set; } = "0";
|
||||
[Key("card_pool_url")]
|
||||
public string CardPoolUrl { get; set; } = string.Empty;
|
||||
[Key("start_time")]
|
||||
public DateTime StartTime { get; set; }
|
||||
[Key("end_time")]
|
||||
public DateTime EndTime { get; set; }
|
||||
}
|
||||
24
SVSim.EmulatedEntrypoint/Models/Dtos/ArenaInfo.cs
Normal file
24
SVSim.EmulatedEntrypoint/Models/Dtos/ArenaInfo.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class ArenaInfo
|
||||
{
|
||||
[Key("mode")]
|
||||
public int Mode { get; set; }
|
||||
[Key("enable")]
|
||||
public int Enable { get; set; }
|
||||
[Key("cost")]
|
||||
public ulong Cost { get; set; }
|
||||
[Key("rupy_cost")]
|
||||
public ulong RupeeCost { get; set; }
|
||||
[Key("ticket_cost")]
|
||||
public int TicketCost { get; set; }
|
||||
[Key("is_join")]
|
||||
public bool IsJoin { get; set; }
|
||||
[Key("sales_period_info")]
|
||||
public ShopExpiryInfo? SalesPeriodInfo { get; set; }
|
||||
[Key("format_info")]
|
||||
public ArenaFormatInfo? FormatInfo { get; set; }
|
||||
}
|
||||
17
SVSim.EmulatedEntrypoint/Models/Dtos/AvatarAbility.cs
Normal file
17
SVSim.EmulatedEntrypoint/Models/Dtos/AvatarAbility.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class AvatarAbility
|
||||
{
|
||||
public int LeaderSkinId { get; set; }
|
||||
public int BattleStartFirstPlayerBp { get; set; }
|
||||
public int BattleStartSecondPlayerBp { get; set; }
|
||||
public int BattleStartMaxLife { get; set; }
|
||||
public string AbilityCost { get; set; }
|
||||
public string Ability { get; set; }
|
||||
public string PassiveAbility { get; set; }
|
||||
public string AbilityDesc { get; set; }
|
||||
public string PassiveAbilityDesc { get; set; }
|
||||
}
|
||||
10
SVSim.EmulatedEntrypoint/Models/Dtos/AvatarInfo.cs
Normal file
10
SVSim.EmulatedEntrypoint/Models/Dtos/AvatarInfo.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class AvatarInfo
|
||||
{
|
||||
public Dictionary<string, AvatarAbility> Abilities { get; set; } = new Dictionary<string, AvatarAbility>();
|
||||
public SpecialRotationSchedule Schedules { get; set; } = new SpecialRotationSchedule();
|
||||
}
|
||||
12
SVSim.EmulatedEntrypoint/Models/Dtos/BattlePassLevel.cs
Normal file
12
SVSim.EmulatedEntrypoint/Models/Dtos/BattlePassLevel.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class BattlePassLevel
|
||||
{
|
||||
[Key("level")]
|
||||
public int Level { get; set; }
|
||||
[Key("required_point")]
|
||||
public int RequiredPoints { get; set; }
|
||||
}
|
||||
16
SVSim.EmulatedEntrypoint/Models/Dtos/CardIdentifier.cs
Normal file
16
SVSim.EmulatedEntrypoint/Models/Dtos/CardIdentifier.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// Identifies a card in the game system.
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class CardIdentifier
|
||||
{
|
||||
/// <summary>
|
||||
/// The identifier of the card.
|
||||
/// </summary>
|
||||
[Key("card_id")]
|
||||
public long CardId { get; set; }
|
||||
}
|
||||
10
SVSim.EmulatedEntrypoint/Models/Dtos/CardSetIdentifier.cs
Normal file
10
SVSim.EmulatedEntrypoint/Models/Dtos/CardSetIdentifier.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class CardSetIdentifier
|
||||
{
|
||||
[Key("card_set_id")]
|
||||
public int SetId { get; set; }
|
||||
}
|
||||
16
SVSim.EmulatedEntrypoint/Models/Dtos/ClassExp.cs
Normal file
16
SVSim.EmulatedEntrypoint/Models/Dtos/ClassExp.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class ClassExp
|
||||
{
|
||||
[Key("level")]
|
||||
public int Level { get; set; }
|
||||
[Key("necessary_exp")]
|
||||
public int NecessaryExp { get; set; }
|
||||
[Key("diff_exp")]
|
||||
public int DiffExp { get; set; }
|
||||
[Key("accumulate_exp")]
|
||||
public int AccumulateExp { get; set; }
|
||||
}
|
||||
14
SVSim.EmulatedEntrypoint/Models/Dtos/DailyLoginBonus.cs
Normal file
14
SVSim.EmulatedEntrypoint/Models/Dtos/DailyLoginBonus.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class DailyLoginBonus
|
||||
{
|
||||
[Key("total")]
|
||||
public LoginBonusCampaign? Total { get; set; }
|
||||
[Key("normal")]
|
||||
public LoginBonusCampaign? Normal { get; set; }
|
||||
[Key("campaign")]
|
||||
public LoginBonusCampaign? Campaign { get; set; }
|
||||
}
|
||||
12
SVSim.EmulatedEntrypoint/Models/Dtos/DateRange.cs
Normal file
12
SVSim.EmulatedEntrypoint/Models/Dtos/DateRange.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class DateRange
|
||||
{
|
||||
[Key("begin_time")]
|
||||
public DateTime BeginTime { get; set; }
|
||||
[Key("end_time")]
|
||||
public DateTime EndTime { get; set; }
|
||||
}
|
||||
14
SVSim.EmulatedEntrypoint/Models/Dtos/DefaultSettings.cs
Normal file
14
SVSim.EmulatedEntrypoint/Models/Dtos/DefaultSettings.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class DefaultSettings
|
||||
{
|
||||
[Key("default_emblem_id")]
|
||||
public ulong DefaultEmblemId { get; set; }
|
||||
[Key("default_degree_id")]
|
||||
public int DefaultDegreeId { get; set; }
|
||||
[Key("default_mypage_id")]
|
||||
public ulong DefaultMyPageBackground { get; set; }
|
||||
}
|
||||
10
SVSim.EmulatedEntrypoint/Models/Dtos/DegreeIdentifier.cs
Normal file
10
SVSim.EmulatedEntrypoint/Models/Dtos/DegreeIdentifier.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class DegreeIdentifier
|
||||
{
|
||||
[Key("degree_id")]
|
||||
public int DegreeId { get; set; }
|
||||
}
|
||||
10
SVSim.EmulatedEntrypoint/Models/Dtos/EmblemIdentifier.cs
Normal file
10
SVSim.EmulatedEntrypoint/Models/Dtos/EmblemIdentifier.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class EmblemIdentifier
|
||||
{
|
||||
[Key("emblem_id")]
|
||||
public int EmblemId { get; set; }
|
||||
}
|
||||
10
SVSim.EmulatedEntrypoint/Models/Dtos/GatheringInfo.cs
Normal file
10
SVSim.EmulatedEntrypoint/Models/Dtos/GatheringInfo.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class GatheringInfo
|
||||
{
|
||||
[Key("has_invite")]
|
||||
public int HasInvite { get; set; }
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Internal;
|
||||
|
||||
[MessagePackObject]
|
||||
public class DataHeaders
|
||||
@@ -1,6 +1,6 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Internal;
|
||||
|
||||
/// <summary>
|
||||
/// Wraps responses in the format the official game client expects, with a header section for additional data. Not for manual endpoint use, this wrapping is done automatically in a middleware.
|
||||
20
SVSim.EmulatedEntrypoint/Models/Dtos/LoginBonusCampaign.cs
Normal file
20
SVSim.EmulatedEntrypoint/Models/Dtos/LoginBonusCampaign.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class LoginBonusCampaign
|
||||
{
|
||||
[Key("name")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
[Key("campaign_id")]
|
||||
public int CampaignId { get; set; }
|
||||
[Key("img")]
|
||||
public int Image { get; set; }
|
||||
[Key("now_count")]
|
||||
public int NowCount { get; set; }
|
||||
[Key("is_next_reward")]
|
||||
public bool IsNextReward { get; set; }
|
||||
[Key("reward")]
|
||||
public List<LoginBonusReward> Rewards { get; set; } = new List<LoginBonusReward>();
|
||||
}
|
||||
31
SVSim.EmulatedEntrypoint/Models/Dtos/LoginBonusReward.cs
Normal file
31
SVSim.EmulatedEntrypoint/Models/Dtos/LoginBonusReward.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class LoginBonusReward
|
||||
{
|
||||
/// <summary>
|
||||
/// The effect shown ingame.
|
||||
/// </summary>
|
||||
[Key("effect_id")]
|
||||
public int EffectId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The type of reward.
|
||||
/// </summary>
|
||||
[Key("reward_type")]
|
||||
public int RewardType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A more specified reward type (ie if a pack, which pack).
|
||||
/// </summary>
|
||||
[Key("reward_detail_id")]
|
||||
public int RewardDetailId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The count of the reward.
|
||||
/// </summary>
|
||||
[Key("reward_number")]
|
||||
public int RewardNumber { get; set; }
|
||||
}
|
||||
23
SVSim.EmulatedEntrypoint/Models/Dtos/LootBoxRegulations.cs
Normal file
23
SVSim.EmulatedEntrypoint/Models/Dtos/LootBoxRegulations.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// What features are restricted by a user's country's loot box regulations. 1 indicates restricted, 0 indicates
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class LootBoxRegulations
|
||||
{
|
||||
[Key("pack")]
|
||||
public int Pack { get; set; }
|
||||
[Key("arena_2pick")]
|
||||
public int ArenaPickTwo { get; set; }
|
||||
[Key("arena_sealed")]
|
||||
public int ArenaSealed { get; set; }
|
||||
[Key("arena_colosseum")]
|
||||
public int ArenaColosseum { get; set; }
|
||||
[Key("arena_competition")]
|
||||
public int ArenaCompetition { get; set; }
|
||||
[Key("special_shop")]
|
||||
public int SpecialShop { get; set; }
|
||||
}
|
||||
15
SVSim.EmulatedEntrypoint/Models/Dtos/MyRotationAbility.cs
Normal file
15
SVSim.EmulatedEntrypoint/Models/Dtos/MyRotationAbility.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject()]
|
||||
public class MyRotationAbility
|
||||
{
|
||||
public int AbilityId { get; set; }
|
||||
public int AddStartPp { get; set; }
|
||||
public int AddStartLife { get; set; }
|
||||
public int IncreaseAddPpTotalAmount { get; set; }
|
||||
public int IncreaseAddPpTotalTurn { get; set; }
|
||||
public string Ability { get; set; } = string.Empty;
|
||||
public string AbilityDesc { get; set; } = String.Empty;
|
||||
}
|
||||
29
SVSim.EmulatedEntrypoint/Models/Dtos/MyRotationInfo.cs
Normal file
29
SVSim.EmulatedEntrypoint/Models/Dtos/MyRotationInfo.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class MyRotationInfo
|
||||
{
|
||||
[Key("abilities")]
|
||||
public Dictionary<string, MyRotationAbility> Abilities { get; set; } = new Dictionary<string, MyRotationAbility>();
|
||||
[Key("schedules")]
|
||||
public SpecialRotationSchedule Schedules { get; set; } = new SpecialRotationSchedule();
|
||||
[Key("setting")]
|
||||
public Dictionary<string, SpecialRotationSetting>? Settings { get; set; }
|
||||
[Key("disabled_card_set_ids")]
|
||||
public List<int>? DisabledCardSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Set to card to card reprinted list.
|
||||
/// </summary>
|
||||
[Key("reprinted_base_card_ids")]
|
||||
public Dictionary<string, Dictionary<string, int>>? ReprintedCards { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Set to card to count banlist.
|
||||
/// </summary>
|
||||
[Key("restricted_base_card_id_list")]
|
||||
public Dictionary<string, Dictionary<string, int>>? Banlist { get; set; }
|
||||
}
|
||||
36
SVSim.EmulatedEntrypoint/Models/Dtos/PreReleaseInfo.cs
Normal file
36
SVSim.EmulatedEntrypoint/Models/Dtos/PreReleaseInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class PreReleaseInfo
|
||||
{
|
||||
[Key("id")]
|
||||
public int Id { get; set; }
|
||||
[Key("start_time")]
|
||||
public DateTime StartTime { get; set; }
|
||||
[Key("end_time")]
|
||||
public DateTime EndTime { get; set; }
|
||||
[Key("display_end_time")]
|
||||
public DateTime DisplayEndTime { get; set; }
|
||||
[Key("next_card_set_id")]
|
||||
public int NextCardSetId { get; set; }
|
||||
[Key("default_card_master_id")]
|
||||
public int DefaultCardMasterId { get; set; }
|
||||
[Key("pre_release_card_master_id")]
|
||||
public int PreReleaseCardMasterId { get; set; }
|
||||
[Key("free_match_start_time")]
|
||||
public DateTime FreeMatchStartTime { get; set; }
|
||||
[Key("card_master_id")]
|
||||
public int CardMasterId { get; set; }
|
||||
[Key("rotation_card_set_id_list")]
|
||||
public List<int> RotationCardSets { get; set; } = new List<int>();
|
||||
[Key("reprinted_base_card_ids")]
|
||||
public Dictionary<string, long> ReprintedCardIds { get; set; } = new Dictionary<string, long>();
|
||||
[Key("latest_reprinted_base_card_ids")]
|
||||
public List<int> LatestReprintedCardIds { get; set; } = new List<int>();
|
||||
[Key("pre_release_status")]
|
||||
public int PreReleaseStatus { get; set; }
|
||||
[Key("is_pre_rotation_free_match_term")]
|
||||
public int IsPreRotationFreeMatchTerm { get; set; }
|
||||
}
|
||||
42
SVSim.EmulatedEntrypoint/Models/Dtos/RankInfo.cs
Normal file
42
SVSim.EmulatedEntrypoint/Models/Dtos/RankInfo.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class RankInfo
|
||||
{
|
||||
[Key("rank_id")]
|
||||
public int RankId { get; set; }
|
||||
[Key("rank_name")]
|
||||
public string RankName { get; set; } = string.Empty;
|
||||
[Key("necessary_point")]
|
||||
public int NecessaryPoints { get; set; }
|
||||
[Key("accumulate_point")]
|
||||
public int AccumulatePoints { get; set; }
|
||||
[Key("lower_limit_point")]
|
||||
public int LowerLimitPoints { get; set; }
|
||||
[Key("base_add_bp")]
|
||||
public int BaseAddBp { get; set; }
|
||||
[Key("base_drop_bp")]
|
||||
public int BaseDropBp { get; set; }
|
||||
[Key("streak_bonus_pt")]
|
||||
public int StreakBonusPoints { get; set; }
|
||||
[Key("win_bonus")]
|
||||
public double WinBonus { get; set; }
|
||||
[Key("lose_bonus")]
|
||||
public double LoseBonus { get; set; }
|
||||
[Key("max_win_bonus")]
|
||||
public int MaxWinBonus { get; set; }
|
||||
[Key("max_lose_bonus")]
|
||||
public int MaxLoseBonus { get; set; }
|
||||
[Key("is_promotion_war")]
|
||||
public int IsPromotionWar { get; set; }
|
||||
[Key("match_count")]
|
||||
public int MatchCount { get; set; }
|
||||
[Key("necessary_win")]
|
||||
public int NecessaryWins { get; set; }
|
||||
[Key("reset_lose")]
|
||||
public int ResetLose { get; set; }
|
||||
[Key("accumulate_master_point")]
|
||||
public int AccumulateMasterPoints { get; set; }
|
||||
}
|
||||
22
SVSim.EmulatedEntrypoint/Models/Dtos/RedEtherOverride.cs
Normal file
22
SVSim.EmulatedEntrypoint/Models/Dtos/RedEtherOverride.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// An indication that a specific card has had it's red ether amounts overriden from the normal amounts.
|
||||
/// </summary>
|
||||
public class RedEtherOverride
|
||||
{
|
||||
/// <summary>
|
||||
/// The id of the affected card.
|
||||
/// </summary>
|
||||
public ulong CardId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How much red ether is now provided from dusting the card.
|
||||
/// </summary>
|
||||
public int GetRedEther { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How much red ether is now required to craft the card.
|
||||
/// </summary>
|
||||
public int UseRedEther { get; set; }
|
||||
}
|
||||
@@ -1,6 +1,286 @@
|
||||
using MessagePack;
|
||||
using SVSim.Database.Enums;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses;
|
||||
|
||||
[MessagePackObject]
|
||||
public class IndexResponse
|
||||
{
|
||||
#region Primitive Returns
|
||||
|
||||
[Key("ts_card_rotation")]
|
||||
public string TsCardRotation { get; set; } = string.Empty;
|
||||
[Key("is_beginner_mission")]
|
||||
public int IsBeginnerMission { get; set; }
|
||||
[Key("spot_point")]
|
||||
public int SpotPoint { get; set; }
|
||||
[Key("is_available_colosseum_free_entry")]
|
||||
public bool IsAvailableColosseumFreeEntry { get; set; }
|
||||
[Key("friend_battle_invite_count")]
|
||||
public int FriendBattleInviteCount { get; set; }
|
||||
[Key("battle_recovery_status")]
|
||||
public int BattleRecoveryStatus { get; set; }
|
||||
[Key("room_recovery_status")]
|
||||
public int RoomRecoveryStatus { get; set; }
|
||||
[Key("is_battle_pass_period")]
|
||||
public bool IsBattlePassPeriod { get; set; }
|
||||
[Key("card_set_id_for_resource_dl_view")]
|
||||
public int CardSetIdForResourceDlView { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Basic User Data
|
||||
|
||||
/// <summary>
|
||||
/// The user's tutorial progress state.
|
||||
/// </summary>
|
||||
[Key("user_tutorial")]
|
||||
public UserTutorial UserTutorial { get; set; } = new UserTutorial();
|
||||
|
||||
/// <summary>
|
||||
/// Basic information about the user.
|
||||
/// </summary>
|
||||
[Key("user_info")]
|
||||
public UserInfo UserInfo { get; set; } = new UserInfo();
|
||||
|
||||
/// <summary>
|
||||
/// The in-game currency information for this user.
|
||||
/// </summary>
|
||||
[Key("user_crystal_count")]
|
||||
public UserCurrency UserCurrency { get; set; } = new UserCurrency();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Inventory Data
|
||||
|
||||
/// <summary>
|
||||
/// Items that the user has and how many of each.
|
||||
/// </summary>
|
||||
[Key("user_item_list")]
|
||||
public List<UserItem> UserItems { get; set; } = new List<UserItem>();
|
||||
|
||||
/// <summary>
|
||||
/// Decks for the rotation format.
|
||||
/// </summary>
|
||||
[Key("user_deck_rotation")]
|
||||
public UserFormatDeckInfo UserRotationDecks { get; set; } = new UserFormatDeckInfo();
|
||||
|
||||
/// <summary>
|
||||
/// Decks for the unlimited format.
|
||||
/// </summary>
|
||||
[Key("user_deck_unlimited")]
|
||||
public UserFormatDeckInfo UserUnlimitedDecks { get; set; } = new UserFormatDeckInfo();
|
||||
|
||||
/// <summary>
|
||||
/// Decks for the unlimited format.
|
||||
/// </summary>
|
||||
[Key("user_deck_my_rotation")]
|
||||
public UserFormatDeckInfo UserMyRotationDecks { get; set; } = new UserFormatDeckInfo();
|
||||
|
||||
/// <summary>
|
||||
/// The list of cards and how many of each this user has.
|
||||
/// </summary>
|
||||
[Key("user_card_list")]
|
||||
public List<UserCard> UserCards { get; set; } = new List<UserCard>();
|
||||
|
||||
/// <summary>
|
||||
/// The classes a user has and their stats.
|
||||
/// </summary>
|
||||
[Key("user_class_list")]
|
||||
public List<UserClass> UserClasses { get; set; } = new List<UserClass>();
|
||||
|
||||
/// <summary>
|
||||
/// Mapping of SleeveId to a <see cref="SleeveIdentifier"/> object.
|
||||
/// </summary>
|
||||
[Key("user_sleeve_list")]
|
||||
public Dictionary<string, SleeveIdentifier> Sleeves { get; set; } = new Dictionary<string, SleeveIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// The emblems available to this user.
|
||||
/// </summary>
|
||||
[Key("user_emblem_list")]
|
||||
public List<EmblemIdentifier> UserEmblems { get; set; } = new List<EmblemIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// The degrees available to this user.
|
||||
/// </summary>
|
||||
[Key("degree_id")]
|
||||
public List<DegreeIdentifier> UserDegrees { get; set; } = new List<DegreeIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// Leader skins available to the leader.
|
||||
/// </summary>
|
||||
[Key("user_leader_skin_list")]
|
||||
public Dictionary<string, UserLeaderSkin> LeaderSkins { get; set; } = new Dictionary<string, UserLeaderSkin>();
|
||||
|
||||
/// <summary>
|
||||
/// Backgrounds for 'My Page' the user has collected.
|
||||
/// </summary>
|
||||
[Key("user_mypage_list")]
|
||||
public List<ulong> MyPageBackgrounds { get; set; } = new List<ulong>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Advanced Player Data
|
||||
|
||||
/// <summary>
|
||||
/// Maps a deck format (as a string) to info about ranked for that format.
|
||||
/// </summary>
|
||||
[Key("user_rank")]
|
||||
public Dictionary<string, UserRankInfo> UserRankInfo { get; set; } = new Dictionary<string, UserRankInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// The number of ranked matches for each class the user has played.
|
||||
/// </summary>
|
||||
[Key("user_rank_match_list")]
|
||||
public List<UserRankedMatches> UserRankedMatches { get; set; } = new List<UserRankedMatches>();
|
||||
|
||||
/// <summary>
|
||||
/// The daily login bonuses currently going on, including if the player should receive the next reward for any.
|
||||
/// </summary>
|
||||
[Key("daily_login_bonus")]
|
||||
public DailyLoginBonus DailyLoginBonus { get; set; } = new DailyLoginBonus();
|
||||
|
||||
/// <summary>
|
||||
/// User configuration for the arena.
|
||||
/// </summary>
|
||||
[Key("challenge_config")]
|
||||
public ArenaConfig ArenaConfig { get; set; } = new ArenaConfig();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Global Data
|
||||
|
||||
/// <summary>
|
||||
/// Cards that have had their red ether values overriden.
|
||||
/// </summary>
|
||||
[Key("red_ether_overwrite_list")]
|
||||
public List<RedEtherOverride> RedEtherOverrides { get; set; } = new List<RedEtherOverride>();
|
||||
|
||||
/// <summary>
|
||||
/// Cards that are currently undergoing maintenance.
|
||||
/// </summary>
|
||||
[Key("maintenance_card_list")]
|
||||
public List<CardIdentifier> MaintenanceCards { get; set; } = new List<CardIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// The arena formats currently available.
|
||||
/// </summary>
|
||||
[Key("arena_info")]
|
||||
public List<ArenaInfo> ArenaInfos { get; set; } = new List<ArenaInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary of rank id to information about that rank.
|
||||
/// </summary>
|
||||
[Key("rank_info")]
|
||||
public Dictionary<string, RankInfo> RankInfo { get; set; } = new Dictionary<string, RankInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary mapping a class level to information about that level.
|
||||
/// </summary>
|
||||
[Key("class_exp")]
|
||||
public Dictionary<string, ClassExp> ClassExp { get; set; } = new Dictionary<string, ClassExp>();
|
||||
|
||||
/// <summary>
|
||||
/// Card ids that should not show up on loading screen tips.
|
||||
/// </summary>
|
||||
[Key("loading_exclusion_card_list")]
|
||||
public List<long> LoadingTipCardExclusions { get; set; } = new List<long>();
|
||||
|
||||
/// <summary>
|
||||
/// The default settings for every user.
|
||||
/// </summary>
|
||||
[Key("default_setting")]
|
||||
public DefaultSettings DefaultSettings { get; set; } = new DefaultSettings();
|
||||
|
||||
/// <summary>
|
||||
/// Any cards that are restricted in unlimited, and the maximum count that can be run of the card.
|
||||
/// </summary>
|
||||
[Key("unlimited_restricted_base_card_id_list")]
|
||||
public Dictionary<string, int> UnlimitedBanList { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
/// <summary>
|
||||
/// Sets currently available in rotation.
|
||||
/// </summary>
|
||||
[Key("rotation_card_set_id_list")]
|
||||
public List<CardSetIdentifier> RotationSets { get; set; } = new List<CardSetIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// Allows cards out of your 'My Rotation' to still be used. TODO investigate
|
||||
/// </summary>
|
||||
[Key("reprinted_base_card_ids")]
|
||||
public Dictionary<string, long> ReprintedCards { get; set; } = new Dictionary<string, long>();
|
||||
|
||||
/// <summary>
|
||||
/// Something to do with destroying cards. TODO investigate
|
||||
/// </summary>
|
||||
[Key("spot_cards")]
|
||||
public Dictionary<string, int> SpotCards { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
/// <summary>
|
||||
/// Info about the next set to be released? TODO investigate
|
||||
/// </summary>
|
||||
[Key("pre_release_info")]
|
||||
public PreReleaseInfo? PreReleaseInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Information for the 'My Rotation' mode.
|
||||
/// </summary>
|
||||
[Key("my_rotation_info")]
|
||||
public MyRotationInfo? MyRotationInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Information about some avatar mode? TODO investigate
|
||||
/// </summary>
|
||||
[Key("avatar_info")]
|
||||
public MyRotationInfo? AvatarRotationInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// List of features that are undergoing maintenance.
|
||||
/// </summary>
|
||||
[Key("feature_maintenance_list")]
|
||||
public List<FeatureMaintenance> FeatureMaintenances { get; set; } = new List<FeatureMaintenance>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Special deals on crystal purchases.
|
||||
/// </summary>
|
||||
[Key("special_crystal_info")]
|
||||
public List<SpecialCrystalInfo> SpecialCrystalInfos { get; set; } = new List<SpecialCrystalInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// Current battle pass levels and required points for each.
|
||||
/// </summary>
|
||||
[Key("battle_pass_level_info")]
|
||||
public Dictionary<string, BattlePassLevel>? BattlePassLevelInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Battlefields that can currently be picked.
|
||||
/// </summary>
|
||||
[Key("open_battle_field_id_list")]
|
||||
public Dictionary<string, int> OpenBattlefieldIds { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Misc Data
|
||||
|
||||
/// <summary>
|
||||
/// What loot box features are disabled for this user.
|
||||
/// </summary>
|
||||
[Key("loot_box_regulation")]
|
||||
public LootBoxRegulations LootBoxRegulations { get; set; } = new LootBoxRegulations();
|
||||
|
||||
/// <summary>
|
||||
/// Something about whether the user has an invite notification.
|
||||
/// </summary>
|
||||
[Key("gathering_info")]
|
||||
public GatheringInfo GatheringInfo { get; set; } = new GatheringInfo();
|
||||
|
||||
/// <summary>
|
||||
/// User configuration.
|
||||
/// </summary>
|
||||
[Key("user_config")]
|
||||
public UserConfig UserConfig { get; set; } = new UserConfig();
|
||||
|
||||
#endregion
|
||||
}
|
||||
12
SVSim.EmulatedEntrypoint/Models/Dtos/ShopExpiryInfo.cs
Normal file
12
SVSim.EmulatedEntrypoint/Models/Dtos/ShopExpiryInfo.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class ShopExpiryInfo
|
||||
{
|
||||
[Key("sales_period_time")]
|
||||
public DateTime? SalesPeriodTime { get; set; }
|
||||
[Key("sales_period_series")]
|
||||
public int? SalesPeriodSeries { get; set; }
|
||||
}
|
||||
16
SVSim.EmulatedEntrypoint/Models/Dtos/SleeveIdentifier.cs
Normal file
16
SVSim.EmulatedEntrypoint/Models/Dtos/SleeveIdentifier.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// Identifies a card sleeve.
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class SleeveIdentifier
|
||||
{
|
||||
/// <summary>
|
||||
/// The id of the sleeve.
|
||||
/// </summary>
|
||||
[Key("sleeve_id")]
|
||||
public int SleeveId { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class SpecialCrystalInfo
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class SpecialRotationSchedule
|
||||
{
|
||||
[Key("gathering")]
|
||||
public DateRange Gathering { get; set; } = new DateRange();
|
||||
[Key("free_battle")]
|
||||
public DateRange FreeBattle { get; set; } = new DateRange();
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class SpecialRotationSetting
|
||||
{
|
||||
[Key("rotation_id")]
|
||||
public int RotationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Formatted as 'setid|setid|setid...'.
|
||||
/// </summary>
|
||||
[Key("card_set_ids")]
|
||||
public string CardSetIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Formatted as 'abilityid|abilityid|abilityid...'.
|
||||
/// </summary>
|
||||
[Key("abilities")]
|
||||
public string Abilities { get; set; }
|
||||
}
|
||||
22
SVSim.EmulatedEntrypoint/Models/Dtos/UserCard.cs
Normal file
22
SVSim.EmulatedEntrypoint/Models/Dtos/UserCard.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// A card in a user's collection and the number possessed.
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class UserCard : CardIdentifier
|
||||
{
|
||||
/// <summary>
|
||||
/// The number of the specified card the user has.
|
||||
/// </summary>
|
||||
[Key("number")]
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether the card is protected from dusting.
|
||||
/// </summary>
|
||||
[Key("is_protected")]
|
||||
public int IsProtected { get; set; }
|
||||
}
|
||||
31
SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs
Normal file
31
SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserClass
|
||||
{
|
||||
[Key("class_id")]
|
||||
public int ClassId { get; set; }
|
||||
|
||||
[Key("is_available")]
|
||||
public int IsAvailable { get; set; }
|
||||
|
||||
[Key("level")]
|
||||
public int Level { get; set; }
|
||||
|
||||
[Key("exp")]
|
||||
public int Exp { get; set; }
|
||||
|
||||
[Key("is_random_leader_skin")]
|
||||
public int IsRandomLeaderSkin { get; set; }
|
||||
|
||||
[Key("leader_skin_id")]
|
||||
public int LeaderSkinId { get; set; }
|
||||
|
||||
[Key("leader_skin_id_list")]
|
||||
public List<int> LeaderSkinIds { get; set; } = new List<int>();
|
||||
|
||||
[Key("default_leader_skin_id")]
|
||||
public int DefaultLeaderSkinId { get; set; }
|
||||
}
|
||||
22
SVSim.EmulatedEntrypoint/Models/Dtos/UserConfig.cs
Normal file
22
SVSim.EmulatedEntrypoint/Models/Dtos/UserConfig.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserConfig
|
||||
{
|
||||
[Key("receive_invitation")]
|
||||
public int ReceiveInvitation { get; set; }
|
||||
[Key("receive_invitation_in_battle")]
|
||||
public int ReceiveInvitationInBattle { get; set; }
|
||||
[Key("receive_invitation_in_offline")]
|
||||
public int ReceiveInvitationInOffline { get; set; }
|
||||
[Key("receive_friend_apply")]
|
||||
public int ReceiveFriendApply { get; set; }
|
||||
[Key("is_allow_send_adjust")]
|
||||
public int IsAllowSendAdjust { get; set; }
|
||||
[Key("is_foil_preferred")]
|
||||
public int IsFoilPreferred { get; set; }
|
||||
[Key("is_prize_preferred")]
|
||||
public int IsPrizePreferred { get; set; }
|
||||
}
|
||||
52
SVSim.EmulatedEntrypoint/Models/Dtos/UserCurrency.cs
Normal file
52
SVSim.EmulatedEntrypoint/Models/Dtos/UserCurrency.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using MessagePack;
|
||||
using SVSim.Database.Models;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserCurrency
|
||||
{
|
||||
[Key("viewer_id")]
|
||||
public ulong ViewerId { get; set; }
|
||||
[Key("crystal")]
|
||||
public ulong Crystals { get; set; }
|
||||
[Key("crystal_android")]
|
||||
public ulong AndroidCrystals { get; set; }
|
||||
[Key("crystal_ios")]
|
||||
public ulong IosCrystals { get; set; }
|
||||
[Key("crystal_steam")]
|
||||
public ulong SteamCrystals { get; set; }
|
||||
[Key("crystal_dmm")]
|
||||
public ulong DmmCrystals { get; set; }
|
||||
[Key("free_crystal")]
|
||||
public ulong FreeCrystals { get; set; }
|
||||
[Key("total_crystal")]
|
||||
public ulong TotalCrystals { get; set; }
|
||||
[Key("life_total_crystal")]
|
||||
public ulong LifeTotalCrystals { get; set; }
|
||||
[Key("red_ether")]
|
||||
public ulong RedEther { get; set; }
|
||||
[Key("rupy")]
|
||||
public ulong Rupees { get; set; }
|
||||
|
||||
public UserCurrency()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public UserCurrency(Viewer viewer)
|
||||
{
|
||||
ViewerCurrency currency = viewer.Currency;
|
||||
this.Crystals = currency.Crystals;
|
||||
this.RedEther = currency.RedEther;
|
||||
this.LifeTotalCrystals = currency.LifeTotalCrystals;
|
||||
this.TotalCrystals = currency.LifeTotalCrystals;
|
||||
this.Rupees = currency.Rupees;
|
||||
this.FreeCrystals = currency.FreeCrystals;
|
||||
this.AndroidCrystals = currency.AndroidCrystals;
|
||||
this.DmmCrystals = currency.DmmCrystals;
|
||||
this.SteamCrystals = currency.SteamCrystals;
|
||||
this.IosCrystals = currency.IosCrystals;
|
||||
this.ViewerId = viewer.Id;
|
||||
}
|
||||
}
|
||||
41
SVSim.EmulatedEntrypoint/Models/Dtos/UserDeck.cs
Normal file
41
SVSim.EmulatedEntrypoint/Models/Dtos/UserDeck.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// A deck belonging to a user.
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class UserDeck
|
||||
{
|
||||
[Key("deck_no")]
|
||||
public int DeckNumber { get; set; }
|
||||
[Key("class_id")]
|
||||
public int ClassId { get; set; }
|
||||
[Key("sleeve_id")]
|
||||
public int SleeveId { get; set; }
|
||||
[Key("leader_skin_id")]
|
||||
public int LeaderSkinId { get; set; }
|
||||
[Key("deck_name")]
|
||||
public string DeckName { get; set; } = string.Empty;
|
||||
[Key("card_id_array")]
|
||||
public List<int> Cards { get; set; } = new List<int>();
|
||||
[Key("is_complete_deck")]
|
||||
public int IsCompleteDeck { get; set; }
|
||||
[Key("restricted_card_exists")]
|
||||
public bool RestrictedCardExists { get; set; }
|
||||
[Key("is_available_deck")]
|
||||
public int IsAvailable { get; set; }
|
||||
[Key("maintenance_card_ids")]
|
||||
public List<int> MaintenanceCards { get; set; } = new List<int>();
|
||||
[Key("is_include_un_possession_card")]
|
||||
public bool IncludesNonCollectibleCards { get; set; }
|
||||
[Key("is_random_leader_skin")]
|
||||
public int IsRandomLeaderSkin { get; set; }
|
||||
[Key("leader_skin_id_list")]
|
||||
public List<int> LeaderSkinIds { get; set; } = new List<int> { 0 };
|
||||
[Key("order_num")]
|
||||
public int Order { get; set; }
|
||||
[Key("create_deck_time")]
|
||||
public DateTime DeckCreateTime { get; set; }
|
||||
}
|
||||
13
SVSim.EmulatedEntrypoint/Models/Dtos/UserFormatDeckInfo.cs
Normal file
13
SVSim.EmulatedEntrypoint/Models/Dtos/UserFormatDeckInfo.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserFormatDeckInfo
|
||||
{
|
||||
[Key("format")]
|
||||
public string Format { get; set; } = string.Empty;
|
||||
|
||||
[Key("user_deck_list")]
|
||||
public List<UserDeck> UserDecks { get; set; } = new List<UserDeck>();
|
||||
}
|
||||
56
SVSim.EmulatedEntrypoint/Models/Dtos/UserInfo.cs
Normal file
56
SVSim.EmulatedEntrypoint/Models/Dtos/UserInfo.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using MessagePack;
|
||||
using SVSim.Database.Models;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserInfo
|
||||
{
|
||||
[Key("device_type")]
|
||||
public int DeviceType { get; set; }
|
||||
[Key("name")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
[Key("country_code")]
|
||||
public string CountryCode { get; set; } = string.Empty;
|
||||
[Key("max_friend")]
|
||||
public int MaxFriend { get; set; }
|
||||
[Key("last_play_time")]
|
||||
public DateTime LastPlayTime { get; set; }
|
||||
[Key("is_received_two_pick_mission")]
|
||||
public int HasReceivedPickTwoMission { get; set; }
|
||||
[Key("birth")]
|
||||
public long Birthday { get; set; }
|
||||
[Key("selected_emblem_id")]
|
||||
public long SelectedEmblemId { get; set; }
|
||||
[Key("selected_degree_id")]
|
||||
public int SelectedDegreeId { get; set; }
|
||||
[Key("mission_change_time")]
|
||||
public DateTime MissionChangeTime { get; set; }
|
||||
[Key("mission_receive_type")]
|
||||
public int MissionReceiveType { get; set; }
|
||||
[Key("is_official")]
|
||||
public int IsOfficial { get; set; }
|
||||
[Key("is_official_mark_displayed")]
|
||||
public int IsOfficialMarkDisplayed { get; set; }
|
||||
|
||||
public UserInfo()
|
||||
{
|
||||
}
|
||||
|
||||
public UserInfo(int deviceType, Viewer viewer)
|
||||
{
|
||||
this.DeviceType = deviceType;
|
||||
this.Name = viewer.DisplayName;
|
||||
this.CountryCode = viewer.Info.CountryCode;
|
||||
this.MaxFriend = viewer.Info.MaxFriends;
|
||||
this.LastPlayTime = viewer.LastLogin;
|
||||
this.HasReceivedPickTwoMission = viewer.MissionData.HasReceivedPickTwoMission ? 1 : 0;
|
||||
this.Birthday = viewer.Info.BirthDate.Ticks;
|
||||
this.SelectedEmblemId = viewer.Info.SelectedEmblem.Id;
|
||||
this.SelectedDegreeId = viewer.Info.SelectedDegree.Id;
|
||||
this.MissionChangeTime = viewer.MissionData.MissionChangeTime;
|
||||
this.MissionReceiveType = viewer.MissionData.MissionReceiveType;
|
||||
this.IsOfficial = viewer.Info.IsOfficial ? 1 : 0;
|
||||
this.IsOfficialMarkDisplayed = viewer.Info.IsOfficialMarkDisplayed ? 1 : 0;
|
||||
}
|
||||
}
|
||||
13
SVSim.EmulatedEntrypoint/Models/Dtos/UserItem.cs
Normal file
13
SVSim.EmulatedEntrypoint/Models/Dtos/UserItem.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserItem
|
||||
{
|
||||
[Key("item_id")]
|
||||
public int ItemId { get; set; }
|
||||
|
||||
[Key("number")]
|
||||
public int Number { get; set; }
|
||||
}
|
||||
18
SVSim.EmulatedEntrypoint/Models/Dtos/UserLeaderSkin.cs
Normal file
18
SVSim.EmulatedEntrypoint/Models/Dtos/UserLeaderSkin.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserLeaderSkin
|
||||
{
|
||||
[Key("leader_skin_id")]
|
||||
public int Id { get; set; }
|
||||
[Key("leader_skin_name")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
[Key("class_id")]
|
||||
public int ClassId { get; set; }
|
||||
[Key("emote_id")]
|
||||
public int EmoteId { get; set; }
|
||||
[Key("is_owned")]
|
||||
public bool IsOwned { get; set; }
|
||||
}
|
||||
16
SVSim.EmulatedEntrypoint/Models/Dtos/UserPromotionMatch.cs
Normal file
16
SVSim.EmulatedEntrypoint/Models/Dtos/UserPromotionMatch.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserPromotionMatch
|
||||
{
|
||||
[Key("match_count")]
|
||||
public int MatchCount { get; set; }
|
||||
[Key("battle_result")]
|
||||
public int BattleResult { get; set; }
|
||||
[Key("win")]
|
||||
public int Wins { get; set; }
|
||||
[Key("lose")]
|
||||
public int Losses { get; set; }
|
||||
}
|
||||
34
SVSim.EmulatedEntrypoint/Models/Dtos/UserRankInfo.cs
Normal file
34
SVSim.EmulatedEntrypoint/Models/Dtos/UserRankInfo.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserRankInfo
|
||||
{
|
||||
[Key("deck_format")]
|
||||
public int DeckFormat { get; set; }
|
||||
[Key("rank")]
|
||||
public int Rank { get; set; }
|
||||
[Key("battle_point")]
|
||||
public int BattlePoints { get; set; }
|
||||
[Key("successive_win_number")]
|
||||
public int WinStreak { get; set; }
|
||||
[Key("successive_losses_number")]
|
||||
public int LossStreak { get; set; }
|
||||
[Key("is_promotion")]
|
||||
public int IsPromotion { get; set; }
|
||||
[Key("is_master_rank")]
|
||||
public int IsMasterRank { get; set; }
|
||||
[Key("is_grand_master_rank")]
|
||||
public bool IsGrandMasterRank { get; set; }
|
||||
[Key("master_point")]
|
||||
public int MasterPoints { get; set; }
|
||||
[Key("period_grand_master_point")]
|
||||
public int PeriodGrandMasterPoints { get; set; }
|
||||
[Key("target_grand_master_point")]
|
||||
public int TargetGrandMasterPoints { get; set; }
|
||||
[Key("current_grand_master_point")]
|
||||
public int CurrentGrandMasterPoints { get; set; }
|
||||
[Key("user_promotion_match")]
|
||||
public UserPromotionMatch? UserPromotionMatch { get; set; }
|
||||
}
|
||||
18
SVSim.EmulatedEntrypoint/Models/Dtos/UserRankedMatches.cs
Normal file
18
SVSim.EmulatedEntrypoint/Models/Dtos/UserRankedMatches.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
[MessagePackObject]
|
||||
public class UserRankedMatches
|
||||
{
|
||||
[Key("class_id")]
|
||||
public int ClassId { get; set; }
|
||||
[Key("match_count")]
|
||||
public int MatchCount { get; set; }
|
||||
[Key("win")]
|
||||
public int Wins { get; set; }
|
||||
[Key("lose")]
|
||||
public int Losses { get; set; }
|
||||
[Key("viewer_id")]
|
||||
public ulong ViewerId { get; set; }
|
||||
}
|
||||
16
SVSim.EmulatedEntrypoint/Models/Dtos/UserTutorial.cs
Normal file
16
SVSim.EmulatedEntrypoint/Models/Dtos/UserTutorial.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// The state of a user's tutorial progress.
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class UserTutorial
|
||||
{
|
||||
/// <summary>
|
||||
/// The current tutorial step they are on.
|
||||
/// </summary>
|
||||
[Key("tutorial_step")]
|
||||
public int TutorialStep { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user