Lots of data and model setup
This commit is contained in:
@@ -22,7 +22,7 @@ public class DCGEDatabaseConfiguration
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Assemblies to be searched for classes implementing <see cref="BaseEntity{TKey}"/> to be added as <see cref="DbSet{TEntity}"/>s. Should be set in code, not in appsettings.
|
/// Assemblies to be searched for classes implementing <see cref="BaseEntity{TKey}"/> to be added as <see cref="DbSet{TEntity}"/>s. Should be set in code, not in appsettings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Assembly> DbSetSearchAssemblies { get; set; }
|
public List<Assembly> DbSetSearchAssemblies { get; set; } = new List<Assembly>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class DCGEDbContext : DbContext
|
|||||||
{
|
{
|
||||||
if (entityEntry.Entity is ITimeTrackedEntity timeTrackedEntity)
|
if (entityEntry.Entity is ITimeTrackedEntity timeTrackedEntity)
|
||||||
{
|
{
|
||||||
if (entityEntry.State is EntityState.Added && timeTrackedEntity.DateCreated is null)
|
if (entityEntry.State is EntityState.Added && timeTrackedEntity.DateCreated == DateTime.MinValue)
|
||||||
{
|
{
|
||||||
timeTrackedEntity.DateCreated = DateTime.UtcNow;
|
timeTrackedEntity.DateCreated = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,15 @@ public class DCGEDbContext : DbContext
|
|||||||
{
|
{
|
||||||
modelBuilder.Entity(typeInfo.AsType());
|
modelBuilder.Entity(typeInfo.AsType());
|
||||||
}
|
}
|
||||||
|
foreach (var typeInfo in assembly.DefinedTypes.Where(type => type.IsAssignableTo(typeof(IDataSeeder))))
|
||||||
|
{
|
||||||
|
((IDataSeeder?)Activator.CreateInstance(typeInfo.AsType()))?.Seed(modelBuilder);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity<DeckEntry>()
|
||||||
|
.OwnsMany<DeckCard>(de => de.Cards);
|
||||||
|
|
||||||
base.OnModelCreating(modelBuilder);
|
base.OnModelCreating(modelBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
8
DCGEngine.Database/Interfaces/IDataSeeder.cs
Normal file
8
DCGEngine.Database/Interfaces/IDataSeeder.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace DCGEngine.Database.Interfaces;
|
||||||
|
|
||||||
|
public interface IDataSeeder
|
||||||
|
{
|
||||||
|
void Seed(ModelBuilder builder);
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ public interface ITimeTrackedEntity
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The <see cref="DateTime"/> this entity was first added to the database.
|
/// The <see cref="DateTime"/> this entity was first added to the database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? DateCreated { get; set; }
|
public DateTime DateCreated { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The <see cref="DateTime"/> this entity was last updated.
|
/// The <see cref="DateTime"/> this entity was last updated.
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ public class BaseEntity<TKey> : ITimeTrackedEntity, IDbTrackedEntity
|
|||||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
public virtual TKey Id { get; set; }
|
public virtual TKey Id { get; set; }
|
||||||
|
|
||||||
public DateTime? DateCreated { get; set; }
|
public DateTime DateCreated { get; set; } = DateTime.MinValue;
|
||||||
|
|
||||||
public DateTime? DateUpdated { get; set; }
|
public DateTime? DateUpdated { get; set; }
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using DCGEngine.Database.Interfaces;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace DCGEngine.Database.Models;
|
namespace DCGEngine.Database.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A deck consisting of multiple <see cref="CardEntry"/> stored in the DB.
|
/// A deck consisting of multiple <see cref="CardEntry"/> stored in the DB.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class DeckEntry : BaseEntity<long>
|
public abstract class DeckEntry : BaseEntity<Guid>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// How this deck is referred to internally.
|
/// How this deck is referred to internally.
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DCGEngine.Engine", "DCGEngine.Engine\DCGEngine.Engine.csproj", "{F7124233-E421-4770-A63F-66623529116D}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVSim.Content", "SVSim.Content\SVSim.Content.csproj", "{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVSim.Content", "SVSim.Content\SVSim.Content.csproj", "{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVSim.EmulatedEntrypoint", "SVSim.EmulatedEntrypoint\SVSim.EmulatedEntrypoint.csproj", "{B345A858-043F-404E-9D98-B5A6CA2EACA9}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVSim.EmulatedEntrypoint", "SVSim.EmulatedEntrypoint\SVSim.EmulatedEntrypoint.csproj", "{B345A858-043F-404E-9D98-B5A6CA2EACA9}"
|
||||||
@@ -18,10 +16,6 @@ Global
|
|||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{F7124233-E421-4770-A63F-66623529116D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F7124233-E421-4770-A63F-66623529116D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F7124233-E421-4770-A63F-66623529116D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F7124233-E421-4770-A63F-66623529116D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{7D990EA3-0A15-4A71-A992-7E0FC8F4F677}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
|||||||
215
SVSim.Database/DataSeeders/BaseDataSeeder.cs
Normal file
215
SVSim.Database/DataSeeders/BaseDataSeeder.cs
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
using System.Globalization;
|
||||||
|
using CsvHelper;
|
||||||
|
using CsvHelper.Configuration;
|
||||||
|
using DCGEngine.Database.Interfaces;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.DataSeeders;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads base data aside from cards into the DB. Cards excluded due to how many of them there are.
|
||||||
|
/// </summary>
|
||||||
|
public class BaseDataSeeder : IDataSeeder
|
||||||
|
{
|
||||||
|
private class ClassEntryMap : ClassMap<ClassEntry>
|
||||||
|
{
|
||||||
|
public ClassEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("id");
|
||||||
|
Map(m => m.Name).Name("name");
|
||||||
|
Map(m => m.DefaultLeaderSkin).Ignore();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class LeaderSkinEntryMap : ClassMap<LeaderSkinEntry>
|
||||||
|
{
|
||||||
|
public LeaderSkinEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("class_chara_id");
|
||||||
|
Map(m => m.Name).Name("class_chara_name");
|
||||||
|
Map(m => m.ClassId).Name("clan");
|
||||||
|
Map(m => m.Class).Ignore();
|
||||||
|
Map(m => m.Viewers).Ignore();
|
||||||
|
Map(m => m.EmoteId).Ignore();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class EmblemEntryMap : ClassMap<EmblemEntry>
|
||||||
|
{
|
||||||
|
public EmblemEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("emblem_id");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private class SleeveEntryMap : ClassMap<SleeveEntry>
|
||||||
|
{
|
||||||
|
public SleeveEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("sleeve_id");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class DegreeEntryMap : ClassMap<DegreeEntry>
|
||||||
|
{
|
||||||
|
public DegreeEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("degree_id");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class BattlefieldEntryMap : ClassMap<BattlefieldEntry>
|
||||||
|
{
|
||||||
|
public BattlefieldEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("value");
|
||||||
|
Map(m => m.IsOpen).Name("is_open");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class MyPageBackgroundEntryMap : ClassMap<MyPageBackgroundEntry>
|
||||||
|
{
|
||||||
|
public MyPageBackgroundEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("id");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ClassExpEntryMap : ClassMap<ClassExpEntry>
|
||||||
|
{
|
||||||
|
public ClassExpEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("level");
|
||||||
|
Map(m => m.NecessaryExp).Name("necessary_exp");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RankInfoEntryMap : ClassMap<RankInfoEntry>
|
||||||
|
{
|
||||||
|
public RankInfoEntryMap()
|
||||||
|
{
|
||||||
|
Map(m => m.Id).Name("rank_id");
|
||||||
|
Map(m => m.Name).Name("rank_name");
|
||||||
|
Map(m => m.NecessaryPoint).Name("necessary_point");
|
||||||
|
Map(m => m.AccumulatePoint).Name("accumulate_point");
|
||||||
|
Map(m => m.LowerLimitPoint).Name("lower_limit_point");
|
||||||
|
Map(m => m.BaseAddBp).Name("base_add_bp");
|
||||||
|
Map(m => m.BaseDropBp).Name("base_drop_bp");
|
||||||
|
Map(m => m.StreakBonusPt).Name("streak_bonus_pt");
|
||||||
|
Map(m => m.WinBonus).Name("win_bonus");
|
||||||
|
Map(m => m.LoseBonus).Name("lose_bonus");
|
||||||
|
Map(m => m.MaxWinBonus).Name("max_win_bonus");
|
||||||
|
Map(m => m.MaxLoseBonus).Name("max_lose_bonus");
|
||||||
|
Map(m => m.IsPromotionWar).Name("is_promotion_war");
|
||||||
|
Map(m => m.MatchCount).Name("match_count");
|
||||||
|
Map(m => m.NecessaryWin).Name("necessary_win");
|
||||||
|
Map(m => m.ResetLose).Name("reset_lose");
|
||||||
|
Map(m => m.AccumulateMasterPoint).Name("accumulate_master_point");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Seed(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
List<ClassEntry> classes = new();
|
||||||
|
List<LeaderSkinEntry> leaderSkins = new();
|
||||||
|
List<EmblemEntry> emblems = new();
|
||||||
|
List<DegreeEntry> degrees = new();
|
||||||
|
List<SleeveEntry> sleeves = new();
|
||||||
|
List<BattlefieldEntry> battlefields = new();
|
||||||
|
List<MyPageBackgroundEntry> myPageBackgrounds = new();
|
||||||
|
List<ClassExpEntry> classexp = new();
|
||||||
|
List<RankInfoEntry> rankinfos = new();
|
||||||
|
|
||||||
|
using (StreamReader reader = new("data/classes.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<ClassEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<ClassEntry> records = csv.GetRecords<ClassEntry>();
|
||||||
|
classes.AddRange(records);
|
||||||
|
}
|
||||||
|
|
||||||
|
using (StreamReader reader = new("data/leaderskins.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<LeaderSkinEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<LeaderSkinEntry> records = csv.GetRecords<LeaderSkinEntry>();
|
||||||
|
leaderSkins.AddRange(records);
|
||||||
|
|
||||||
|
leaderSkins.ForEach(skin =>
|
||||||
|
{
|
||||||
|
if (skin.ClassId == 0)
|
||||||
|
{
|
||||||
|
skin.ClassId = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load rest of default data
|
||||||
|
using (StreamReader reader = new("data/emblems.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<EmblemEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<EmblemEntry> records = csv.GetRecords<EmblemEntry>();
|
||||||
|
emblems.AddRange(records);
|
||||||
|
}
|
||||||
|
using (StreamReader reader = new("data/degrees.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<DegreeEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<DegreeEntry> records = csv.GetRecords<DegreeEntry>();
|
||||||
|
degrees.AddRange(records);
|
||||||
|
}
|
||||||
|
using (StreamReader reader = new("data/sleeves.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<SleeveEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<SleeveEntry> records = csv.GetRecords<SleeveEntry>();
|
||||||
|
sleeves.AddRange(records);
|
||||||
|
}
|
||||||
|
using (StreamReader reader = new("data/battlefields.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<BattlefieldEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<BattlefieldEntry> records = csv.GetRecords<BattlefieldEntry>();
|
||||||
|
battlefields.AddRange(records);
|
||||||
|
}
|
||||||
|
using (StreamReader reader = new("data/mypagebackgrounds.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<MyPageBackgroundEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<MyPageBackgroundEntry> records = csv.GetRecords<MyPageBackgroundEntry>();
|
||||||
|
myPageBackgrounds.AddRange(records);
|
||||||
|
}
|
||||||
|
using (StreamReader reader = new("data/ranks.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<RankInfoEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<RankInfoEntry> records = csv.GetRecords<RankInfoEntry>();
|
||||||
|
rankinfos.AddRange(records);
|
||||||
|
}
|
||||||
|
using (StreamReader reader = new("data/classexp.csv"))
|
||||||
|
{
|
||||||
|
using CsvReader csv = new(reader, CultureInfo.InvariantCulture);
|
||||||
|
csv.Context.RegisterClassMap<ClassExpEntryMap>();
|
||||||
|
|
||||||
|
IEnumerable<ClassExpEntry> records = csv.GetRecords<ClassExpEntry>();
|
||||||
|
classexp.AddRange(records);
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.Entity<ClassEntry>().HasData(classes);
|
||||||
|
builder.Entity<LeaderSkinEntry>().HasData(leaderSkins);
|
||||||
|
builder.Entity<EmblemEntry>().HasData(emblems);
|
||||||
|
builder.Entity<SleeveEntry>().HasData(sleeves);
|
||||||
|
builder.Entity<DegreeEntry>().HasData(degrees);
|
||||||
|
builder.Entity<BattlefieldEntry>().HasData(battlefields);
|
||||||
|
builder.Entity<MyPageBackgroundEntry>().HasData(myPageBackgrounds);
|
||||||
|
builder.Entity<RankInfoEntry>().HasData(rankinfos);
|
||||||
|
builder.Entity<ClassExpEntry>().HasData(classexp);
|
||||||
|
}
|
||||||
|
}
|
||||||
28
SVSim.Database/DataSeeders/DefaultSettingsSeeder.cs
Normal file
28
SVSim.Database/DataSeeders/DefaultSettingsSeeder.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using DCGEngine.Database.Interfaces;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.DataSeeders;
|
||||||
|
|
||||||
|
public class DefaultSettingsSeeder : IDataSeeder
|
||||||
|
{
|
||||||
|
public void Seed(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<GameConfiguration>().HasData(new GameConfiguration
|
||||||
|
{
|
||||||
|
Id = "default",
|
||||||
|
DefaultCrystals = 50000,
|
||||||
|
DefaultRupees = 50000,
|
||||||
|
DefaultEther = 50000,
|
||||||
|
MaxFriends = 20,
|
||||||
|
DefaultEmblemId = 100000000,
|
||||||
|
DefaultDegreeId = 300003,
|
||||||
|
DefaultMyPageBackgroundId = 100000000,
|
||||||
|
DefaultSleeveId = 3000011,
|
||||||
|
DefaultDegree = null,
|
||||||
|
DefaultEmblem = null,
|
||||||
|
DefaultSleeve = null,
|
||||||
|
DefaultMyPageBackground = null
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
18
SVSim.Database/Enums/Format.cs
Normal file
18
SVSim.Database/Enums/Format.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
namespace SVSim.Database.Enums;
|
||||||
|
|
||||||
|
public enum Format
|
||||||
|
{
|
||||||
|
Rotation,
|
||||||
|
Unlimited,
|
||||||
|
Max,
|
||||||
|
None = 2,
|
||||||
|
PreRotation,
|
||||||
|
Sealed,
|
||||||
|
MyRotation,
|
||||||
|
TwoPick = 10,
|
||||||
|
Hof = 31,
|
||||||
|
Windfall = 33,
|
||||||
|
Avatar = 39,
|
||||||
|
All = 100,
|
||||||
|
Crossover = 104
|
||||||
|
}
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
||||||
using SVSim.Database;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace SVSim.Database.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(SVSimDbContext))]
|
|
||||||
[Migration("20240907191709_Initial")]
|
|
||||||
partial class Initial
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder.HasAnnotation("ProductVersion", "8.0.8");
|
|
||||||
|
|
||||||
modelBuilder.Entity("DCGEngine.Database.Models.CardEntry", b =>
|
|
||||||
{
|
|
||||||
b.Property<long>("Id")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<int?>("Attack")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateCreated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateUpdated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<int?>("Defense")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<string>("Discriminator")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(21)
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<string>("InternalName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<int?>("PrimaryResourceCost")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<long?>("ShadowverseDeckEntryId")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ShadowverseDeckEntryId");
|
|
||||||
|
|
||||||
b.ToTable("CardEntry");
|
|
||||||
|
|
||||||
b.HasDiscriminator().HasValue("CardEntry");
|
|
||||||
|
|
||||||
b.UseTphMappingStrategy();
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("SVSim.Database.Models.ShadowverseDeckEntry", b =>
|
|
||||||
{
|
|
||||||
b.Property<long>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateCreated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateUpdated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<string>("InternalName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("ShadowverseDeckEntry");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("SVSim.Database.Models.SocialAccountConnection", b =>
|
|
||||||
{
|
|
||||||
b.Property<Guid>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<ulong>("AccountId")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<int>("AccountType")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateCreated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateUpdated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<ulong>("ViewerId")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ViewerId");
|
|
||||||
|
|
||||||
b.ToTable("SocialAccountConnection");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("SVSim.Database.Models.Viewer", b =>
|
|
||||||
{
|
|
||||||
b.Property<ulong>("Id")
|
|
||||||
.ValueGeneratedOnAdd()
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateCreated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("DateUpdated")
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<string>("DisplayName")
|
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("TEXT");
|
|
||||||
|
|
||||||
b.Property<ulong>("ShortUdid")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Viewer");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("SVSim.Database.Models.ShadowverseCardEntry", b =>
|
|
||||||
{
|
|
||||||
b.HasBaseType("DCGEngine.Database.Models.CardEntry");
|
|
||||||
|
|
||||||
b.HasDiscriminator().HasValue("ShadowverseCardEntry");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("DCGEngine.Database.Models.CardEntry", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("SVSim.Database.Models.ShadowverseDeckEntry", null)
|
|
||||||
.WithMany("Cards")
|
|
||||||
.HasForeignKey("ShadowverseDeckEntryId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("SVSim.Database.Models.SocialAccountConnection", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("SVSim.Database.Models.Viewer", "Viewer")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("ViewerId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Navigation("Viewer");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("SVSim.Database.Models.ShadowverseDeckEntry", b =>
|
|
||||||
{
|
|
||||||
b.Navigation("Cards");
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace SVSim.Database.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class Initial : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "ShadowverseDeckEntry",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<long>(type: "INTEGER", nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
DateCreated = table.Column<DateTime>(type: "TEXT", nullable: true),
|
|
||||||
DateUpdated = table.Column<DateTime>(type: "TEXT", nullable: true),
|
|
||||||
InternalName = table.Column<string>(type: "TEXT", nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_ShadowverseDeckEntry", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "Viewer",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<ulong>(type: "INTEGER", nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
DisplayName = table.Column<string>(type: "TEXT", nullable: false),
|
|
||||||
ShortUdid = table.Column<ulong>(type: "INTEGER", nullable: false),
|
|
||||||
DateCreated = table.Column<DateTime>(type: "TEXT", nullable: true),
|
|
||||||
DateUpdated = table.Column<DateTime>(type: "TEXT", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_Viewer", x => x.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "CardEntry",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<long>(type: "INTEGER", nullable: false),
|
|
||||||
InternalName = table.Column<string>(type: "TEXT", nullable: false),
|
|
||||||
Attack = table.Column<int>(type: "INTEGER", nullable: true),
|
|
||||||
Defense = table.Column<int>(type: "INTEGER", nullable: true),
|
|
||||||
PrimaryResourceCost = table.Column<int>(type: "INTEGER", nullable: true),
|
|
||||||
Discriminator = table.Column<string>(type: "TEXT", maxLength: 21, nullable: false),
|
|
||||||
ShadowverseDeckEntryId = table.Column<long>(type: "INTEGER", nullable: true),
|
|
||||||
DateCreated = table.Column<DateTime>(type: "TEXT", nullable: true),
|
|
||||||
DateUpdated = table.Column<DateTime>(type: "TEXT", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_CardEntry", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_CardEntry_ShadowverseDeckEntry_ShadowverseDeckEntryId",
|
|
||||||
column: x => x.ShadowverseDeckEntryId,
|
|
||||||
principalTable: "ShadowverseDeckEntry",
|
|
||||||
principalColumn: "Id");
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "SocialAccountConnection",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<Guid>(type: "TEXT", nullable: false),
|
|
||||||
AccountType = table.Column<int>(type: "INTEGER", nullable: false),
|
|
||||||
AccountId = table.Column<ulong>(type: "INTEGER", nullable: false),
|
|
||||||
ViewerId = table.Column<ulong>(type: "INTEGER", nullable: false),
|
|
||||||
DateCreated = table.Column<DateTime>(type: "TEXT", nullable: true),
|
|
||||||
DateUpdated = table.Column<DateTime>(type: "TEXT", nullable: true)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_SocialAccountConnection", x => x.Id);
|
|
||||||
table.ForeignKey(
|
|
||||||
name: "FK_SocialAccountConnection_Viewer_ViewerId",
|
|
||||||
column: x => x.ViewerId,
|
|
||||||
principalTable: "Viewer",
|
|
||||||
principalColumn: "Id",
|
|
||||||
onDelete: ReferentialAction.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_CardEntry_ShadowverseDeckEntryId",
|
|
||||||
table: "CardEntry",
|
|
||||||
column: "ShadowverseDeckEntryId");
|
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
|
||||||
name: "IX_SocialAccountConnection_ViewerId",
|
|
||||||
table: "SocialAccountConnection",
|
|
||||||
column: "ViewerId");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "CardEntry");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "SocialAccountConnection");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "ShadowverseDeckEntry");
|
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "Viewer");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
33897
SVSim.Database/Migrations/20240929140334_Initial.Designer.cs
generated
Normal file
33897
SVSim.Database/Migrations/20240929140334_Initial.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
7073
SVSim.Database/Migrations/20240929140334_Initial.cs
Normal file
7073
SVSim.Database/Migrations/20240929140334_Initial.cs
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
9
SVSim.Database/Models/BattlefieldEntry.cs
Normal file
9
SVSim.Database/Models/BattlefieldEntry.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class BattlefieldEntry : BaseEntity<int>
|
||||||
|
{
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
public bool IsOpen { get; set; }
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
namespace SVSim.Database.Models;
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
[Owned]
|
[Owned]
|
||||||
public class CollectionInfo
|
public class CardCollectionInfo
|
||||||
{
|
{
|
||||||
public int CraftCost { get; set; }
|
public int CraftCost { get; set; }
|
||||||
public int DustReward { get; set; }
|
public int DustReward { get; set; }
|
||||||
@@ -9,4 +9,14 @@ public class ClassEntry : BaseEntity<int>
|
|||||||
/// The name of the class.
|
/// The name of the class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Name { get; set; } = string.Empty;
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public List<LeaderSkinEntry> LeaderSkins { get; set; } = new List<LeaderSkinEntry>();
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public LeaderSkinEntry? DefaultLeaderSkin => LeaderSkins.FirstOrDefault(skin => skin.Id == Id);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
8
SVSim.Database/Models/ClassExpEntry.cs
Normal file
8
SVSim.Database/Models/ClassExpEntry.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class ClassExpEntry : BaseEntity<int>
|
||||||
|
{
|
||||||
|
public int NecessaryExp { get; set; }
|
||||||
|
}
|
||||||
@@ -4,5 +4,9 @@ namespace SVSim.Database.Models;
|
|||||||
|
|
||||||
public class DegreeEntry : BaseEntity<int>
|
public class DegreeEntry : BaseEntity<int>
|
||||||
{
|
{
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public List<Viewer> Viewers { get; set; } = new List<Viewer>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,11 @@ using DCGEngine.Database.Models;
|
|||||||
|
|
||||||
namespace SVSim.Database.Models;
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
public class EmblemEntry : BaseEntity<long>
|
public class EmblemEntry : BaseEntity<int>
|
||||||
{
|
{
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public List<Viewer> Viewers { get; set; } = new List<Viewer>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
36
SVSim.Database/Models/GameConfiguration.cs
Normal file
36
SVSim.Database/Models/GameConfiguration.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class GameConfiguration : BaseEntity<string>
|
||||||
|
{
|
||||||
|
public ulong DefaultCrystals { get; set; }
|
||||||
|
|
||||||
|
public ulong DefaultRupees { get; set; }
|
||||||
|
|
||||||
|
public ulong DefaultEther { get; set; }
|
||||||
|
|
||||||
|
public int MaxFriends { get; set; }
|
||||||
|
|
||||||
|
#region Foreign Keys
|
||||||
|
|
||||||
|
public int DefaultDegreeId { get; set; }
|
||||||
|
|
||||||
|
public int DefaultEmblemId { get; set; }
|
||||||
|
|
||||||
|
public int DefaultMyPageBackgroundId { get; set; }
|
||||||
|
|
||||||
|
public int DefaultSleeveId { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public DegreeEntry DefaultDegree { get; set; } = new DegreeEntry();
|
||||||
|
public EmblemEntry DefaultEmblem { get; set; } = new EmblemEntry();
|
||||||
|
public MyPageBackgroundEntry DefaultMyPageBackground { get; set; } = new MyPageBackgroundEntry();
|
||||||
|
public SleeveEntry DefaultSleeve { get; set; } = new SleeveEntry();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@ using DCGEngine.Database.Models;
|
|||||||
|
|
||||||
namespace SVSim.Database.Models;
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
public class FormatEntry : BaseEntity<int>
|
public class ItemEntry : BaseEntity<int>
|
||||||
{
|
{
|
||||||
public string Name { get; set; } = string.Empty;
|
public string Name { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
26
SVSim.Database/Models/LeaderSkinEntry.cs
Normal file
26
SVSim.Database/Models/LeaderSkinEntry.cs
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class LeaderSkinEntry : BaseEntity<int>
|
||||||
|
{
|
||||||
|
// Name of the skin
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
// ID of the emote associated with the skin
|
||||||
|
public int EmoteId { get; set; }
|
||||||
|
|
||||||
|
#region Foreign Keys
|
||||||
|
|
||||||
|
public int? ClassId { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public ClassEntry? Class { get; set; }
|
||||||
|
|
||||||
|
public List<Viewer> Viewers { get; set; } = new List<Viewer>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
12
SVSim.Database/Models/MyPageBackgroundEntry.cs
Normal file
12
SVSim.Database/Models/MyPageBackgroundEntry.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class MyPageBackgroundEntry : BaseEntity<int>
|
||||||
|
{
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public List<Viewer> Viewers { get; set; } = new List<Viewer>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
15
SVSim.Database/Models/OwnedCardEntry.cs
Normal file
15
SVSim.Database/Models/OwnedCardEntry.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Represents viewer ownership of a <see cref="ShadowverseCardEntry"/>.
|
||||||
|
/// </summary>
|
||||||
|
[Owned]
|
||||||
|
public class OwnedCardEntry
|
||||||
|
{
|
||||||
|
public CardEntry Card { get; set; } = new ShadowverseCardEntry();
|
||||||
|
public int Count { get; set; }
|
||||||
|
public bool IsProtected { get; set; }
|
||||||
|
}
|
||||||
17
SVSim.Database/Models/OwnedItemEntry.cs
Normal file
17
SVSim.Database/Models/OwnedItemEntry.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
[Owned]
|
||||||
|
public class OwnedItemEntry
|
||||||
|
{
|
||||||
|
public int Count { get; set; }
|
||||||
|
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public ItemEntry Item { get; set; } = new ItemEntry();
|
||||||
|
|
||||||
|
public Viewer Viewer { get; set; } = new Viewer();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
23
SVSim.Database/Models/RankInfoEntry.cs
Normal file
23
SVSim.Database/Models/RankInfoEntry.cs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class RankInfoEntry : BaseEntity<int>
|
||||||
|
{
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
public int NecessaryPoint { get; set; }
|
||||||
|
public int AccumulatePoint { get; set; }
|
||||||
|
public int LowerLimitPoint { get; set; }
|
||||||
|
public int BaseAddBp { get; set; }
|
||||||
|
public int BaseDropBp { get; set; }
|
||||||
|
public int StreakBonusPt { get; set; }
|
||||||
|
public double WinBonus { get; set; }
|
||||||
|
public double LoseBonus { get; set; }
|
||||||
|
public int MaxWinBonus { get; set; }
|
||||||
|
public int MaxLoseBonus { get; set; }
|
||||||
|
public int IsPromotionWar { get; set; }
|
||||||
|
public int MatchCount { get; set; }
|
||||||
|
public int NecessaryWin { get; set; }
|
||||||
|
public int ResetLose { get; set; }
|
||||||
|
public int AccumulateMasterPoint { get; set; }
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@ public class ShadowverseCardEntry : CardEntry
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Info about this card in the collection, if it can be collected.
|
/// Info about this card in the collection, if it can be collected.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public CollectionInfo? CollectionInfo { get; set; }
|
public CardCollectionInfo? CollectionInfo { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -28,10 +28,5 @@ public class ShadowverseCardEntry : CardEntry
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public ClassEntry? Class { get; set; }
|
public ClassEntry? Class { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The set this card belongs to.
|
|
||||||
/// </summary>
|
|
||||||
public CardSetEntry CardSet { get; set; } = new ShadowverseCardSetEntry();
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -5,4 +5,6 @@ namespace SVSim.Database.Models;
|
|||||||
|
|
||||||
public class ShadowverseCardSetEntry : CardSetEntry
|
public class ShadowverseCardSetEntry : CardSetEntry
|
||||||
{
|
{
|
||||||
|
public bool IsInRotation { get; set; }
|
||||||
|
public bool IsBasic { get; set; }
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,22 @@
|
|||||||
using DCGEngine.Database.Models;
|
using DCGEngine.Database.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using SVSim.Database.Enums;
|
||||||
|
|
||||||
namespace SVSim.Database.Models;
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
public class ShadowverseDeckEntry : DeckEntry
|
public class ShadowverseDeckEntry : DeckEntry
|
||||||
{
|
{
|
||||||
|
public int Number { get; set; }
|
||||||
|
public Format Format { get; set; }
|
||||||
|
public bool RandomLeaderSkin { get; set; }
|
||||||
|
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public ClassEntry Class { get; set; } = new ClassEntry();
|
||||||
|
|
||||||
|
public SleeveEntry Sleeve { get; set; } = new SleeveEntry();
|
||||||
|
|
||||||
|
public LeaderSkinEntry LeaderSkin { get; set; } = new LeaderSkinEntry();
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
13
SVSim.Database/Models/SleeveEntry.cs
Normal file
13
SVSim.Database/Models/SleeveEntry.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
public class SleeveEntry : BaseEntity<int>
|
||||||
|
{
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public List<Viewer> Viewers = new List<Viewer>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using DCGEngine.Database.Models;
|
using DCGEngine.Database.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using SVSim.Database.Enums;
|
using SVSim.Database.Enums;
|
||||||
|
|
||||||
namespace SVSim.Database.Models;
|
namespace SVSim.Database.Models;
|
||||||
@@ -7,11 +8,9 @@ namespace SVSim.Database.Models;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A connection between a social account (ie facebook) and a viewer.
|
/// A connection between a social account (ie facebook) and a viewer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class SocialAccountConnection : BaseEntity<Guid>
|
[Owned]
|
||||||
|
public class SocialAccountConnection
|
||||||
{
|
{
|
||||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
||||||
public override Guid Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The type of the social account.
|
/// The type of the social account.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -25,5 +24,5 @@ public class SocialAccountConnection : BaseEntity<Guid>
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The viewer connected.
|
/// The viewer connected.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Viewer Viewer { get; set; }
|
public Viewer Viewer { get; set; } = new Viewer();
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,17 @@
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using DCGEngine.Database.Models;
|
using DCGEngine.Database.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace SVSim.Database.Models;
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A user within the game system.
|
/// A user within the game system.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Viewer : BaseEntity<ulong>
|
[Index(nameof(ShortUdid))]
|
||||||
|
public class Viewer : BaseEntity<long>
|
||||||
{
|
{
|
||||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
public override ulong Id { get; set; }
|
public override long Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This user's name displayed in game.
|
/// This user's name displayed in game.
|
||||||
@@ -19,7 +21,7 @@ public class Viewer : BaseEntity<ulong>
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// This user's short identifier.
|
/// This user's short identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ulong ShortUdid { get; set; }
|
public long ShortUdid { get; set; }
|
||||||
|
|
||||||
public DateTime LastLogin { get; set; }
|
public DateTime LastLogin { get; set; }
|
||||||
|
|
||||||
@@ -31,6 +33,28 @@ public class Viewer : BaseEntity<ulong>
|
|||||||
|
|
||||||
public ViewerCurrency Currency { get; set; } = new ViewerCurrency();
|
public ViewerCurrency Currency { get; set; } = new ViewerCurrency();
|
||||||
|
|
||||||
|
public List<ViewerClassData> Classes { get; set; } = new List<ViewerClassData>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Collection
|
||||||
|
|
||||||
|
public List<ShadowverseDeckEntry> Decks { get; set; } = new List<ShadowverseDeckEntry>();
|
||||||
|
|
||||||
|
public List<OwnedCardEntry> Cards { get; set; } = new List<OwnedCardEntry>();
|
||||||
|
|
||||||
|
public List<LeaderSkinEntry> LeaderSkins { get; set; } = new List<LeaderSkinEntry>();
|
||||||
|
|
||||||
|
public List<DegreeEntry> Degrees { get; set; } = new List<DegreeEntry>();
|
||||||
|
|
||||||
|
public List<EmblemEntry> Emblems { get; set; } = new List<EmblemEntry>();
|
||||||
|
|
||||||
|
public List<OwnedItemEntry> Items { get; set; } = new List<OwnedItemEntry>();
|
||||||
|
|
||||||
|
public List<SleeveEntry> Sleeves { get; set; } = new List<SleeveEntry>();
|
||||||
|
|
||||||
|
public List<MyPageBackgroundEntry> MyPageBackgrounds { get; set; } = new List<MyPageBackgroundEntry>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Navigation Properties
|
#region Navigation Properties
|
||||||
|
|||||||
20
SVSim.Database/Models/ViewerClassData.cs
Normal file
20
SVSim.Database/Models/ViewerClassData.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Models;
|
||||||
|
|
||||||
|
[Owned]
|
||||||
|
public class ViewerClassData
|
||||||
|
{
|
||||||
|
public int Level { get; set; }
|
||||||
|
public int Exp { get; set; }
|
||||||
|
|
||||||
|
#region Navigation Properties
|
||||||
|
|
||||||
|
public ClassEntry Class { get; set; } = new ClassEntry();
|
||||||
|
|
||||||
|
public Viewer Viewer { get; set; } = new Viewer();
|
||||||
|
|
||||||
|
public LeaderSkinEntry LeaderSkin { get; set; } = new LeaderSkinEntry();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
@@ -11,7 +11,6 @@ public class ViewerCurrency
|
|||||||
public ulong SteamCrystals { get; set; }
|
public ulong SteamCrystals { get; set; }
|
||||||
public ulong DmmCrystals { get; set; }
|
public ulong DmmCrystals { get; set; }
|
||||||
public ulong FreeCrystals { get; set; }
|
public ulong FreeCrystals { get; set; }
|
||||||
public ulong TotalCrystals { get; set; }
|
|
||||||
public ulong LifeTotalCrystals { get; set; }
|
public ulong LifeTotalCrystals { get; set; }
|
||||||
public ulong RedEther { get; set; }
|
public ulong RedEther { get; set; }
|
||||||
public ulong Rupees { get; set; }
|
public ulong Rupees { get; set; }
|
||||||
|
|||||||
15
SVSim.Database/Repositories/BaseRepository.cs
Normal file
15
SVSim.Database/Repositories/BaseRepository.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories;
|
||||||
|
|
||||||
|
public abstract class BaseRepository<T> where T : class
|
||||||
|
{
|
||||||
|
protected readonly SVSimDbContext DbContext;
|
||||||
|
protected readonly DbSet<T> DbSet;
|
||||||
|
|
||||||
|
public BaseRepository(SVSimDbContext dbContext)
|
||||||
|
{
|
||||||
|
DbContext = dbContext;
|
||||||
|
DbSet = DbContext.Set<T>();
|
||||||
|
}
|
||||||
|
}
|
||||||
30
SVSim.Database/Repositories/Card/CardRepository.cs
Normal file
30
SVSim.Database/Repositories/Card/CardRepository.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using DCGEngine.Database.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories.Card;
|
||||||
|
|
||||||
|
public class CardRepository : BaseRepository<ShadowverseCardEntry>, ICardRepository
|
||||||
|
{
|
||||||
|
public CardRepository(SVSimDbContext dbContext) : base(dbContext)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<ShadowverseCardEntry>> GetAll(bool onlyCollectible)
|
||||||
|
{
|
||||||
|
var cards = await DbSet.AsNoTracking().Where(card => !onlyCollectible || card.CollectionInfo != null).ToListAsync();
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<ShadowverseCardEntry>> GetAllBasic()
|
||||||
|
{
|
||||||
|
return await DbContext.Set<ShadowverseCardSetEntry>().Where(set => set.IsBasic).SelectMany(set => set.Cards)
|
||||||
|
.Cast<ShadowverseCardEntry>().ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<ShadowverseCardSetEntry>> GetCardSets(bool onlyInRotation)
|
||||||
|
{
|
||||||
|
return await DbContext.Set<ShadowverseCardSetEntry>().AsNoTracking()
|
||||||
|
.Where(set => !onlyInRotation || set.IsInRotation).ToListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
10
SVSim.Database/Repositories/Card/ICardRepository.cs
Normal file
10
SVSim.Database/Repositories/Card/ICardRepository.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories.Card;
|
||||||
|
|
||||||
|
public interface ICardRepository
|
||||||
|
{
|
||||||
|
Task<List<ShadowverseCardEntry>> GetAll(bool onlyCollectible);
|
||||||
|
Task<List<ShadowverseCardSetEntry>> GetCardSets(bool onlyInRotation);
|
||||||
|
Task<List<ShadowverseCardEntry>> GetAllBasic();
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories.Collectibles;
|
||||||
|
|
||||||
|
public class CollectionRepository : ICollectionRepository
|
||||||
|
{
|
||||||
|
private readonly SVSimDbContext _dbContext;
|
||||||
|
|
||||||
|
public CollectionRepository(SVSimDbContext dbContext)
|
||||||
|
{
|
||||||
|
_dbContext = dbContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<LeaderSkinEntry>> GetLeaderSkins()
|
||||||
|
{
|
||||||
|
return await _dbContext.Set<LeaderSkinEntry>().AsNoTracking().Include(skin => skin.Class).ToListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories.Collectibles;
|
||||||
|
|
||||||
|
public interface ICollectionRepository
|
||||||
|
{
|
||||||
|
Task<List<LeaderSkinEntry>> GetLeaderSkins();
|
||||||
|
}
|
||||||
36
SVSim.Database/Repositories/Globals/GlobalsRepository.cs
Normal file
36
SVSim.Database/Repositories/Globals/GlobalsRepository.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories.Globals;
|
||||||
|
|
||||||
|
public class GlobalsRepository : IGlobalsRepository
|
||||||
|
{
|
||||||
|
private readonly SVSimDbContext _dbContext;
|
||||||
|
|
||||||
|
public GlobalsRepository(SVSimDbContext dbContext)
|
||||||
|
{
|
||||||
|
_dbContext = dbContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<ClassExpEntry>> GetClassExpCurve()
|
||||||
|
{
|
||||||
|
return await _dbContext.Set<ClassExpEntry>().ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<BattlefieldEntry>> GetBattlefields(bool onlyOpen)
|
||||||
|
{
|
||||||
|
return await _dbContext.Set<BattlefieldEntry>().Where(bf => !onlyOpen || bf.IsOpen).ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<GameConfiguration> GetGameConfiguration(string key)
|
||||||
|
{
|
||||||
|
return await _dbContext.Set<GameConfiguration>().Include(gc => gc.DefaultMyPageBackground)
|
||||||
|
.Include(gc => gc.DefaultEmblem).Include(gc => gc.DefaultDegree).Include(gc => gc.DefaultSleeve).FirstOrDefaultAsync(gc => gc.Id == key) ??
|
||||||
|
new GameConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<RankInfoEntry>> GetRankInfo()
|
||||||
|
{
|
||||||
|
return await _dbContext.Set<RankInfoEntry>().ToListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
11
SVSim.Database/Repositories/Globals/IGlobalsRepository.cs
Normal file
11
SVSim.Database/Repositories/Globals/IGlobalsRepository.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
|
namespace SVSim.Database.Repositories.Globals;
|
||||||
|
|
||||||
|
public interface IGlobalsRepository
|
||||||
|
{
|
||||||
|
Task<List<ClassExpEntry>> GetClassExpCurve();
|
||||||
|
Task<List<BattlefieldEntry>> GetBattlefields(bool onlyOpen);
|
||||||
|
Task<GameConfiguration> GetGameConfiguration(string key);
|
||||||
|
Task<List<RankInfoEntry>> GetRankInfo();
|
||||||
|
}
|
||||||
@@ -5,6 +5,9 @@ namespace SVSim.Database.Repositories.Viewer;
|
|||||||
public interface IViewerRepository
|
public interface IViewerRepository
|
||||||
{
|
{
|
||||||
Task<Models.Viewer?> GetViewerBySocialConnection(SocialAccountType accountType, ulong socialId);
|
Task<Models.Viewer?> GetViewerBySocialConnection(SocialAccountType accountType, ulong socialId);
|
||||||
Task<Models.Viewer?> GetViewerWithSocials(ulong id);
|
Task<Models.Viewer?> GetViewerWithSocials(long id);
|
||||||
Task<Models.Viewer?> GetViewerByShortUdid(ulong shortUdid);
|
Task<Models.Viewer?> GetViewerByShortUdid(long shortUdid);
|
||||||
|
|
||||||
|
Task<Models.Viewer> RegisterViewer(string displayName, SocialAccountType socialType,
|
||||||
|
ulong socialAccountIdentifier, ulong? shortUdid = null);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using SVSim.Database.Enums;
|
using SVSim.Database.Enums;
|
||||||
using SVSim.Database.Models;
|
using SVSim.Database.Models;
|
||||||
|
using SVSim.Database.Repositories.Card;
|
||||||
|
using SVSim.Database.Repositories.Globals;
|
||||||
|
|
||||||
namespace SVSim.Database.Repositories.Viewer;
|
namespace SVSim.Database.Repositories.Viewer;
|
||||||
|
|
||||||
@@ -8,6 +10,8 @@ public class ViewerRepository : IViewerRepository
|
|||||||
{
|
{
|
||||||
protected readonly SVSimDbContext _dbContext;
|
protected readonly SVSimDbContext _dbContext;
|
||||||
|
|
||||||
|
private const int MaxFriends = 20;
|
||||||
|
|
||||||
public ViewerRepository(SVSimDbContext dbContext)
|
public ViewerRepository(SVSimDbContext dbContext)
|
||||||
{
|
{
|
||||||
_dbContext = dbContext;
|
_dbContext = dbContext;
|
||||||
@@ -22,15 +26,58 @@ public class ViewerRepository : IViewerRepository
|
|||||||
?.Viewer;
|
?.Viewer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Models.Viewer?> GetViewerWithSocials(ulong id)
|
public async Task<Models.Viewer?> GetViewerWithSocials(long id)
|
||||||
{
|
{
|
||||||
return await _dbContext.Set<Models.Viewer>().AsNoTracking().Include(viewer => viewer.SocialAccountConnections)
|
return await _dbContext.Set<Models.Viewer>().AsNoTracking().Include(viewer => viewer.SocialAccountConnections)
|
||||||
.FirstOrDefaultAsync(viewer => viewer.Id == id);
|
.FirstOrDefaultAsync(viewer => viewer.Id == id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Models.Viewer?> GetViewerByShortUdid(ulong shortUdid)
|
public async Task<Models.Viewer?> GetViewerByShortUdid(long shortUdid)
|
||||||
{
|
{
|
||||||
return await _dbContext.Set<Models.Viewer>().AsNoTracking().Include(viewer => viewer.MissionData)
|
return await _dbContext.Set<Models.Viewer>().AsNoTracking().Include(viewer => viewer.MissionData)
|
||||||
.Include(viewer => viewer.Info).FirstOrDefaultAsync(viewer => viewer.ShortUdid == shortUdid);
|
.Include(viewer => viewer.Info).FirstOrDefaultAsync(viewer => viewer.ShortUdid == shortUdid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<Models.Viewer> RegisterViewer(string displayName, SocialAccountType socialType,
|
||||||
|
ulong socialAccountIdentifier, ulong? shortUdid = null)
|
||||||
|
{
|
||||||
|
Models.Viewer viewer = new Models.Viewer
|
||||||
|
{
|
||||||
|
DisplayName = displayName
|
||||||
|
};
|
||||||
|
GameConfiguration gameConfig = await new GlobalsRepository(_dbContext).GetGameConfiguration("default");
|
||||||
|
|
||||||
|
viewer.SocialAccountConnections.Add(new SocialAccountConnection
|
||||||
|
{
|
||||||
|
AccountId = socialAccountIdentifier,
|
||||||
|
AccountType = socialType
|
||||||
|
});
|
||||||
|
|
||||||
|
viewer.Info.MaxFriends = gameConfig.MaxFriends;
|
||||||
|
viewer.Info.CountryCode = "KOR";
|
||||||
|
viewer.Info.BirthDate = DateTime.UtcNow;
|
||||||
|
viewer.Currency.Crystals = gameConfig.DefaultCrystals;
|
||||||
|
viewer.Currency.Rupees = gameConfig.DefaultRupees;
|
||||||
|
viewer.Currency.RedEther = gameConfig.DefaultEther;
|
||||||
|
viewer.MissionData.TutorialState = 100; // finishes tutorial for now
|
||||||
|
|
||||||
|
List<ClassEntry> classes = await _dbContext.Set<ClassEntry>().ToListAsync();
|
||||||
|
viewer.Classes = classes.Select(ce => new ViewerClassData
|
||||||
|
{
|
||||||
|
Class = ce,
|
||||||
|
Exp = 0,
|
||||||
|
Level = 0,
|
||||||
|
LeaderSkin = ce.DefaultLeaderSkin
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
viewer.Sleeves.Add(gameConfig.DefaultSleeve);
|
||||||
|
viewer.Degrees.Add(gameConfig.DefaultDegree);
|
||||||
|
viewer.Emblems.Add(gameConfig.DefaultEmblem);
|
||||||
|
viewer.MyPageBackgrounds.Add(gameConfig.DefaultMyPageBackground);
|
||||||
|
viewer.LeaderSkins.AddRange(viewer.Classes.Select(vcd => vcd.LeaderSkin));
|
||||||
|
|
||||||
|
_dbContext.Set<Models.Viewer>().Add(viewer);
|
||||||
|
await _dbContext.SaveChangesAsync();
|
||||||
|
return viewer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -10,4 +10,12 @@
|
|||||||
<ProjectReference Include="..\DCGEngine.Database\DCGEngine.Database.csproj" />
|
<ProjectReference Include="..\DCGEngine.Database\DCGEngine.Database.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Data\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="CsvHelper" Version="33.0.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using DCGEngine.Database.Configuration;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.Database;
|
namespace SVSim.Database;
|
||||||
|
|
||||||
@@ -11,4 +12,19 @@ public class SVSimDbContext : DCGEDbContext
|
|||||||
public SVSimDbContext(IOptions<DCGEDatabaseConfiguration> configuration, ILogger<DCGEDbContext> logger, DbContextOptions options) : base(configuration, logger, options)
|
public SVSimDbContext(IOptions<DCGEDatabaseConfiguration> configuration, ILogger<DCGEDbContext> logger, DbContextOptions options) : base(configuration, logger, options)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
base.OnModelCreating(modelBuilder);
|
||||||
|
|
||||||
|
// For whatever reason it cannot figure out this relationship on it's own
|
||||||
|
modelBuilder.Entity<SleeveEntry>()
|
||||||
|
.HasMany<Viewer>(se => se.Viewers)
|
||||||
|
.WithMany(v => v.Sleeves);
|
||||||
|
|
||||||
|
modelBuilder.HasSequence<long>("ShortUdidSequence").StartsAt(400000000);
|
||||||
|
modelBuilder.Entity<Viewer>()
|
||||||
|
.Property(v => v.ShortUdid)
|
||||||
|
.UseSequence("ShortUdidSequence");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using SVSim.Database.Enums;
|
||||||
using SVSim.Database.Models;
|
using SVSim.Database.Models;
|
||||||
|
using SVSim.Database.Repositories.Card;
|
||||||
|
using SVSim.Database.Repositories.Collectibles;
|
||||||
|
using SVSim.Database.Repositories.Globals;
|
||||||
using SVSim.Database.Repositories.Viewer;
|
using SVSim.Database.Repositories.Viewer;
|
||||||
using SVSim.EmulatedEntrypoint.Constants;
|
using SVSim.EmulatedEntrypoint.Constants;
|
||||||
using SVSim.EmulatedEntrypoint.Models.Dtos;
|
using SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
@@ -11,16 +15,22 @@ namespace SVSim.EmulatedEntrypoint.Controllers;
|
|||||||
public class LoadController : SVSimController
|
public class LoadController : SVSimController
|
||||||
{
|
{
|
||||||
private readonly IViewerRepository _viewerRepository;
|
private readonly IViewerRepository _viewerRepository;
|
||||||
|
private readonly ICardRepository _cardRepository;
|
||||||
|
private readonly ICollectionRepository _collectionRepository;
|
||||||
|
private readonly IGlobalsRepository _globalsRepository;
|
||||||
|
|
||||||
public LoadController(IViewerRepository viewerRepository)
|
public LoadController(IViewerRepository viewerRepository, ICardRepository cardRepository, ICollectionRepository collectionRepository, IGlobalsRepository globalsRepository)
|
||||||
{
|
{
|
||||||
_viewerRepository = viewerRepository;
|
_viewerRepository = viewerRepository;
|
||||||
|
_cardRepository = cardRepository;
|
||||||
|
_collectionRepository = collectionRepository;
|
||||||
|
_globalsRepository = globalsRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("index")]
|
[HttpPost("index")]
|
||||||
public async Task<ActionResult<IndexResponse>> Index(IndexRequest request)
|
public async Task<ActionResult<IndexResponse>> Index(IndexRequest request)
|
||||||
{
|
{
|
||||||
Viewer? viewer = await _viewerRepository.GetViewerByShortUdid(ulong.Parse(User.Claims
|
Viewer? viewer = await _viewerRepository.GetViewerByShortUdid(long.Parse(User.Claims
|
||||||
.FirstOrDefault(claim => claim.Type == ShadowverseClaimTypes.ShortUdidClaim).Value));
|
.FirstOrDefault(claim => claim.Type == ShadowverseClaimTypes.ShortUdidClaim).Value));
|
||||||
|
|
||||||
if (viewer == null)
|
if (viewer == null)
|
||||||
@@ -28,15 +38,105 @@ public class LoadController : SVSimController
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<ShadowverseCardEntry> allCollectibleCards = await _cardRepository.GetAll(true);
|
||||||
|
List<ShadowverseCardEntry> allBasicCards = await _cardRepository.GetAllBasic();
|
||||||
|
List<OwnedCardEntry> ownedCards = viewer.Cards;
|
||||||
|
List<OwnedCardEntry> allCardsAsOwned = allCollectibleCards.GroupJoin(ownedCards, card => card.Id,
|
||||||
|
ownedCard => ownedCard.Card.Id,
|
||||||
|
(card, foundOwnedCards) =>
|
||||||
|
{
|
||||||
|
OwnedCardEntry ownedCard = foundOwnedCards.DefaultIfEmpty().FirstOrDefault() ?? new OwnedCardEntry
|
||||||
|
{
|
||||||
|
Card = card,
|
||||||
|
Count = 0,
|
||||||
|
IsProtected = false
|
||||||
|
};
|
||||||
|
|
||||||
|
return ownedCard;
|
||||||
|
}).ToList();
|
||||||
|
allCardsAsOwned = allCardsAsOwned.Union(allBasicCards.Select(bc => new OwnedCardEntry
|
||||||
|
{
|
||||||
|
Card = bc,
|
||||||
|
Count = 3,
|
||||||
|
IsProtected = true
|
||||||
|
})).ToList();
|
||||||
|
|
||||||
|
List<LeaderSkinEntry> allLeaderSkins = await _collectionRepository.GetLeaderSkins();
|
||||||
|
|
||||||
|
Dictionary<string, ClassExp> classExp = new Dictionary<string, ClassExp>();
|
||||||
|
var classExpCurve = await _globalsRepository.GetClassExpCurve();
|
||||||
|
|
||||||
|
List<ClassExp> classExps = new List<ClassExp>();
|
||||||
|
|
||||||
|
int accumulateExp = 0;
|
||||||
|
int? prevNecessaryExp = null;
|
||||||
|
foreach (var entry in classExpCurve)
|
||||||
|
{
|
||||||
|
accumulateExp += entry.NecessaryExp;
|
||||||
|
classExps.Add(new ClassExp
|
||||||
|
{
|
||||||
|
Level = entry.Id, // You need to specify the level value based on your logic
|
||||||
|
NecessaryExp = entry.NecessaryExp,
|
||||||
|
DiffExp = prevNecessaryExp.HasValue ? entry.NecessaryExp - prevNecessaryExp.Value : entry.NecessaryExp,
|
||||||
|
AccumulateExp = accumulateExp
|
||||||
|
});
|
||||||
|
prevNecessaryExp = entry.NecessaryExp;
|
||||||
|
}
|
||||||
|
|
||||||
return new IndexResponse
|
return new IndexResponse
|
||||||
{
|
{
|
||||||
UserTutorial = new UserTutorial()
|
UserTutorial = new UserTutorial
|
||||||
{
|
{
|
||||||
TutorialStep = viewer.MissionData.TutorialState
|
TutorialStep = viewer.MissionData.TutorialState
|
||||||
},
|
},
|
||||||
UserInfo = new UserInfo(int.Parse(Request.Headers["DEVICE"].FirstOrDefault()), viewer),
|
UserInfo = new UserInfo(int.Parse(Request.Headers["DEVICE"].FirstOrDefault()), viewer),
|
||||||
UserCurrency = new UserCurrency(),
|
UserCurrency = new UserCurrency(viewer),
|
||||||
|
UserItems = viewer.Items.Select(item => new UserItem(item)).ToList(),
|
||||||
|
UserRotationDecks = new UserFormatDeckInfo
|
||||||
|
{
|
||||||
|
UserDecks = viewer.Decks.Where(deck => deck.Format == Format.Rotation).Select(deck => new UserDeck(deck)).ToList()
|
||||||
|
},
|
||||||
|
UserUnlimitedDecks = new UserFormatDeckInfo
|
||||||
|
{
|
||||||
|
UserDecks = viewer.Decks.Where(deck => deck.Format == Format.Unlimited).Select(deck => new UserDeck(deck)).ToList()
|
||||||
|
},
|
||||||
|
UserMyRotationDecks = new UserFormatDeckInfo
|
||||||
|
{
|
||||||
|
UserDecks = viewer.Decks.Where(deck => deck.Format == Format.MyRotation).Select(deck => new UserDeck(deck)).ToList()
|
||||||
|
},
|
||||||
|
UserCards = allCardsAsOwned.Select(card => new UserCard(card)).ToList(),
|
||||||
|
UserClasses = viewer.Classes.Select(viewerClass => new UserClass(viewerClass)).ToList(),
|
||||||
|
Sleeves = viewer.Sleeves.ToDictionary(sleeve => sleeve.Id.ToString(), sleeve => new SleeveIdentifier { SleeveId = sleeve.Id }),
|
||||||
|
UserEmblems = viewer.Emblems.Select(emblem => new EmblemIdentifier { EmblemId = emblem.Id }).ToList(),
|
||||||
|
UserDegrees = viewer.Degrees.Select(degree => new DegreeIdentifier { DegreeId = degree.Id }).ToList(),
|
||||||
|
LeaderSkins = allLeaderSkins.ToDictionary(skin => skin.Id.ToString(), skin => new UserLeaderSkin(skin, viewer.LeaderSkins.Any(vs => vs.Id == skin.Id))),
|
||||||
|
MyPageBackgrounds = viewer.MyPageBackgrounds.Select(mpbg => mpbg.Id).ToList(),
|
||||||
|
LootBoxRegulations = new LootBoxRegulations(),
|
||||||
|
GatheringInfo = new GatheringInfo(),
|
||||||
|
IsBattlePassPeriod = false,
|
||||||
|
BattlePassLevelInfo = null,
|
||||||
|
SpecialCrystalInfos = new List<SpecialCrystalInfo>(),
|
||||||
|
AvatarRotationInfo = null,
|
||||||
|
MyRotationInfo = null,
|
||||||
|
FeatureMaintenances = new List<FeatureMaintenance>(),
|
||||||
|
PreReleaseInfo = null,
|
||||||
|
SpotCards = new Dictionary<string, int>(),
|
||||||
|
ReprintedCards = new Dictionary<string, long>(),
|
||||||
|
UnlimitedBanList = new Dictionary<string, int>(),
|
||||||
|
LoadingTipCardExclusions = new List<long>(),
|
||||||
|
MaintenanceCards = new List<CardIdentifier>(),
|
||||||
|
RedEtherOverrides = new List<RedEtherOverride>(),
|
||||||
|
DailyLoginBonus = new DailyLoginBonus(),
|
||||||
|
UserRankedMatches = new List<UserRankedMatches>(),
|
||||||
|
UserRankInfo = new Dictionary<string, UserRankInfo>(),
|
||||||
|
ArenaConfig = new ArenaConfig(),
|
||||||
|
ArenaInfos = new List<ArenaInfo>(),
|
||||||
|
RotationSets = (await _cardRepository.GetCardSets(true)).Select(set => new CardSetIdentifier { SetId = set.Id }).ToList(),
|
||||||
|
UserConfig = new UserConfig(),
|
||||||
|
OpenBattlefieldIds = (await _globalsRepository.GetBattlefields(true)).ToDictionary(bf => bf.Id.ToString(), bf => bf.Id),
|
||||||
|
DefaultSettings = new DefaultSettings(await _globalsRepository.GetGameConfiguration("default")),
|
||||||
|
ClassExp = classExps.ToDictionary(kv => kv.Level.ToString(), kv => kv),
|
||||||
|
RankInfo = (await _globalsRepository.GetRankInfo()).Select(ri => new RankInfo(ri)).ToDictionary(ri => ri.RankId.ToString(), ri => ri)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc.ApplicationModels;
|
||||||
|
|
||||||
|
namespace SVSim.EmulatedEntrypoint.Conventions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ensures controllers go to the correct swagger definition.
|
||||||
|
/// </summary>
|
||||||
|
public class SwaggerDefinitionConvention : IControllerModelConvention
|
||||||
|
{
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public void Apply(ControllerModel controller)
|
||||||
|
{
|
||||||
|
var controllerNamespace = controller.ControllerType.Namespace; // eg. Controllers.V1
|
||||||
|
var swaggerDefinition = controllerNamespace.Split('.').Last().ToLower();
|
||||||
|
const string defaultRoute = "api/[controller]";
|
||||||
|
|
||||||
|
controller.ApiExplorer.GroupName = swaggerDefinition;
|
||||||
|
foreach (SelectorModel selector in controller.Selectors)
|
||||||
|
{
|
||||||
|
if (selector.AttributeRouteModel != null && selector.AttributeRouteModel.Template == defaultRoute)
|
||||||
|
{
|
||||||
|
selector.AttributeRouteModel.Template = $"api/{swaggerDefinition}/[controller]";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
SVSim.EmulatedEntrypoint/Data/battlefields.csv
Normal file
17
SVSim.EmulatedEntrypoint/Data/battlefields.csv
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
value,is_open
|
||||||
|
1, 1
|
||||||
|
4, 1
|
||||||
|
7, 1
|
||||||
|
3, 1
|
||||||
|
6, 1
|
||||||
|
2, 1
|
||||||
|
5, 1
|
||||||
|
18, 1
|
||||||
|
10, 1
|
||||||
|
30, 1
|
||||||
|
31, 1
|
||||||
|
41, 1
|
||||||
|
43, 1
|
||||||
|
51, 1
|
||||||
|
61, 1
|
||||||
|
71, 1
|
||||||
|
9
SVSim.EmulatedEntrypoint/Data/classes.csv
Normal file
9
SVSim.EmulatedEntrypoint/Data/classes.csv
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
id,name
|
||||||
|
1,Forestcraft
|
||||||
|
2,Swordcraft
|
||||||
|
3,Runecraft
|
||||||
|
4,Dragoncraft
|
||||||
|
5,Necrocraft
|
||||||
|
6,Bloodcraft
|
||||||
|
7,Havencraft
|
||||||
|
8,Portalcraft
|
||||||
|
151
SVSim.EmulatedEntrypoint/Data/classexp.csv
Normal file
151
SVSim.EmulatedEntrypoint/Data/classexp.csv
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
level,necessary_exp
|
||||||
|
1,50
|
||||||
|
2,150
|
||||||
|
3,200
|
||||||
|
4,200
|
||||||
|
5,200
|
||||||
|
6,200
|
||||||
|
7,250
|
||||||
|
8,250
|
||||||
|
9,250
|
||||||
|
10,350
|
||||||
|
11,350
|
||||||
|
12,350
|
||||||
|
13,350
|
||||||
|
14,350
|
||||||
|
15,350
|
||||||
|
16,350
|
||||||
|
17,350
|
||||||
|
18,350
|
||||||
|
19,350
|
||||||
|
20,350
|
||||||
|
21,350
|
||||||
|
22,350
|
||||||
|
23,350
|
||||||
|
24,350
|
||||||
|
25,450
|
||||||
|
26,450
|
||||||
|
27,450
|
||||||
|
28,450
|
||||||
|
29,450
|
||||||
|
30,450
|
||||||
|
31,450
|
||||||
|
32,450
|
||||||
|
33,450
|
||||||
|
34,450
|
||||||
|
35,450
|
||||||
|
36,450
|
||||||
|
37,450
|
||||||
|
38,450
|
||||||
|
39,450
|
||||||
|
40,600
|
||||||
|
41,600
|
||||||
|
42,600
|
||||||
|
43,600
|
||||||
|
44,600
|
||||||
|
45,600
|
||||||
|
46,600
|
||||||
|
47,600
|
||||||
|
48,600
|
||||||
|
49,600
|
||||||
|
50,600
|
||||||
|
51,600
|
||||||
|
52,600
|
||||||
|
53,600
|
||||||
|
54,600
|
||||||
|
55,600
|
||||||
|
56,600
|
||||||
|
57,600
|
||||||
|
58,600
|
||||||
|
59,600
|
||||||
|
60,600
|
||||||
|
61,600
|
||||||
|
62,600
|
||||||
|
63,600
|
||||||
|
64,600
|
||||||
|
65,600
|
||||||
|
66,600
|
||||||
|
67,600
|
||||||
|
68,600
|
||||||
|
69,600
|
||||||
|
70,800
|
||||||
|
71,800
|
||||||
|
72,800
|
||||||
|
73,800
|
||||||
|
74,800
|
||||||
|
75,800
|
||||||
|
76,800
|
||||||
|
77,800
|
||||||
|
78,800
|
||||||
|
79,800
|
||||||
|
80,800
|
||||||
|
81,800
|
||||||
|
82,800
|
||||||
|
83,800
|
||||||
|
84,800
|
||||||
|
85,800
|
||||||
|
86,800
|
||||||
|
87,800
|
||||||
|
88,800
|
||||||
|
89,800
|
||||||
|
90,800
|
||||||
|
91,800
|
||||||
|
92,800
|
||||||
|
93,800
|
||||||
|
94,800
|
||||||
|
95,800
|
||||||
|
96,800
|
||||||
|
97,800
|
||||||
|
98,800
|
||||||
|
99,800
|
||||||
|
100,800
|
||||||
|
101,800
|
||||||
|
102,800
|
||||||
|
103,800
|
||||||
|
104,800
|
||||||
|
105,900
|
||||||
|
106,1000
|
||||||
|
107,1100
|
||||||
|
108,1200
|
||||||
|
109,1300
|
||||||
|
110,1400
|
||||||
|
111,1500
|
||||||
|
112,1600
|
||||||
|
113,1700
|
||||||
|
114,1800
|
||||||
|
115,1900
|
||||||
|
116,2000
|
||||||
|
117,2100
|
||||||
|
118,2200
|
||||||
|
119,2300
|
||||||
|
120,2400
|
||||||
|
121,2500
|
||||||
|
122,2600
|
||||||
|
123,2700
|
||||||
|
124,2800
|
||||||
|
125,2900
|
||||||
|
126,3000
|
||||||
|
127,3100
|
||||||
|
128,3200
|
||||||
|
129,3300
|
||||||
|
130,3400
|
||||||
|
131,3500
|
||||||
|
132,3600
|
||||||
|
133,3700
|
||||||
|
134,3800
|
||||||
|
135,3900
|
||||||
|
136,4000
|
||||||
|
137,4100
|
||||||
|
138,4200
|
||||||
|
139,4300
|
||||||
|
140,4400
|
||||||
|
141,4500
|
||||||
|
142,4600
|
||||||
|
143,4700
|
||||||
|
144,4800
|
||||||
|
145,4900
|
||||||
|
146,5000
|
||||||
|
147,5100
|
||||||
|
148,5200
|
||||||
|
149,5300
|
||||||
|
150,-1
|
||||||
|
1817
SVSim.EmulatedEntrypoint/Data/degrees.csv
Normal file
1817
SVSim.EmulatedEntrypoint/Data/degrees.csv
Normal file
File diff suppressed because it is too large
Load Diff
2215
SVSim.EmulatedEntrypoint/Data/emblems.csv
Normal file
2215
SVSim.EmulatedEntrypoint/Data/emblems.csv
Normal file
File diff suppressed because it is too large
Load Diff
418
SVSim.EmulatedEntrypoint/Data/leaderskins.csv
Normal file
418
SVSim.EmulatedEntrypoint/Data/leaderskins.csv
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
class_chara_id,class_chara_name,description,path,clan,clan_name,is_usable,skin_id,class_color,hide_class_name,battle_skin_reverse,position_x,position_y,scale,is_high_rank,is_3D,is_no_evolve_shift,is_opponent_reverse,evolution_delay_frame,is_evolve_skin
|
||||||
|
1,CC_アリサ,アリサ,RoyallSaver,1,Common_0105,1,1,0,0,1,-22,6,0.97,0,0,0,0,0,0
|
||||||
|
2,CC_エリカ,エリカ,RoyallSaver,2,Common_0106,1,2,0,0,1,-2,0,1,0,0,0,0,0,0
|
||||||
|
3,CC_イザベル,イザベル,RoyallSaver,3,Common_0107,1,3,0,0,1,-12,-4,0.97,0,0,0,0,0,0
|
||||||
|
4,CC_ローウェン,ローウェン,RoyallSaver,4,Common_0108,1,4,0,0,1,-1,10,0.97,0,0,0,0,0,0
|
||||||
|
5,CC_ルナ,ルナ,RoyallSaver,5,Common_0109,1,5,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
6,CC_ユリアス,ユリアス,RoyallSaver,6,Common_0110,1,6,0,0,1,-7,-6,1.02,0,0,0,0,0,0
|
||||||
|
7,CC_イリス,イリス,RoyallSaver,7,Common_0111,1,7,0,0,1,-10,10,1,0,0,0,0,0,0
|
||||||
|
8,CC_ユアン,ユアン,RoyallSaver,8,Common_0112,1,8,0,0,1,0,2,1,0,0,0,0,0,0
|
||||||
|
101,CC_セルウィン,第一弾スキンリーダー,RoyallSaver,1,Common_0105,1,101,0,0,1,-24,6,1,0,0,0,0,0,0
|
||||||
|
102,CC_レイサム,第一弾スキンリーダー,RoyallSaver,2,Common_0106,1,102,0,0,1,55,40,0.95,0,0,0,0,0,0
|
||||||
|
103,CC_エラスムス,第一弾スキンリーダー,RoyallSaver,3,Common_0107,1,103,0,0,1,-20,-20,0.9,0,0,0,0,0,0
|
||||||
|
104,CC_フォルテ,第一弾スキンリーダー,RoyallSaver,4,Common_0108,1,104,0,0,1,-23,0,0.95,0,0,0,0,0,0
|
||||||
|
105,CC_モルディカイ,第一弾スキンリーダー,RoyallSaver,5,Common_0109,1,105,0,0,1,-22,-15,0.85,0,0,0,0,0,0
|
||||||
|
106,CC_ヴァンピィ,第一弾スキンリーダー,RoyallSaver,6,Common_0110,1,106,0,0,1,-50,4,0.98,0,0,0,0,0,0
|
||||||
|
107,CC_ガルラ,第一弾スキンリーダー,RoyallSaver,7,Common_0111,1,107,0,0,0,-16,10,0.8,0,0,0,0,0,0
|
||||||
|
201,CC_キャミィ,SF5,RoyallSaver,1,Common_0105,1,201,0,0,0,10,0,0.99,0,0,0,0,0,0
|
||||||
|
202,CC_春麗,SF5,RoyallSaver,2,Common_0106,1,202,0,0,0,10,0,1,0,0,0,0,0,0
|
||||||
|
203,CC_ジュリ,SF5,RoyallSaver,3,Common_0107,1,203,0,0,0,-5,0,1,0,0,0,0,0,0
|
||||||
|
204,CC_リュウ,SF5,RoyallSaver,4,Common_0108,1,204,0,0,0,12,20,0.93,0,0,0,0,0,0
|
||||||
|
205,CC_ベガ,SF5,RoyallSaver,5,Common_0109,1,205,0,0,0,10,18,0.93,0,0,0,0,0,0
|
||||||
|
206,CC_バルログ,SF5,RoyallSaver,6,Common_0110,1,206,0,0,0,10,15,0.93,0,0,0,0,0,0
|
||||||
|
207,CC_かりん,SF5,RoyallSaver,7,Common_0111,1,207,0,0,0,12,10,0.95,0,0,0,0,0,0
|
||||||
|
301,CC_アーチャー,Fate/stay night,RoyallSaver,1,Common_0105,1,301,0,0,0,-18,10,1,0,0,0,0,0,0
|
||||||
|
302,CC_ランサー,Fate/stay night,RoyallSaver,2,Common_0106,1,302,0,0,0,7,6,1,0,0,0,0,0,0
|
||||||
|
303,CC_遠坂凛,Fate/stay night,RoyallSaver,3,Common_0107,1,303,0,0,0,-20,0,1,0,0,0,0,0,0
|
||||||
|
304,CC_セイバー,Fate/stay night,RoyallSaver,4,Common_0108,1,304,0,0,0,-11,0,1,0,0,0,0,0,0
|
||||||
|
305,CC_セイバーオルタ,Fate/stay night,RoyallSaver,5,Common_0109,1,305,0,0,0,-14,8,1,0,0,0,0,0,0
|
||||||
|
306,CC_ライダー,Fate/stay night,RoyallSaver,6,Common_0110,1,306,0,0,0,10,4,1,0,0,0,0,0,0
|
||||||
|
307,CC_イリヤ,Fate/stay night,RoyallSaver,7,Common_0111,1,307,0,0,0,-15,-10,1,0,0,0,0,0,0
|
||||||
|
401,CC_アリア,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,401,0,0,1,6,0,0.92,0,0,0,0,0,0
|
||||||
|
402,CC_アルベール,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,402,0,0,1,35,15,0.9,0,0,0,0,0,0
|
||||||
|
403,CC_次元の魔女・ドロシー,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,403,0,0,1,-12,0,1,0,0,0,0,0,0
|
||||||
|
404,CC_インペリアルドラグーン,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,404,0,0,1,-8,14,0.88,0,0,0,0,0,0
|
||||||
|
405,CC_ケルベロス,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,405,0,0,1,-10,30,0.77,0,0,0,0,0,0
|
||||||
|
406,CC_エクセラ,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,406,0,0,1,32,0,0.95,0,0,0,0,0,0
|
||||||
|
407,CC_ラミナ,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,407,0,0,1,45,0,1,0,0,0,0,0,0
|
||||||
|
408,CC_スピネ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,408,0,0,1,7,0,1,0,0,0,0,0,0
|
||||||
|
504,CC_龍化ローウェン,龍化ローウェン,RoyallSaver,4,Common_0108,1,504,0,0,1,-1,10,0.97,0,0,0,0,0,0
|
||||||
|
508,CC_ネクサス,ネクサス,RoyallSaver,8,Common_0112,1,508,0,0,1,12,-18,1.05,0,0,0,0,0,0
|
||||||
|
601,CC_ディートリッヒ,NetEase,RoyallSaver,1,Common_0105,1,601,0,0,1,20,0,0.95,0,0,0,0,0,0
|
||||||
|
603,CC_ファリン,NetEase,RoyallSaver,3,Common_0107,1,603,0,0,1,12,0,1,0,0,0,0,0,0
|
||||||
|
701,CC_コルワ,hayao,RoyallSaver,1,Common_0105,1,701,0,0,0,10,0,1,0,0,0,0,0,0
|
||||||
|
702,CC_パーシヴァル,hayao,RoyallSaver,2,Common_0106,1,702,0,0,0,0,20,0.9,0,0,0,0,0,0
|
||||||
|
703,CC_カリオストロ,hayao,RoyallSaver,3,Common_0107,1,703,0,0,0,-5,0,0.98,0,0,0,0,0,0
|
||||||
|
704,CC_ゾーイ,hayao,RoyallSaver,4,Common_0108,1,704,0,0,0,15,0,1,0,0,0,0,0,0
|
||||||
|
705,CC_フェリ,hayao,RoyallSaver,5,Common_0109,1,705,0,0,0,22,0,1,0,0,0,0,0,0
|
||||||
|
706,CC_ヴィーラ,hayao,RoyallSaver,6,Common_0110,1,706,0,0,0,10,0,1,0,0,0,0,0,0
|
||||||
|
707,CC_レ・フィーエ,hayao,RoyallSaver,7,Common_0111,1,707,0,0,0,12,-10,1,0,0,0,0,0,0
|
||||||
|
708,CC_シルヴァ,hayao,RoyallSaver,8,Common_0112,1,708,0,0,0,22,0,1,0,0,0,0,0,0
|
||||||
|
801,CC_カシオペア,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,801,0,0,1,-8,25,0.88,0,0,0,0,0,0
|
||||||
|
802,CC_メリッサ,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,802,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
803,CC_オズの大魔女,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,803,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
804,CC_フィルレイン,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,804,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
805,CC_アイシャ,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,805,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
806,CC_メドゥーサ,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,806,0,0,1,-15,0,0.9,0,0,0,0,0,0
|
||||||
|
807,CC_ブローディア,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,807,0,0,1,12,5,1,0,0,0,0,0,0
|
||||||
|
808,CC_オーキス,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,808,0,0,1,-7,5,1,0,0,0,0,0,0
|
||||||
|
901,CC_ギルガメッシュ,Fate/stay night,RoyallSaver,1,Common_0105,1,901,0,0,0,10,0,1,0,0,0,0,0,0
|
||||||
|
902,CC_真アサシン,Fate/stay night,RoyallSaver,2,Common_0106,1,902,0,0,0,40,5,1,0,0,0,0,0,0
|
||||||
|
903,CC_遠坂凛 制服ver.,Fate/stay night,RoyallSaver,3,Common_0107,1,903,0,0,0,10,0,1,0,0,0,0,0,0
|
||||||
|
904,CC_衛宮士郎,Fate/stay night,RoyallSaver,4,Common_0108,1,904,0,0,0,10,0,1,0,0,0,0,0,0
|
||||||
|
905,CC_間桐桜,Fate/stay night,RoyallSaver,5,Common_0109,1,905,0,0,0,7,0,1,0,0,0,0,0,0
|
||||||
|
906,CC_間桐慎二,Fate/stay night,RoyallSaver,6,Common_0110,1,906,0,0,0,13,-3,1,0,0,0,0,0,0
|
||||||
|
907,CC_バーサーカー,Fate/stay night,RoyallSaver,7,Common_0111,1,907,0,0,0,13,10,1,0,0,0,0,0,0
|
||||||
|
908,CC_言峰綺礼,Fate/stay night,RoyallSaver,8,Common_0112,1,908,0,0,0,17,0,1,0,0,0,0,0,0
|
||||||
|
1001,CC_コッコロ,プリコネ,RoyallSaver,1,Common_0105,1,1001,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1002,CC_ペコリーヌ,プリコネ,RoyallSaver,2,Common_0106,1,1002,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1003,CC_キャル,プリコネ,RoyallSaver,3,Common_0107,1,1003,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1103,CC_タツマキ,ワンパンマン,RoyallSaver,3,Common_0107,1,1103,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1104,CC_サイタマ,ワンパンマン,RoyallSaver,4,Common_0108,1,1104,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1108,CC_ジェノス,ワンパンマン,RoyallSaver,8,Common_0112,1,1108,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1203,CC_アン,マナリアフレンズコラボ,RoyallSaver,3,Common_0107,1,1203,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1301,CC_エミリア,リゼロ,RoyallSaver,1,Common_0105,1,1301,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1302,CC_ラム,リゼロ,RoyallSaver,2,Common_0106,1,1302,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1306,CC_レム,リゼロ,RoyallSaver,6,Common_0110,1,1306,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1401,CC_松浦果南,ラブライブ!サンシャイン!!,RoyallSaver,1,Common_0105,1,1401,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1402,CC_渡辺曜,ラブライブ!サンシャイン!!,RoyallSaver,2,Common_0106,1,1402,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1403,CC_黒澤ダイヤ,ラブライブ!サンシャイン!!,RoyallSaver,3,Common_0107,1,1403,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1413,CC_黒澤ルビィ,ラブライブ!サンシャイン!!,RoyallSaver,3,Common_0107,1,1413,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1404,CC_高海千歌,ラブライブ!サンシャイン!!,RoyallSaver,4,Common_0108,1,1404,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1405,CC_小原鞠莉,ラブライブ!サンシャイン!!,RoyallSaver,5,Common_0109,1,1405,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1406,CC_津島善子,ラブライブ!サンシャイン!!,RoyallSaver,6,Common_0110,1,1406,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1407,CC_国木田花丸,ラブライブ!サンシャイン!!,RoyallSaver,7,Common_0111,1,1407,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1408,CC_桜内梨子,ラブライブ!サンシャイン!!,RoyallSaver,8,Common_0112,1,1408,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1601,CC_リザ,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,1601,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1602,CC_ディオネ,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,1602,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1603,CC_ティオ,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,1603,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1604,CC_ガルミーユ,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,1604,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1605,CC_エンネア,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,1605,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1606,CC_モノ2,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,1606,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1607,CC_ラピス,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,1607,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1608,CC_リーシェナ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,1608,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1702,CC_朝比奈みくる,涼宮ハルヒの憂鬱,RoyallSaver,2,Common_0106,1,1702,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1703,CC_長門有希,涼宮ハルヒの憂鬱,RoyallSaver,3,Common_0107,1,1703,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1708,CC_涼宮ハルヒ,涼宮ハルヒの憂鬱,RoyallSaver,8,Common_0112,1,1708,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1803,CC_キョウカ,プリコネ,RoyallSaver,3,Common_0107,1,1803,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1804,CC_カヤ,プリコネ,RoyallSaver,4,Common_0108,1,1804,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1805,CC_ミヤコ,プリコネ,RoyallSaver,5,Common_0109,1,1805,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1815,CC_シノブ,プリコネ,RoyallSaver,5,Common_0109,1,1815,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1806,CC_イリヤ(プリコネ),プリコネ,RoyallSaver,6,Common_0110,1,1806,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1807,CC_サレン,プリコネ,RoyallSaver,7,Common_0111,1,1807,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1808,CC_カイザーインサイト,プリコネ,RoyallSaver,8,Common_0112,1,1808,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
1901,CC_アリサ2,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,1901,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1902,CC_エリカ2,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,1902,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1903,CC_イザベル2,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,1903,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1904,CC_ローウェン2,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,1904,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1905,CC_ルナ2,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,1905,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1906,CC_ユリアス2,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,1906,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1907,CC_イリス2,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,1907,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
1908,CC_ユアン2,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,1908,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2001,CC_高森藍子,アイドルマスターシンデレラガールズ,RoyallSaver,1,Common_0105,1,2001,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2002,CC_五十嵐響子,アイドルマスターシンデレラガールズ,RoyallSaver,2,Common_0106,1,2002,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2003,CC_鷺沢文香,アイドルマスターシンデレラガールズ,RoyallSaver,3,Common_0107,1,2003,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2004,CC_大槻唯,アイドルマスターシンデレラガールズ,RoyallSaver,4,Common_0108,1,2004,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2005,CC_白坂小梅,アイドルマスターシンデレラガールズ,RoyallSaver,5,Common_0109,1,2005,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2006,CC_佐久間まゆ,アイドルマスターシンデレラガールズ,RoyallSaver,6,Common_0110,1,2006,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2007,CC_安部菜々,アイドルマスターシンデレラガールズ,RoyallSaver,7,Common_0111,1,2007,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2008,CC_諸星きらり,アイドルマスターシンデレラガールズ,RoyallSaver,8,Common_0112,1,2008,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2018,CC_北条加蓮,アイドルマスターシンデレラガールズ,RoyallSaver,8,Common_0112,1,2018,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2103,CC_グレア,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,2103,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2202,CC_2B,ニーアオートマタ,RoyallSaver,2,Common_0106,1,2202,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2208,CC_9S,ニーアオートマタ,RoyallSaver,8,Common_0112,1,2208,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2303,CC_レイ,シャドウバース,RoyallSaver,3,Common_0107,1,2303,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2307,CC_カグラ,シャドウバース,RoyallSaver,7,Common_0111,1,2307,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2401,CC_C.C.,コードギアス,RoyallSaver,1,Common_0105,1,2401,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2402,CC_スザク,コードギアス,RoyallSaver,2,Common_0106,1,2402,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2403,CC_コーネリア,コードギアス,RoyallSaver,3,Common_0107,1,2403,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2404,CC_星刻,コードギアス,RoyallSaver,4,Common_0108,1,2404,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2405,CC_ルルーシュ,コードギアス,RoyallSaver,5,Common_0109,1,2405,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2406,CC_カレン,コードギアス,RoyallSaver,6,Common_0110,1,2406,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2407,CC_シャルル,コードギアス,RoyallSaver,7,Common_0111,1,2407,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2408,CC_ジェレミア,コードギアス,RoyallSaver,8,Common_0112,1,2408,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2501,CC_セタス(ストック),シャドウバース,RoyallSaver,1,Common_0105,1,2501,0,0,1,0,0,1,0,0,1,0,0,0
|
||||||
|
2505,CC_ツキカゲ2,バトルパス,RoyallSaver,5,Common_0109,1,2505,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2515,CC_ニコラ,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,2515,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
2507,CC_ムニャール2,バトルパス,RoyallSaver,7,Common_0111,1,2507,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2508,CC_ゼシルウェンシー2,バトルパス,RoyallSaver,8,Common_0112,1,2508,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2513,CC_ヴィンセント(ストック),シャドウバース,RoyallSaver,3,Common_0107,1,2513,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2518,CC_フローゼス2,バトルパス,RoyallSaver,8,Common_0112,1,2518,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2523,CC_テトラ(ストック),シャドウバース,RoyallSaver,3,Common_0107,1,2523,0,0,1,0,0,1,0,0,1,0,0,0
|
||||||
|
2601,CC_セッカ,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,2601,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2602,CC_バニー,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,2602,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2612,CC_バロン,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,2612,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2603,CC_マイザー,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,2603,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2604,CC_ドラーク,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,2604,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2605,CC_カゲロウ,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,2605,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2606,CC_アルザード,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,2606,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2607,CC_セリーナ,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,2607,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2608,CC_イルガンノ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,2608,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2701,CC_ミモリ,シャドウバース,RoyallSaver,1,Common_0105,1,2701,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2702,CC_カズキ,シャドウバース,RoyallSaver,2,Common_0106,1,2702,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2703,CC_カイ,シャドウバース,RoyallSaver,3,Common_0107,1,2703,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2704,CC_ヒイロ,シャドウバース,RoyallSaver,4,Common_0108,1,2704,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2705,CC_アリス,シャドウバース,RoyallSaver,5,Common_0109,1,2705,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2706,CC_ルシア,シャドウバース,RoyallSaver,6,Common_0110,1,2706,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2707,CC_マウラ,シャドウバース,RoyallSaver,7,Common_0111,1,2707,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2801,CC_ラティカ2,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,2801,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2811,CC_オムニス,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,2811,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2802,CC_ツバキ,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,2802,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2803,CC_クオン,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,2803,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2804,CC_ヴァイディ2,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,2804,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2814,CC_ローラ,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,2814,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2824,CC_アイラ,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,2824,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2805,CC_ギンセツ,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,2805,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2806,CC_ユヅキ,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,2806,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2807,CC_エイラ,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,2807,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2808,CC_ララミア,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,2808,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2818,CC_ベルフォメット2,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,2818,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
2901,CC_ソーン,グランブルーファンタジー,RoyallSaver,1,Common_0105,1,2901,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2902,CC_オクトー,グランブルーファンタジー,RoyallSaver,2,Common_0106,1,2902,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2912,CC_シエテ,グランブルーファンタジー,RoyallSaver,2,Common_0106,1,2912,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2903,CC_フュンフ,グランブルーファンタジー,RoyallSaver,3,Common_0107,1,2903,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2904,CC_サラーサ,グランブルーファンタジー,RoyallSaver,4,Common_0108,1,2904,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2905,CC_ニオ,グランブルーファンタジー,RoyallSaver,5,Common_0109,1,2905,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2906,CC_シス,グランブルーファンタジー,RoyallSaver,6,Common_0110,1,2906,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2907,CC_ウーノ,グランブルーファンタジー,RoyallSaver,7,Common_0111,1,2907,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2908,CC_エッセル,グランブルーファンタジー,RoyallSaver,8,Common_0112,1,2908,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
2918,CC_カトル,グランブルーファンタジー,RoyallSaver,8,Common_0112,1,2918,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3001,CC_藤原千花,かぐや様は告らせたい,RoyallSaver,1,Common_0105,1,3001,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3002,CC_四宮かぐや,かぐや様は告らせたい,RoyallSaver,2,Common_0106,1,3002,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3003,CC_白銀御行,かぐや様は告らせたい,RoyallSaver,3,Common_0107,1,3003,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3101,CC_森久保乃々,アイドルマスターシンデレラガールズ,RoyallSaver,1,Common_0105,1,3101,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3111,CC_渋谷凛,アイドルマスターシンデレラガールズ,RoyallSaver,1,Common_0105,1,3111,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3102,CC_島村卯月,アイドルマスターシンデレラガールズ,RoyallSaver,2,Common_0106,1,3102,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3103,CC_辻野あかり,アイドルマスターシンデレラガールズ,RoyallSaver,3,Common_0107,1,3103,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3104,CC_本田未央,アイドルマスターシンデレラガールズ,RoyallSaver,4,Common_0108,1,3104,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3105,CC_早坂美玲,アイドルマスターシンデレラガールズ,RoyallSaver,5,Common_0109,1,3105,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3106,CC_星輝子,アイドルマスターシンデレラガールズ,RoyallSaver,6,Common_0110,1,3106,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3107,CC_夢見りあむ,アイドルマスターシンデレラガールズ,RoyallSaver,7,Common_0111,1,3107,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3108,CC_砂塚あきら,アイドルマスターシンデレラガールズ,RoyallSaver,8,Common_0112,1,3108,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3201,CC_ブリリアントフェアリー,シャドウバース,RoyallSaver,1,Common_0105,1,3201,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3204,CC_イグニスドラゴン,シャドウバース,RoyallSaver,4,Common_0108,1,3204,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3206,CC_ダークエンペラー,シャドウバース,RoyallSaver,6,Common_0110,1,3206,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3208,CC_レオン,シャドウバース,RoyallSaver,8,Common_0112,1,3208,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3301,CC_セッカ上位,上位リーダースキン付きカード,RoyallSaver,1,Common_0105,1,3301,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3311,CC_ローフラッド,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,3311,0,0,1,0,0,1,0,0,1,1,2,0
|
||||||
|
3302,CC_ナハト・ナハト上位,上位リーダースキン付きカード,RoyallSaver,2,Common_0106,1,3302,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3303,CC_ルーニィ上位,上位リーダースキン付きカード,RoyallSaver,3,Common_0107,1,3303,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3304,CC_万華の鳳凰上位,上位リーダースキン付きカード,RoyallSaver,4,Common_0108,1,3304,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3305,CC_エイミー,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,3305,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3315,CC_ミルティオ上位,上位リーダースキン付きカード,RoyallSaver,5,Common_0109,1,3315,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3306,CC_ラウラ上位,上位リーダースキン付きカード,RoyallSaver,6,Common_0110,1,3306,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3307,CC_ジャンヌ上位,上位リーダースキン付きカード,RoyallSaver,7,Common_0111,1,3307,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3308,CC_アイシィレンドリング2,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,3308,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3318,CC_マグナゼロ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,3318,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3328,CC_ルチル上位,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,3328,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3401,CC_ホロホロ,シャーマンキング,RoyallSaver,1,Common_0105,1,3401,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3402,CC_麻倉 葉,シャーマンキング,RoyallSaver,2,Common_0106,1,3402,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3403,CC_恐山アンナ,シャーマンキング,RoyallSaver,3,Common_0107,1,3403,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3404,CC_道 蓮,シャーマンキング,RoyallSaver,4,Common_0108,1,3404,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3405,CC_ファウストⅧ世,シャーマンキング,RoyallSaver,5,Common_0109,1,3405,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3406,CC_梅宮竜之介,シャーマンキング,RoyallSaver,6,Common_0110,1,3406,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3407,CC_リゼルグ・ダイゼル,シャーマンキング,RoyallSaver,7,Common_0111,1,3407,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3408,CC_ハオ,シャーマンキング,RoyallSaver,8,Common_0112,1,3408,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3502,CC_タケツミ,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,3502,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3504,CC_ミズチ,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,3504,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3514,CC_スーロン,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,3514,0,0,1,0,0,1,0,0,1,0,0,0
|
||||||
|
3505,CC_アンサージュ,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,3505,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3506,CC_イツルギ,リーダースキン付きカード,RoyallSaver,6,Common_0110,1,3506,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3516,CC_イツルギ(青年),リーダースキン付きカード,RoyallSaver,6,Common_0110,1,3516,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
3601,CC_サイレンススズカ,ウマ娘,RoyallSaver,1,Common_0105,1,3601,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3602,CC_トウカイテイオー,ウマ娘,RoyallSaver,2,Common_0106,1,3602,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3603,CC_アグネスタキオン,ウマ娘,RoyallSaver,3,Common_0107,1,3603,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3604,CC_スペシャルウィーク,ウマ娘,RoyallSaver,4,Common_0108,1,3604,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3605,CC_マンハッタンカフェ,ウマ娘,RoyallSaver,5,Common_0109,1,3605,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3606,CC_マルゼンスキー,ウマ娘,RoyallSaver,6,Common_0110,1,3606,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3607,CC_メジロマックイーン,ウマ娘,RoyallSaver,7,Common_0111,1,3607,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3617,CC_ゴールドシップ,ウマ娘,RoyallSaver,7,Common_0111,1,3617,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3608,CC_ミホノブルボン,ウマ娘,RoyallSaver,8,Common_0112,1,3608,0,0,0,0,0,1,0,1,0,0,0,0
|
||||||
|
3701,CC_イツキ,シャドウバースF,RoyallSaver,1,Common_0105,1,3701,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
3702,CC_レン,シャドウバースF,RoyallSaver,2,Common_0106,1,3702,0,0,0,0,0,1,0,0,0,0,1,0
|
||||||
|
3703,CC_シオン,シャドウバースF,RoyallSaver,3,Common_0107,1,3703,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
3704,CC_ライト,シャドウバースF,RoyallSaver,4,Common_0108,1,3704,0,0,0,0,0,1,0,0,0,0,0,0
|
||||||
|
3705,CC_スバル,シャドウバースF,RoyallSaver,5,Common_0109,1,3705,0,0,0,0,0,1,0,0,0,0,1,0
|
||||||
|
3706,CC_リョウガ,シャドウバースF,RoyallSaver,6,Common_0110,1,3706,0,0,0,0,0,1,0,0,0,0,1,0
|
||||||
|
3707,CC_ツバサ,シャドウバースF,RoyallSaver,7,Common_0111,1,3707,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
3801,CC_ちいかわ,ちいかわ,RoyallSaver,1,Common_0105,1,3801,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
3803,CC_ハチワレ,ちいかわ,RoyallSaver,3,Common_0107,1,3803,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
3808,CC_うさぎ,ちいかわ,RoyallSaver,8,Common_0112,1,3808,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
3901,CC_ピアシィ上位,上位リーダースキン付きカード,RoyallSaver,1,Common_0105,1,3901,0,0,1,0,0,1,1,0,0,0,1,0
|
||||||
|
3911,CC_ホズミ,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,3911,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
3902,CC_タクティカルドッグ,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,3902,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
3912,CC_マーズ上位,上位リーダースキン付きカード,RoyallSaver,2,Common_0106,1,3912,0,0,1,0,0,1,1,0,0,0,1,0
|
||||||
|
3903,CC_エレノア上位,上位リーダースキン付きカード,RoyallSaver,3,Common_0107,1,3903,0,0,1,0,0,1,1,0,0,0,1,0
|
||||||
|
3904,CC_ロマロニア上位,上位リーダースキン付きカード,RoyallSaver,4,Common_0108,1,3904,0,0,1,0,0,1,1,0,0,0,0,0
|
||||||
|
3905,CC_ケルヌンノス上位,上位リーダースキン付きカード,RoyallSaver,5,Common_0109,1,3905,0,0,1,0,0,1,1,0,0,0,1,0
|
||||||
|
3906,CC_カティア上位,上位リーダースキン付きカード,RoyallSaver,6,Common_0110,1,3906,0,0,1,0,0,1,1,0,0,0,1,0
|
||||||
|
3907,CC_ウィルバート,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,3907,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
3917,CC_ホーリーセイバー上位,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,3917,0,0,1,0,0,1,1,0,0,0,1,1
|
||||||
|
3908,CC_メイシア,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,3908,0,0,1,0,0,1,0,0,0,0,1,0
|
||||||
|
3918,CC_シオン上位,上位リーダースキン付きカード,RoyallSaver,8,Common_0112,1,3918,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4002,CC_晴れ着オーレリア上位,上位リーダースキン付きカード,RoyallSaver,2,Common_0106,1,4002,0,0,1,0,0,1,1,0,0,0,1,0
|
||||||
|
4004,CC_晴れ着伊達政宗,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,4004,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4101,CC_カステル,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,4101,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4102,CC_ヴァイス,リーダースキン付きカード,RoyallSaver,2,Common_0111,1,4102,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4103,CC_アマリリス,リーダースキン付きカード,RoyallSaver,3,Common_0112,1,4103,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4104,CC_リリウム,リーダースキン付きカード,RoyallSaver,4,Common_0111,1,4104,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4105,CC_コルネリウス,リーダースキン付きカード,RoyallSaver,5,Common_0112,1,4105,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4107,CC_ベルディリア,リーダースキン付きカード,RoyallSaver,7,Common_0111,1,4107,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4108,CC_ライル,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,4108,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4201,CC_初音ミク上位,初音ミク,RoyallSaver,1,Common_0105,1,4201,0,0,0,0,0,1,1,0,0,0,1,0
|
||||||
|
4202,CC_鏡音レン,初音ミク,RoyallSaver,2,Common_0106,1,4202,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4206,CC_巡音ルカ,初音ミク,RoyallSaver,6,Common_0110,1,4206,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4207,CC_鏡音リン,初音ミク,RoyallSaver,7,Common_0111,1,4207,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4302,CC_ポムポムプリン,サンリオ,RoyallSaver,2,Common_0106,1,4302,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4303,CC_シナモロール,サンリオ,RoyallSaver,3,Common_0107,1,4303,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4304,CC_ハローキティ,サンリオ,RoyallSaver,4,Common_0108,1,4304,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4305,CC_クロミ,サンリオ,RoyallSaver,5,Common_0109,1,4305,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4401,CC_ボンド・フォージャー,SPY,RoyallSaver,1,Common_0105,1,4401,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4402,CC_ロイド・フォージャー,SPY,RoyallSaver,2,Common_0106,1,4402,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4403,CC_アーニャ・フォージャー,SPY,RoyallSaver,3,Common_0107,1,4403,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4406,CC_ヨル・フォージャー,SPY,RoyallSaver,6,Common_0110,1,4406,0,0,0,0,0,1,0,0,1,0,1,0
|
||||||
|
4413,CC_アーニャ・フォージャー上位,SPY,RoyallSaver,3,Common_0107,1,4413,0,0,0,0,0,1,1,0,1,0,1,0
|
||||||
|
4503,CC_サンタテレサ,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,4503,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4504,CC_ドラグラム,リーダースキン付きカード,RoyallSaver,4,Common_0108,1,4504,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4508,CC_エレナ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,4508,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4518,CC_アシュレイ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,4518,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4528,CC_ネルヴァ,リーダースキン付きカード,RoyallSaver,8,Common_0112,1,4528,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4601,CC_マガチヨ上位,リーダースキン付きカード,RoyallSaver,1,Common_0105,1,4601,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4602,CC_バルバロス上位,リーダースキン付きカード,RoyallSaver,2,Common_0106,1,4602,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4603,CC_セフィー上位,リーダースキン付きカード,RoyallSaver,3,Common_0107,1,4603,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4604,CC_リュミオール上位,上位リーダースキン付きカード,RoyallSaver,4,Common_0108,1,4604,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4605,CC_ケリドウェン,リーダースキン付きカード,RoyallSaver,5,Common_0109,1,4605,0,0,1,0,0,1,0,0,1,0,1,0
|
||||||
|
4615,CC_デッドソウルテイカー上位,上位リーダースキン付きカード,RoyallSaver,5,Common_0109,1,4615,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4606,CC_シグナ上位,上位リーダースキン付きカード,RoyallSaver,6,Common_0110,1,4606,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4607,CC_エルヴィーラ上位,上位リーダースキン付きカード,RoyallSaver,7,Common_0111,1,4607,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
4608,CC_キルザエル上位,上位リーダースキン付きカード,RoyallSaver,8,Common_0112,1,4608,0,0,1,0,0,1,1,0,1,0,1,0
|
||||||
|
500001,CC_虚の影アリサ,虚の影アリサ,RoyallSaver,1,Common_0105,0,500001,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500002,CC_虚の影エリカ,虚の影エリカ,RoyallSaver,1,Common_0106,0,500002,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500003,CC_虚の影イザベル,虚の影イザベル,RoyallSaver,1,Common_0107,0,500003,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500004,CC_虚の影ローウェン,虚の影ローウェン,RoyallSaver,1,Common_0108,0,500004,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500005,CC_虚の影ルナ,虚の影ルナ,RoyallSaver,1,Common_0109,0,500005,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500006,CC_虚の影ユリアス,虚の影ユリアス,RoyallSaver,1,Common_0110,0,500006,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500007,CC_イリス,青い眼のイリス,RoyallSaver,1,Common_0111,0,500007,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500008,CC_ロザリア,ロザリア,RoyallSaver,1,Common_0105,0,500008,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500009,CC_黒龍,黒龍,RoyallSaver,4,Common_0108,0,500009,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500010,CC_虚の影,虚ろの影(小),RoyallSaver,1,Common_0112,0,500010,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500011,CC_虚の影2,虚ろの影(中),RoyallSaver,1,Common_0112,0,500011,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500012,CC_虚の影3,虚ろの影(大),RoyallSaver,1,Common_0112,0,500012,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500013,CC_狼,狼(アリサ編9章),RoyallSaver,1,Common_0112,0,500013,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510013,CC_丘陵の狼,丘陵の狼(ギルド騒乱編_ルナ編3章),RoyallSaver,1,Common_0112,0,500013,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500014,CC_エルフの弓兵,エルフの弓兵(アリサ編10章),RoyallSaver,1,Common_0112,0,500014,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500015,CC_魔狼,魔狼(アリサ編11章),RoyallSaver,1,Common_0112,0,500015,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500016,CC_魔法使い,魔法使い(エリカ編10章),RoyallSaver,1,Common_0112,0,500016,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500017,CC_兵士,兵士(エリカ編11章),RoyallSaver,1,Common_0112,0,500017,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500018,CC_盗賊,盗賊(ルナ編9章),RoyallSaver,1,Common_0112,0,500018,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500019,CC_魔熊,魔熊(アリサ編12章),RoyallSaver,1,Common_0112,0,500019,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500020,CC_国王軍の兵士,国王軍の兵士(9、11、12章),RoyallSaver,1,Common_0112,0,500020,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500021,CC_バルタザール,バルタザール(ユリアス編9章),RoyallSaver,1,Common_0112,0,500021,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500022,CC_王国軍の魔法使い,王国軍の魔法使い(イザベル10章),RoyallSaver,1,Common_0112,0,500016,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500023,CC_国王軍の指揮官,王国軍の指揮官(イザベル12章),RoyallSaver,1,Common_0112,0,500020,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500024,CC_イリス,各リーダー14章のイリス(ニュートラル),RoyallSaver,1,Common_0112,0,7,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500025,CC_虚の影4,虚ろの影(高位),RoyallSaver,1,Common_0112,0,500022,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500026,CC_ネクサス,各リーダー14章のイリス(ニュートラル),RoyallSaver,1,Common_0112,0,508,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500027,CC_エレノア,エレノア,RoyallSaver,3,Common_0112,0,500023,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500028,CC_スライム,スライム,RoyallSaver,1,Common_0112,0,500024,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510028,CC_???,魔導生物,RoyallSaver,1,Common_0112,0,500024,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500029,CC_無暁の暗殺者(女),無暁の暗殺者,RoyallSaver,1,Common_0112,0,500025,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500030,CC_無暁の暗殺者(男),無暁の暗殺者,RoyallSaver,1,Common_0112,0,500026,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510030,CC_???,無暁の暗殺者,RoyallSaver,1,Common_0112,0,500026,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500031,CC_セタス,セタス,RoyallSaver,1,Common_0112,0,500031,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500032,CC_リオード,リオード,RoyallSaver,2,Common_0112,0,500032,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510032,CC_???,リオード,RoyallSaver,2,Common_0112,0,500032,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500033,CC_ニコラ,ニコラ,RoyallSaver,5,Common_0112,0,500033,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510033,CC_???,ニコラ,RoyallSaver,5,Common_0112,0,500033,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500034,CC_マーロン,マーロン,RoyallSaver,7,Common_0112,0,500034,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500035,CC_エスカマリの信徒(男),無暁の暗殺者,RoyallSaver,1,Common_0112,0,500035,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500036,CC_メイシア,メイシア,RoyallSaver,2,Common_0112,0,500030,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500037,CC_ブレイドライツ騎士団(剣士),ブレイドライツ騎士団(剣士),RoyallSaver,1,Common_0112,0,500037,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510037,CC_???,ブレイドライツ騎士団(剣士),RoyallSaver,1,Common_0112,0,500037,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500038,CC_ブレイドライツ騎士団(重戦士),ブレイドライツ騎士団(重戦士),RoyallSaver,1,Common_0112,0,500038,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510038,CC_???,ブレイドライツ騎士団(重戦士),RoyallSaver,1,Common_0112,0,500038,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500039,CC_メイシア,メイシア,RoyallSaver,8,Common_0112,0,500039,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500040,CC_モノ,モノ,RoyallSaver,6,Common_0112,0,500040,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500041,CC_テトラ,テトラ,RoyallSaver,3,Common_0112,0,500041,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500042,CC_警戒用マシーン(人型),警戒用マシーン(人型),RoyallSaver,1,Common_0112,0,500042,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500043,CC_警戒用マシーン(小型),警戒用マシーン(小型),RoyallSaver,1,Common_0112,0,500043,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500044,CC_近衛機械兵(人型),近衛機械兵(人型),RoyallSaver,1,Common_0112,0,500044,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500045,CC_近衛機械兵(大型),近衛機械兵(大型),RoyallSaver,1,Common_0112,0,500045,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500046,CC_ベルフォメット,ベルフォメット,RoyallSaver,8,Common_0112,0,500046,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500047,CC_ティシポネー,ティシポネー,RoyallSaver,1,Common_0112,0,500047,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500048,CC_アレークト,アレークト,RoyallSaver,1,Common_0112,0,500048,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500049,CC_メガイラ,メガイラ,RoyallSaver,1,Common_0112,0,500049,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500101,CC_ベイリオン,ベイリオン,RoyallSaver,2,Common_0112,0,500101,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500102,CC_ヴァイディ,ヴァイディ,RoyallSaver,4,Common_0112,0,500102,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510102,CC_???,ヴァイディ,RoyallSaver,4,Common_0112,0,500102,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500103,CC_ラティカ,ラティカ,RoyallSaver,1,Common_0112,0,500103,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510103,CC_???,ラティカ,RoyallSaver,1,Common_0112,0,500103,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500104,CC_ミストリナ,ミストリナ,RoyallSaver,2,Common_0112,0,500104,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500105,CC_ムニャール,ムニャール,RoyallSaver,7,Common_0112,0,500105,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500106,CC_ジーナ,ジーナ,RoyallSaver,4,Common_0112,0,500106,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500107,CC_母なる君,母なる君,RoyallSaver,1,Common_0112,0,500107,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500109,CC_ナテラの穏健派(男性),ナテラの穏健派(男性),RoyallSaver,1,Common_0112,0,500109,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500111,CC_ナテラの過激派(男性),ナテラの過激派(男性),RoyallSaver,1,Common_0112,0,500111,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500112,CC_ナテラの過激派(女性),ナテラの過激派(女性),RoyallSaver,1,Common_0112,0,500112,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500113,CC_穢れた妖精,穢れた妖精,RoyallSaver,1,Common_0112,0,500113,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510113,CC_???,穢れた妖精,RoyallSaver,1,Common_0112,0,500113,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500114,CC_穢れた精霊,穢れた精霊,RoyallSaver,1,Common_0112,0,500114,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510114,CC_???,穢れた精霊,RoyallSaver,1,Common_0112,0,500114,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500115,CC_穢れた熊,穢れた熊,RoyallSaver,1,Common_0112,0,500115,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500116,CC_穢れた大精霊,穢れた大精霊,RoyallSaver,1,Common_0112,0,500116,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500215,CC_触手A,触手A,RoyallSaver,1,Common_0112,0,500215,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500216,CC_触手B,触手B,RoyallSaver,1,Common_0112,0,500216,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500217,CC_機械歩兵,機械歩兵,RoyallSaver,1,Common_0112,0,500217,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500211,CC_融合ベルフォメット,融合ベルフォメット,RoyallSaver,8,Common_0112,0,500211,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500303,CC_バニー&バロン,バニー&バロン,RoyallSaver,2,Common_0112,0,500303,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500304,CC_マイザー,マイザー(銃),RoyallSaver,3,Common_0112,0,500304,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500305,CC_セリーナ,セリーナ,RoyallSaver,7,Common_0112,0,500305,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500306,CC_イルガンノ,イルガンノ,RoyallSaver,8,Common_0112,0,500306,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500307,CC_フローゼス,フローゼス,RoyallSaver,8,Common_0112,0,500307,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500308,CC_ナハト・ナハト,ナハト・ナハト,RoyallSaver,2,Common_0112,0,500308,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500325,CC_ごろつき(男性),ごろつき(男性),RoyallSaver,2,Common_0112,0,500325,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500329,CC_ごろつき(女性),ごろつき(女性),RoyallSaver,2,Common_0112,0,500329,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500334,CC_アイシィの部下(男性),アイシィの部下(男性),RoyallSaver,1,Common_0112,0,500334,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500337,CC_アイシィの部下(女性),アイシィの部下(女性),RoyallSaver,6,Common_0112,0,500337,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500340,CC_異形,異形,RoyallSaver,1,Common_0112,0,500340,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500394,CC_マイザー,マイザー(拳),RoyallSaver,3,Common_0112,0,500394,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500311,CC_ゼシルウェンシー,ゼシルウェンシー,RoyallSaver,8,Common_0112,0,500311,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500310,CC_アイシィレンドリング,アイシィレンドリング,RoyallSaver,8,Common_0112,0,500310,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500401,CC_セッカ,セッカ(尻尾5本),RoyallSaver,1,Common_0112,0,500401,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500402,CC_ドラーク,ドラーク,RoyallSaver,4,Common_0112,0,500402,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500403,CC_カゲロウ,カゲロウ,RoyallSaver,5,Common_0112,0,500403,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500404,CC_アルザード,アルザード,RoyallSaver,6,Common_0112,0,500404,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510404,CC_???,アルザード,RoyallSaver,6,Common_0112,0,2606,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500405,CC_ツキカゲ,ツキカゲ,RoyallSaver,5,Common_0112,1,500405,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
510405,CC_???,ツキカゲ,RoyallSaver,5,Common_0112,1,500405,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500406,CC_グレイツ,グレイツ,RoyallSaver,4,Common_0112,0,500406,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500407,CC_ギド,ギド(人間),RoyallSaver,6,Common_0112,0,500407,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500408,CC_九尾の狐,九尾の狐,RoyallSaver,1,Common_0112,0,500408,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500418,CC_ドラゴニュート(男性),ドラゴニュート(男性),RoyallSaver,1,Common_0112,0,500418,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500420,CC_ドラゴニュート(女性),ドラゴニュート(女性),RoyallSaver,1,Common_0112,0,500420,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500423,CC_人狼(男性),人狼(男性),RoyallSaver,1,Common_0112,0,500423,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500426,CC_人狼(女性),人狼(女性),RoyallSaver,1,Common_0112,0,500426,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500601,CC_アイシィレンドリング(異形),アイシィレンドリング(異形),RoyallSaver,8,Common_0112,0,500601,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500701,CC_イツルギ,イツルギ,RoyallSaver,6,Common_0112,0,500701,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500732,CC_ミズチ&スーロン,ミズチ&スーロン,RoyallSaver,4,Common_0112,0,500732,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500704,CC_アンサージュ,アンサージュ,RoyallSaver,5,Common_0112,0,500704,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500708,CC_災藤,災藤,RoyallSaver,8,Common_0112,0,500708,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500709,CC_旅籠煤(攻撃型),旅籠煤(攻撃型),RoyallSaver,1,Common_0112,0,500709,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500712,CC_タケツミ(異形),タケツミ(異形),RoyallSaver,6,Common_0112,0,500712,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500731,CC_メイシア,メイシア,RoyallSaver,8,Common_0112,0,500731,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500901,CC_ベルディリア,ベルディリア,RoyallSaver,7,Common_0112,0,500901,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500903,CC_ライル,ライル,RoyallSaver,8,Common_0112,0,500903,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500904,CC_アマリリス,アマリリス,RoyallSaver,3,Common_0112,0,500904,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500902,CC_カステル,カステル,RoyallSaver,1,Common_0112,0,500902,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
500943,CC_竜,竜,RoyallSaver,4,Common_0112,0,500943,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
501015,CC_覇王軍の兵,覇王軍の兵,RoyallSaver,4,Common_0112,0,501015,99,1,1,0,0,1,0,0,0,0,0,0
|
||||||
|
600010,CC_ぴにゃこら太,アイドルマスターシンデレラガールズ,RoyallSaver,0,Common_0112,0,600010,1,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600020,CC_黒ぴにゃこら太,アイドルマスターシンデレラガールズ,RoyallSaver,0,Common_0112,0,600020,99,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600030,CC_ピンクぴにゃこら太,アイドルマスターシンデレラガールズ,RoyallSaver,0,Common_0112,0,600030,6,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600040,CC_金ぴにゃこら太,アイドルマスターシンデレラガールズ,RoyallSaver,0,Common_0112,0,600040,2,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600050,CC_千川ちひろ,アイドルマスターシンデレラガールズ,RoyallSaver,1,Common_0112,0,600050,1,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600060,CC_ジェントルマン,シャドウバースF,RoyallSaver,3,Common_0112,0,600060,3,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600070,CC_鏡音リン・レン,初音ミク,RoyallSaver,2,Common_0112,0,600070,0,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600080,CC_プリン・シナモン,サンリオ,RoyallSaver,3,Common_0112,0,600080,0,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
600090,CC_アーニャ&ボンド,SPY,RoyallSaver,3,Common_0112,0,600090,0,1,0,0,0,1,0,0,0,0,0,0
|
||||||
|
500948,CC_カステル(管理者),カステル(管理者),RoyallSaver,1,Common_0112,0,500948,0,0,1,0,0,1,0,0,0,0,0,0
|
||||||
|
18
SVSim.EmulatedEntrypoint/Data/mypagebackgrounds.csv
Normal file
18
SVSim.EmulatedEntrypoint/Data/mypagebackgrounds.csv
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
id,name,position_x,position_y,position_x2,position_y2,scale,scale2,front_effect_attach_character,back_effect_attach_character,spine_size,alpha_border,alpha_div,is_bg_card_shader
|
||||||
|
1211410310,MP_深緑の弓使い・アリサ,-27.5,235.5,-27.5,195,1.1,1.1,1,0,0.75,0.05,2,0
|
||||||
|
1212410310,MP_忠義の剣士・エリカ,-67,93,-67,46,1.1,1.1,1,0,0.6,0.3,2,0
|
||||||
|
1213410310,MP_究明の魔術師・イザベル,63,114,63,75,1.1,1.1,1,0,0.6,0.05,4,0
|
||||||
|
1214410310,MP_竜槍の戦士・ローウェン,24,86,24,34,1.45,1.45,1,0,0.75,0.05,2,0
|
||||||
|
1215410310,MP_友魂の少女・ルナ,41,135,41,104,1,1,1,0,0.83,0.65,4,0
|
||||||
|
1216410310,MP_終幕の吸血鬼・ユリアス,-52,158,-52,118,0.84,0.84,1,0,0.6,0.65,4,0
|
||||||
|
1217410310,MP_贖罪の司祭・イリス,28,115,28,71,1.1,1.1,1,0,0.6,0.05,2,0
|
||||||
|
1218410310,MP_次元の超克者・ユアン,16,58,16,38,1.1,1.1,1,0,0.5,0.05,4,0
|
||||||
|
721141010,MP_剪定の咎人・マガチヨ,0,322,0,322,1,1,1,0,0.85,0.05,2,0
|
||||||
|
721241010,MP_出航の咎人・バルバロス,0,322,0,322,1,1,1,0,0.85,0.05,2,0
|
||||||
|
721341010,MP_耽溺の咎人・セフィー,0,322,0,322,1,1,1,0,0.85,0.05,2,1
|
||||||
|
721441010,MP_金色の威信・リュミオール,0,322,0,322,1,1,1,0,0.85,0.05,2,1
|
||||||
|
721541020,MP_デッドソウルテイカー,0,322,0,322,1,1,1,0,0.85,0.05,2,1
|
||||||
|
721641010,MP_封印の凶狼・シグナ,0,322,0,322,1,1,1,0,0.85,0.05,2,1
|
||||||
|
721741010,MP_華麗なる淑女・エルヴィーラ,0,322,0,322,1,1,1,0,0.85,0.05,2,1
|
||||||
|
721841010,MP_弾哭の執行者・キルザエル,0,322,0,322,1,1,1,0,0.85,0.05,2,1
|
||||||
|
100000000,Default,-27.5,235.5,-27.5,195,1.1,1.1,1,0,0.75,0.05,2,0
|
||||||
|
30
SVSim.EmulatedEntrypoint/Data/ranks.csv
Normal file
30
SVSim.EmulatedEntrypoint/Data/ranks.csv
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
rank_id,rank_name,necessary_point,accumulate_point,lower_limit_point,base_add_bp,base_drop_bp,streak_bonus_pt,win_bonus,lose_bonus,max_win_bonus,max_lose_bonus,is_promotion_war,match_count,necessary_win,reset_lose,accumulate_master_point
|
||||||
|
1,RankName_001,100,100,0,100,0,50,0.01,0,50,0,0,0,0,0,0
|
||||||
|
2,RankName_002,100,200,0,100,0,50,0.01,0,50,0,0,0,0,0,0
|
||||||
|
3,RankName_003,500,700,0,100,0,50,0.01,0,50,0,0,0,0,0,0
|
||||||
|
4,RankName_004,500,1200,0,100,0,50,0.01,0,50,0,0,0,0,0,0
|
||||||
|
5,RankName_005,750,1950,1200,100,30,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
6,RankName_006,750,2700,1200,100,30,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
7,RankName_007,800,3500,1200,100,30,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
8,RankName_008,1000,4500,1200,100,30,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
9,RankName_009,1500,6000,4500,100,50,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
10,RankName_010,1500,7500,4500,100,50,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
11,RankName_011,1750,9250,4500,100,50,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
12,RankName_012,1750,11000,4500,100,50,50,0.01,0.01,50,30,1,4,2,3,0
|
||||||
|
13,RankName_013,2000,13000,11000,100,70,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
14,RankName_014,2000,15000,11000,100,70,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
15,RankName_015,2500,17500,11000,100,70,50,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
16,RankName_016,2500,20000,11000,100,70,50,0.01,0.01,50,30,1,3,2,2,0
|
||||||
|
17,RankName_017,3000,23000,20000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
18,RankName_018,3000,26000,20000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
19,RankName_019,3500,29500,20000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
20,RankName_020,3500,33000,20000,100,100,0,0.01,0.01,50,30,1,3,2,2,0
|
||||||
|
21,RankName_021,4000,37000,33000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
22,RankName_022,4000,41000,33000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
23,RankName_023,4500,45500,33000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
24,RankName_024,4500,50000,33000,100,100,0,0.01,0.01,50,30,1,3,2,2,0
|
||||||
|
25,RankName_025,0,0,50000,100,100,0,0.01,0.01,50,30,1,3,2,2,5000
|
||||||
|
26,RankName_G026,0,0,50000,100,100,0,0.01,0.01,50,30,0,0,0,0,15000
|
||||||
|
27,RankName_G027,0,0,50000,100,100,0,0.01,0.01,50,30,0,0,0,0,25000
|
||||||
|
28,RankName_G028,0,0,50000,100,100,0,0.01,0.01,50,30,0,0,0,0,35000
|
||||||
|
29,RankName_G029,0,0,50000,100,100,0,0.01,0.01,50,30,0,0,0,0,0
|
||||||
|
1503
SVSim.EmulatedEntrypoint/Data/sleeves.csv
Normal file
1503
SVSim.EmulatedEntrypoint/Data/sleeves.csv
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,13 +5,22 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
|||||||
[MessagePackObject]
|
[MessagePackObject]
|
||||||
public class AvatarAbility
|
public class AvatarAbility
|
||||||
{
|
{
|
||||||
|
[Key("leader_skin_id")]
|
||||||
public int LeaderSkinId { get; set; }
|
public int LeaderSkinId { get; set; }
|
||||||
|
[Key("battle_start_firstplayerturn_bp")]
|
||||||
public int BattleStartFirstPlayerBp { get; set; }
|
public int BattleStartFirstPlayerBp { get; set; }
|
||||||
|
[Key("battle_start_secondplayerturn_bp")]
|
||||||
public int BattleStartSecondPlayerBp { get; set; }
|
public int BattleStartSecondPlayerBp { get; set; }
|
||||||
|
[Key("battle_start_max_life")]
|
||||||
public int BattleStartMaxLife { get; set; }
|
public int BattleStartMaxLife { get; set; }
|
||||||
|
[Key("ability_cost")]
|
||||||
public string AbilityCost { get; set; }
|
public string AbilityCost { get; set; }
|
||||||
|
[Key("ability")]
|
||||||
public string Ability { get; set; }
|
public string Ability { get; set; }
|
||||||
|
[Key("passive_ability")]
|
||||||
public string PassiveAbility { get; set; }
|
public string PassiveAbility { get; set; }
|
||||||
|
[Key("ability_desc")]
|
||||||
public string AbilityDesc { get; set; }
|
public string AbilityDesc { get; set; }
|
||||||
|
[Key("passive_ability_desc")]
|
||||||
public string PassiveAbilityDesc { get; set; }
|
public string PassiveAbilityDesc { get; set; }
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,8 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
|||||||
[MessagePackObject]
|
[MessagePackObject]
|
||||||
public class AvatarInfo
|
public class AvatarInfo
|
||||||
{
|
{
|
||||||
|
[Key("abilities")]
|
||||||
public Dictionary<string, AvatarAbility> Abilities { get; set; } = new Dictionary<string, AvatarAbility>();
|
public Dictionary<string, AvatarAbility> Abilities { get; set; } = new Dictionary<string, AvatarAbility>();
|
||||||
|
[Key("schedules")]
|
||||||
public SpecialRotationSchedule Schedules { get; set; } = new SpecialRotationSchedule();
|
public SpecialRotationSchedule Schedules { get; set; } = new SpecialRotationSchedule();
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -6,9 +7,20 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
|||||||
public class DefaultSettings
|
public class DefaultSettings
|
||||||
{
|
{
|
||||||
[Key("default_emblem_id")]
|
[Key("default_emblem_id")]
|
||||||
public ulong DefaultEmblemId { get; set; }
|
public int DefaultEmblemId { get; set; }
|
||||||
[Key("default_degree_id")]
|
[Key("default_degree_id")]
|
||||||
public int DefaultDegreeId { get; set; }
|
public int DefaultDegreeId { get; set; }
|
||||||
[Key("default_mypage_id")]
|
[Key("default_mypage_id")]
|
||||||
public ulong DefaultMyPageBackground { get; set; }
|
public int DefaultMyPageBackground { get; set; }
|
||||||
|
|
||||||
|
public DefaultSettings(GameConfiguration config)
|
||||||
|
{
|
||||||
|
this.DefaultMyPageBackground = config.DefaultMyPageBackground.Id;
|
||||||
|
this.DefaultDegreeId = config.DefaultDegree.Id;
|
||||||
|
this.DefaultEmblemId = config.DefaultEmblem.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultSettings()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -6,9 +6,9 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos.Internal;
|
|||||||
public class DataHeaders
|
public class DataHeaders
|
||||||
{
|
{
|
||||||
[Key("short_udid")]
|
[Key("short_udid")]
|
||||||
public ulong ShortUdid { get; set; }
|
public long ShortUdid { get; set; }
|
||||||
[Key("viewer_id")]
|
[Key("viewer_id")]
|
||||||
public ulong ViewerId { get; set; }
|
public long ViewerId { get; set; }
|
||||||
[Key("sid")]
|
[Key("sid")]
|
||||||
public string Sid { get; set; }
|
public string Sid { get; set; }
|
||||||
[Key("servertime")]
|
[Key("servertime")]
|
||||||
|
|||||||
@@ -5,11 +5,18 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
|||||||
[MessagePackObject()]
|
[MessagePackObject()]
|
||||||
public class MyRotationAbility
|
public class MyRotationAbility
|
||||||
{
|
{
|
||||||
|
[Key("ability_id")]
|
||||||
public int AbilityId { get; set; }
|
public int AbilityId { get; set; }
|
||||||
|
[Key("add_start_pp")]
|
||||||
public int AddStartPp { get; set; }
|
public int AddStartPp { get; set; }
|
||||||
|
[Key("add_start_life")]
|
||||||
public int AddStartLife { get; set; }
|
public int AddStartLife { get; set; }
|
||||||
|
[Key("increase_add_pptotal_amount")]
|
||||||
public int IncreaseAddPpTotalAmount { get; set; }
|
public int IncreaseAddPpTotalAmount { get; set; }
|
||||||
|
[Key("increase_add_pptotal_turn")]
|
||||||
public int IncreaseAddPpTotalTurn { get; set; }
|
public int IncreaseAddPpTotalTurn { get; set; }
|
||||||
|
[Key("ability")]
|
||||||
public string Ability { get; set; } = string.Empty;
|
public string Ability { get; set; } = string.Empty;
|
||||||
public string AbilityDesc { get; set; } = String.Empty;
|
[Key("ability_desc")]
|
||||||
|
public string AbilityDesc { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -39,4 +40,29 @@ public class RankInfo
|
|||||||
public int ResetLose { get; set; }
|
public int ResetLose { get; set; }
|
||||||
[Key("accumulate_master_point")]
|
[Key("accumulate_master_point")]
|
||||||
public int AccumulateMasterPoints { get; set; }
|
public int AccumulateMasterPoints { get; set; }
|
||||||
|
|
||||||
|
public RankInfo(RankInfoEntry rankEntry)
|
||||||
|
{
|
||||||
|
RankId = rankEntry.Id;
|
||||||
|
RankName = rankEntry.Name;
|
||||||
|
NecessaryPoints = rankEntry.NecessaryPoint;
|
||||||
|
AccumulatePoints = rankEntry.AccumulatePoint;
|
||||||
|
LowerLimitPoints = rankEntry.LowerLimitPoint;
|
||||||
|
BaseAddBp = rankEntry.BaseAddBp;
|
||||||
|
BaseDropBp = rankEntry.BaseDropBp;
|
||||||
|
StreakBonusPoints = rankEntry.StreakBonusPt;
|
||||||
|
WinBonus = rankEntry.WinBonus;
|
||||||
|
LoseBonus = rankEntry.LoseBonus;
|
||||||
|
MaxWinBonus = rankEntry.MaxWinBonus;
|
||||||
|
MaxLoseBonus = rankEntry.MaxLoseBonus;
|
||||||
|
IsPromotionWar = rankEntry.IsPromotionWar;
|
||||||
|
MatchCount = rankEntry.MatchCount;
|
||||||
|
NecessaryWins = rankEntry.NecessaryWin;
|
||||||
|
ResetLose = rankEntry.ResetLose;
|
||||||
|
AccumulateMasterPoints = rankEntry.AccumulateMasterPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RankInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,28 @@
|
|||||||
|
using MessagePack;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// An indication that a specific card has had it's red ether amounts overriden from the normal amounts.
|
/// An indication that a specific card has had it's red ether amounts overriden from the normal amounts.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[MessagePackObject]
|
||||||
public class RedEtherOverride
|
public class RedEtherOverride
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The id of the affected card.
|
/// The id of the affected card.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Key("card_id")]
|
||||||
public ulong CardId { get; set; }
|
public ulong CardId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// How much red ether is now provided from dusting the card.
|
/// How much red ether is now provided from dusting the card.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Key("get_red_ether")]
|
||||||
public int GetRedEther { get; set; }
|
public int GetRedEther { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// How much red ether is now required to craft the card.
|
/// How much red ether is now required to craft the card.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Key("use_red_ether")]
|
||||||
public int UseRedEther { get; set; }
|
public int UseRedEther { get; set; }
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses;
|
|||||||
public class GameStartResponse
|
public class GameStartResponse
|
||||||
{
|
{
|
||||||
[Key("now_viewer_id")]
|
[Key("now_viewer_id")]
|
||||||
public ulong NowViewerId { get; set; }
|
public long NowViewerId { get; set; }
|
||||||
[Key("is_set_transition_password")]
|
[Key("is_set_transition_password")]
|
||||||
public bool IsSetTransitionPassword { get; set; }
|
public bool IsSetTransitionPassword { get; set; }
|
||||||
[Key("now_name")]
|
[Key("now_name")]
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public class IndexResponse
|
|||||||
/// Backgrounds for 'My Page' the user has collected.
|
/// Backgrounds for 'My Page' the user has collected.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Key("user_mypage_list")]
|
[Key("user_mypage_list")]
|
||||||
public List<ulong> MyPageBackgrounds { get; set; } = new List<ulong>();
|
public List<int> MyPageBackgrounds { get; set; } = new List<int>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -19,4 +20,15 @@ public class UserCard : CardIdentifier
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Key("is_protected")]
|
[Key("is_protected")]
|
||||||
public int IsProtected { get; set; }
|
public int IsProtected { get; set; }
|
||||||
|
|
||||||
|
public UserCard(OwnedCardEntry card)
|
||||||
|
{
|
||||||
|
this.CardId = card.Card.Id;
|
||||||
|
this.Count = card.Count;
|
||||||
|
this.IsProtected = card.IsProtected ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserCard()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -28,4 +29,19 @@ public class UserClass
|
|||||||
|
|
||||||
[Key("default_leader_skin_id")]
|
[Key("default_leader_skin_id")]
|
||||||
public int DefaultLeaderSkinId { get; set; }
|
public int DefaultLeaderSkinId { get; set; }
|
||||||
|
|
||||||
|
public UserClass(ViewerClassData viewerClass)
|
||||||
|
{
|
||||||
|
this.ClassId = viewerClass.Class.Id;
|
||||||
|
this.IsAvailable = 1;
|
||||||
|
this.Level = viewerClass.Level;
|
||||||
|
this.Exp = viewerClass.Exp;
|
||||||
|
this.IsRandomLeaderSkin = 0;
|
||||||
|
this.LeaderSkinId = viewerClass.LeaderSkin.Id;
|
||||||
|
this.DefaultLeaderSkinId = viewerClass.Class.DefaultLeaderSkin.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserClass()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -7,7 +7,7 @@ namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
|||||||
public class UserCurrency
|
public class UserCurrency
|
||||||
{
|
{
|
||||||
[Key("viewer_id")]
|
[Key("viewer_id")]
|
||||||
public ulong ViewerId { get; set; }
|
public long ViewerId { get; set; }
|
||||||
[Key("crystal")]
|
[Key("crystal")]
|
||||||
public ulong Crystals { get; set; }
|
public ulong Crystals { get; set; }
|
||||||
[Key("crystal_android")]
|
[Key("crystal_android")]
|
||||||
@@ -40,7 +40,7 @@ public class UserCurrency
|
|||||||
this.Crystals = currency.Crystals;
|
this.Crystals = currency.Crystals;
|
||||||
this.RedEther = currency.RedEther;
|
this.RedEther = currency.RedEther;
|
||||||
this.LifeTotalCrystals = currency.LifeTotalCrystals;
|
this.LifeTotalCrystals = currency.LifeTotalCrystals;
|
||||||
this.TotalCrystals = currency.LifeTotalCrystals;
|
this.TotalCrystals = currency.Crystals;
|
||||||
this.Rupees = currency.Rupees;
|
this.Rupees = currency.Rupees;
|
||||||
this.FreeCrystals = currency.FreeCrystals;
|
this.FreeCrystals = currency.FreeCrystals;
|
||||||
this.AndroidCrystals = currency.AndroidCrystals;
|
this.AndroidCrystals = currency.AndroidCrystals;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -17,9 +18,9 @@ public class UserDeck
|
|||||||
[Key("leader_skin_id")]
|
[Key("leader_skin_id")]
|
||||||
public int LeaderSkinId { get; set; }
|
public int LeaderSkinId { get; set; }
|
||||||
[Key("deck_name")]
|
[Key("deck_name")]
|
||||||
public string DeckName { get; set; } = string.Empty;
|
public string Name { get; set; } = string.Empty;
|
||||||
[Key("card_id_array")]
|
[Key("card_id_array")]
|
||||||
public List<int> Cards { get; set; } = new List<int>();
|
public List<long> Cards { get; set; } = new List<long>();
|
||||||
[Key("is_complete_deck")]
|
[Key("is_complete_deck")]
|
||||||
public int IsCompleteDeck { get; set; }
|
public int IsCompleteDeck { get; set; }
|
||||||
[Key("restricted_card_exists")]
|
[Key("restricted_card_exists")]
|
||||||
@@ -27,7 +28,7 @@ public class UserDeck
|
|||||||
[Key("is_available_deck")]
|
[Key("is_available_deck")]
|
||||||
public int IsAvailable { get; set; }
|
public int IsAvailable { get; set; }
|
||||||
[Key("maintenance_card_ids")]
|
[Key("maintenance_card_ids")]
|
||||||
public List<int> MaintenanceCards { get; set; } = new List<int>();
|
public List<long> MaintenanceCards { get; set; } = new List<long>();
|
||||||
[Key("is_include_un_possession_card")]
|
[Key("is_include_un_possession_card")]
|
||||||
public bool IncludesNonCollectibleCards { get; set; }
|
public bool IncludesNonCollectibleCards { get; set; }
|
||||||
[Key("is_random_leader_skin")]
|
[Key("is_random_leader_skin")]
|
||||||
@@ -38,4 +39,30 @@ public class UserDeck
|
|||||||
public int Order { get; set; }
|
public int Order { get; set; }
|
||||||
[Key("create_deck_time")]
|
[Key("create_deck_time")]
|
||||||
public DateTime DeckCreateTime { get; set; }
|
public DateTime DeckCreateTime { get; set; }
|
||||||
|
|
||||||
|
public UserDeck(ShadowverseDeckEntry deck)
|
||||||
|
{
|
||||||
|
this.DeckNumber = deck.Number;
|
||||||
|
this.ClassId = deck.Class.Id;
|
||||||
|
this.LeaderSkinId = deck.LeaderSkin.Id;
|
||||||
|
this.SleeveId = deck.Sleeve.Id;
|
||||||
|
this.Name = deck.Name;
|
||||||
|
this.Cards = deck.Cards.SelectMany(card => Enumerable.Range(0, card.Count).Select(count => card.Card.Id))
|
||||||
|
.ToList();
|
||||||
|
this.IsRandomLeaderSkin = deck.RandomLeaderSkin ? 1 : 0;
|
||||||
|
this.Order = deck.Number;
|
||||||
|
this.DeckCreateTime = deck.DateCreated;
|
||||||
|
|
||||||
|
//TODO probably want to calc some of these on demand
|
||||||
|
this.IsCompleteDeck = 1;
|
||||||
|
this.RestrictedCardExists = false;
|
||||||
|
this.IsAvailable = 1;
|
||||||
|
this.MaintenanceCards = new();
|
||||||
|
this.IncludesNonCollectibleCards = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDeck()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -10,4 +11,14 @@ public class UserItem
|
|||||||
|
|
||||||
[Key("number")]
|
[Key("number")]
|
||||||
public int Number { get; set; }
|
public int Number { get; set; }
|
||||||
|
|
||||||
|
public UserItem(OwnedItemEntry item)
|
||||||
|
{
|
||||||
|
this.ItemId = item.Item.Id;
|
||||||
|
this.Number = item.Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using MessagePack;
|
using MessagePack;
|
||||||
|
using SVSim.Database.Models;
|
||||||
|
|
||||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||||
|
|
||||||
@@ -15,4 +16,17 @@ public class UserLeaderSkin
|
|||||||
public int EmoteId { get; set; }
|
public int EmoteId { get; set; }
|
||||||
[Key("is_owned")]
|
[Key("is_owned")]
|
||||||
public bool IsOwned { get; set; }
|
public bool IsOwned { get; set; }
|
||||||
|
|
||||||
|
public UserLeaderSkin(LeaderSkinEntry leaderSkin, bool isOwned)
|
||||||
|
{
|
||||||
|
this.Id = leaderSkin.Id;
|
||||||
|
this.Name = leaderSkin.Name;
|
||||||
|
this.ClassId = leaderSkin.Class.Id;
|
||||||
|
this.EmoteId = leaderSkin.EmoteId;
|
||||||
|
this.IsOwned = isOwned;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserLeaderSkin()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,8 @@ using DCGEngine.Database.Configuration;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using SVSim.Database;
|
using SVSim.Database;
|
||||||
using SVSim.Database.Models;
|
using SVSim.Database.Models;
|
||||||
|
using SVSim.Database.Repositories.Card;
|
||||||
|
using SVSim.Database.Repositories.Globals;
|
||||||
using SVSim.Database.Repositories.Viewer;
|
using SVSim.Database.Repositories.Viewer;
|
||||||
using SVSim.EmulatedEntrypoint.Middlewares;
|
using SVSim.EmulatedEntrypoint.Middlewares;
|
||||||
using SVSim.EmulatedEntrypoint.Security.SteamSessionAuthentication;
|
using SVSim.EmulatedEntrypoint.Security.SteamSessionAuthentication;
|
||||||
@@ -32,9 +34,11 @@ public class Program
|
|||||||
|
|
||||||
builder.Services.AddDbContext<SVSimDbContext>(opt =>
|
builder.Services.AddDbContext<SVSimDbContext>(opt =>
|
||||||
{
|
{
|
||||||
opt.UseSqlite(builder.Configuration.GetConnectionString("Sqlite"));
|
opt.UseNpgsql(builder.Configuration.GetConnectionString("ApplicationDb"));
|
||||||
});
|
});
|
||||||
builder.Services.AddTransient<IViewerRepository, ViewerRepository>();
|
builder.Services.AddTransient<IViewerRepository, ViewerRepository>();
|
||||||
|
builder.Services.AddTransient<ICardRepository, CardRepository>();
|
||||||
|
builder.Services.AddTransient<IGlobalsRepository, GlobalsRepository>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Configuration\" />
|
<Folder Include="Configuration\" />
|
||||||
|
<Folder Include="Data\" />
|
||||||
<Folder Include="Utility\" />
|
<Folder Include="Utility\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Sqlite": "Data Source=test_db"
|
"ApplicationDb": "Host=localhost;Database=svsim;Username=postgres;password=postgres"
|
||||||
},
|
},
|
||||||
"AllowedHosts": "*"
|
"AllowedHosts": "*"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user