Seeding reorg
This commit is contained in:
17
SVSim.Bootstrap/Data/battlefields.csv
Normal file
17
SVSim.Bootstrap/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
|
||||
|
1069
SVSim.Bootstrap/Data/card_cosmetic_rewards.csv
Normal file
1069
SVSim.Bootstrap/Data/card_cosmetic_rewards.csv
Normal file
File diff suppressed because it is too large
Load Diff
9
SVSim.Bootstrap/Data/classes.csv
Normal file
9
SVSim.Bootstrap/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.Bootstrap/Data/classexp.csv
Normal file
151
SVSim.Bootstrap/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.Bootstrap/Data/degrees.csv
Normal file
1817
SVSim.Bootstrap/Data/degrees.csv
Normal file
File diff suppressed because it is too large
Load Diff
2215
SVSim.Bootstrap/Data/emblems.csv
Normal file
2215
SVSim.Bootstrap/Data/emblems.csv
Normal file
File diff suppressed because it is too large
Load Diff
418
SVSim.Bootstrap/Data/leaderskins.csv
Normal file
418
SVSim.Bootstrap/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.Bootstrap/Data/mypagebackgrounds.csv
Normal file
18
SVSim.Bootstrap/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.Bootstrap/Data/ranks.csv
Normal file
30
SVSim.Bootstrap/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.Bootstrap/Data/sleeves.csv
Normal file
1503
SVSim.Bootstrap/Data/sleeves.csv
Normal file
File diff suppressed because it is too large
Load Diff
78
SVSim.Bootstrap/Importers/CardCosmeticRewardImporter.cs
Normal file
78
SVSim.Bootstrap/Importers/CardCosmeticRewardImporter.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System.Globalization;
|
||||
using CsvHelper;
|
||||
using CsvHelper.Configuration;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using SVSim.Database;
|
||||
using SVSim.Database.Enums;
|
||||
using SVSim.Database.Models;
|
||||
|
||||
namespace SVSim.Bootstrap.Importers;
|
||||
|
||||
/// <summary>
|
||||
/// Reads <c>card_cosmetic_rewards.csv</c> and upserts <see cref="CardCosmeticReward"/> rows.
|
||||
/// MUST run after <see cref="CardImporter"/> — the table has an FK to <c>Cards.Id</c>, so any
|
||||
/// reward whose CardId isn't in the freshly-imported cards table is skipped with a warning.
|
||||
/// </summary>
|
||||
public class CardCosmeticRewardImporter
|
||||
{
|
||||
public async Task ImportAsync(SVSimDbContext context, string dataDir)
|
||||
{
|
||||
string path = Path.Combine(dataDir, "card_cosmetic_rewards.csv");
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
Console.Error.WriteLine($"[CardCosmeticRewardImporter] Missing CSV: {path}");
|
||||
return;
|
||||
}
|
||||
|
||||
Console.WriteLine($"[CardCosmeticRewardImporter] Reading {path}...");
|
||||
|
||||
List<CardCosmeticReward> rows;
|
||||
using (var reader = new StreamReader(path))
|
||||
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
|
||||
{
|
||||
csv.Context.RegisterClassMap<CardCosmeticRewardMap>();
|
||||
rows = csv.GetRecords<CardCosmeticReward>().ToList();
|
||||
}
|
||||
|
||||
var validCardIds = (await context.Cards.Select(c => c.Id).ToListAsync()).ToHashSet();
|
||||
var existing = (await context.CardCosmeticRewards.ToListAsync())
|
||||
.ToDictionary(r => (r.CardId, r.Type, r.CosmeticId));
|
||||
|
||||
int created = 0, updated = 0, skipped = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (!validCardIds.Contains(r.CardId))
|
||||
{
|
||||
skipped++;
|
||||
continue;
|
||||
}
|
||||
|
||||
var key = (r.CardId, r.Type, r.CosmeticId);
|
||||
if (existing.TryGetValue(key, out var e))
|
||||
{
|
||||
if (e.Quantity != r.Quantity) { e.Quantity = r.Quantity; updated++; }
|
||||
}
|
||||
else
|
||||
{
|
||||
context.CardCosmeticRewards.Add(r);
|
||||
created++;
|
||||
}
|
||||
}
|
||||
await context.SaveChangesAsync();
|
||||
Console.WriteLine(
|
||||
$"[CardCosmeticRewardImporter] Done: +{created} / ~{updated}, " +
|
||||
$"skipped {skipped} (no matching card row).");
|
||||
}
|
||||
|
||||
private sealed class CardCosmeticRewardMap : ClassMap<CardCosmeticReward>
|
||||
{
|
||||
public CardCosmeticRewardMap()
|
||||
{
|
||||
Map(m => m.CardId).Name("card_id");
|
||||
Map(m => m.Type).Name("type");
|
||||
Map(m => m.CosmeticId).Name("cosmetic_id");
|
||||
Map(m => m.Quantity).Name("quantity").Default(1);
|
||||
Map(m => m.Card).Ignore();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,8 +9,7 @@ namespace SVSim.Bootstrap.Importers;
|
||||
|
||||
/// <summary>
|
||||
/// Reads the loader's card dump (LitJson array of CardCSVData) and upserts ShadowverseCardEntry +
|
||||
/// ShadowverseCardSetEntry rows. Lifted unchanged from the original SVSim.CardImport.Program.Main —
|
||||
/// only the orchestration was moved into <see cref="Program"/>.
|
||||
/// ShadowverseCardSetEntry rows. Idempotent.
|
||||
/// </summary>
|
||||
public class CardImporter
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
|
||||
using SVSim.Database;
|
||||
using SVSim.Database.Enums;
|
||||
using SVSim.Database.Models;
|
||||
using SVSim.Database.Models.Config;
|
||||
using static SVSim.Bootstrap.Importers.ImporterBase;
|
||||
|
||||
namespace SVSim.Bootstrap.Importers;
|
||||
@@ -87,32 +88,95 @@ public class GlobalsImporter
|
||||
return total;
|
||||
}
|
||||
|
||||
// ---------- GameConfiguration ----------
|
||||
// ---------- GameConfig sections ----------
|
||||
|
||||
private async Task<int> ImportGameConfigurationExtensions(SVSimDbContext context, JsonElement loadIndex)
|
||||
{
|
||||
var cfg = await context.GameConfigurations.FirstOrDefaultAsync(g => g.Id == "default");
|
||||
if (cfg is null)
|
||||
{
|
||||
Console.Error.WriteLine("[GlobalsImporter] GameConfigurations 'default' row missing; " +
|
||||
"DefaultSettingsSeeder should have created it. Skipping extensions.");
|
||||
return 0;
|
||||
}
|
||||
// Reads the prod capture and overwrites the Rotation and (optionally) Challenge sections
|
||||
// in GameConfigs. Sections are atomic — we read the existing row (or shipped defaults if
|
||||
// none), mutate, then serialize back to ValueJson. Each section is one row in GameConfigs.
|
||||
int touched = 0;
|
||||
|
||||
// TODO: fixed in Task 6 — writes through Config tree after RefactorGameConfigurationToJsonb
|
||||
cfg.Config.Rotation.TsRotationId = GetString(loadIndex, "ts_rotation_id");
|
||||
cfg.Config.Rotation.IsBattlePassPeriod = GetBool(loadIndex, "is_battle_pass_period");
|
||||
cfg.Config.Rotation.IsBeginnerMission = GetBool(loadIndex, "is_beginner_mission");
|
||||
cfg.Config.Rotation.CardSetIdForResourceDlView = GetInt(loadIndex, "card_set_id_for_resource_dl_view");
|
||||
await UpsertSection<RotationConfig>(context, RotationConfig.ShippedDefaults, rot =>
|
||||
{
|
||||
rot.TsRotationId = GetString(loadIndex, "ts_rotation_id");
|
||||
rot.IsBattlePassPeriod = GetBool(loadIndex, "is_battle_pass_period");
|
||||
rot.IsBeginnerMission = GetBool(loadIndex, "is_beginner_mission");
|
||||
rot.CardSetIdForResourceDlView = GetInt(loadIndex, "card_set_id_for_resource_dl_view");
|
||||
Console.WriteLine($"[GlobalsImporter] GameConfigs/Rotation: ts_rotation_id={rot.TsRotationId}");
|
||||
});
|
||||
touched++;
|
||||
|
||||
if (loadIndex.TryGetProperty("challenge_config", out var cc))
|
||||
{
|
||||
cfg.Config.Challenge.UseTwoPickPremiumCard = GetBool(cc, "use_challenge_two_pick_premium_card");
|
||||
cfg.Config.Challenge.TwoPickSleeveId = GetLong(cc, "challenge_two_pick_sleeve_id");
|
||||
await UpsertSection<ChallengeConfig>(context, ChallengeConfig.ShippedDefaults, ch =>
|
||||
{
|
||||
ch.UseTwoPickPremiumCard = GetBool(cc, "use_challenge_two_pick_premium_card");
|
||||
ch.TwoPickSleeveId = GetLong(cc, "challenge_two_pick_sleeve_id");
|
||||
});
|
||||
touched++;
|
||||
}
|
||||
|
||||
Console.WriteLine($"[GlobalsImporter] GameConfiguration extensions: ts_rotation_id={cfg.Config.Rotation.TsRotationId}");
|
||||
return 1;
|
||||
// my_rotation_info.schedules → MyRotationSchedule section. Two named windows, hard-typed
|
||||
// on both wire and client (Wizard/MyRotationAllInfo.cs:178-192 reads "gathering" and
|
||||
// "free_battle" by name and binds them to typed fields). Only upsert when both windows
|
||||
// parse to real DateTimes — a missing or 0001-01-01 capture would lock the feature off,
|
||||
// which is exactly the bug the section was added to fix.
|
||||
if (loadIndex.TryGetProperty("my_rotation_info", out var mri)
|
||||
&& mri.TryGetProperty("schedules", out var schedules))
|
||||
{
|
||||
bool gOk = TryParseScheduleWindow(schedules, "gathering", out var gBegin, out var gEnd);
|
||||
bool fOk = TryParseScheduleWindow(schedules, "free_battle", out var fBegin, out var fEnd);
|
||||
if (gOk && fOk)
|
||||
{
|
||||
await UpsertSection<MyRotationScheduleConfig>(context, MyRotationScheduleConfig.ShippedDefaults, mr =>
|
||||
{
|
||||
mr.Gathering = new ScheduleWindow { Begin = gBegin, End = gEnd };
|
||||
mr.FreeBattle = new ScheduleWindow { Begin = fBegin, End = fEnd };
|
||||
Console.WriteLine($"[GlobalsImporter] GameConfigs/MyRotationSchedule: free_battle {fBegin:u} → {fEnd:u}");
|
||||
});
|
||||
touched++;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Error.WriteLine("[GlobalsImporter] my_rotation_info.schedules missing or malformed — keeping existing/shipped MyRotationSchedule.");
|
||||
}
|
||||
}
|
||||
|
||||
return touched;
|
||||
}
|
||||
|
||||
private static bool TryParseScheduleWindow(JsonElement schedules, string key, out DateTime begin, out DateTime end)
|
||||
{
|
||||
begin = default;
|
||||
end = default;
|
||||
if (!schedules.TryGetProperty(key, out var window) || window.ValueKind != JsonValueKind.Object) return false;
|
||||
if (!DateTime.TryParse(GetString(window, "begin_time"), out begin)) return false;
|
||||
if (!DateTime.TryParse(GetString(window, "end_time"), out end)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private static async Task UpsertSection<T>(SVSimDbContext context, Func<T> shippedDefaults, Action<T> mutate)
|
||||
where T : class, new()
|
||||
{
|
||||
var sectionName = typeof(T).GetCustomAttributes(typeof(ConfigSectionAttribute), inherit: false)
|
||||
.Cast<ConfigSectionAttribute>().FirstOrDefault()?.Name
|
||||
?? throw new InvalidOperationException($"{typeof(T).Name} is missing [ConfigSection].");
|
||||
|
||||
var row = await context.GameConfigs.FirstOrDefaultAsync(s => s.SectionName == sectionName);
|
||||
T value;
|
||||
if (row is null)
|
||||
{
|
||||
value = shippedDefaults();
|
||||
row = new GameConfigSection { SectionName = sectionName };
|
||||
context.GameConfigs.Add(row);
|
||||
}
|
||||
else
|
||||
{
|
||||
value = JsonSerializer.Deserialize<T>(row.ValueJson) ?? shippedDefaults();
|
||||
}
|
||||
mutate(value);
|
||||
row.ValueJson = JsonSerializer.Serialize(value);
|
||||
}
|
||||
|
||||
// ---------- My Rotation ----------
|
||||
|
||||
307
SVSim.Bootstrap/Importers/ReferenceDataImporter.cs
Normal file
307
SVSim.Bootstrap/Importers/ReferenceDataImporter.cs
Normal file
@@ -0,0 +1,307 @@
|
||||
using System.Globalization;
|
||||
using CsvHelper;
|
||||
using CsvHelper.Configuration;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using SVSim.Database;
|
||||
using SVSim.Database.Models;
|
||||
|
||||
namespace SVSim.Bootstrap.Importers;
|
||||
|
||||
/// <summary>
|
||||
/// Idempotently upserts the 9 reference-data tables (classes, leader skins, sleeves, emblems,
|
||||
/// degrees, battlefields, my-page backgrounds, ranks, class-XP) from CSVs under
|
||||
/// <c>{AppContext.BaseDirectory}/Data/</c>. Order within ImportAllAsync respects FK
|
||||
/// dependencies (Classes before LeaderSkins).
|
||||
/// </summary>
|
||||
public class ReferenceDataImporter
|
||||
{
|
||||
public async Task ImportAllAsync(SVSimDbContext context, string dataDir)
|
||||
{
|
||||
if (!Directory.Exists(dataDir))
|
||||
{
|
||||
Console.Error.WriteLine($"[ReferenceDataImporter] Data dir missing: {dataDir}");
|
||||
return;
|
||||
}
|
||||
Console.WriteLine($"[ReferenceDataImporter] Reading CSVs from {dataDir}...");
|
||||
|
||||
await ImportClasses(context, dataDir);
|
||||
await ImportLeaderSkins(context, dataDir);
|
||||
await ImportSleeves(context, dataDir);
|
||||
await ImportEmblems(context, dataDir);
|
||||
await ImportDegrees(context, dataDir);
|
||||
await ImportBattlefields(context, dataDir);
|
||||
await ImportMyPageBackgrounds(context, dataDir);
|
||||
await ImportRankInfo(context, dataDir);
|
||||
await ImportClassExp(context, dataDir);
|
||||
|
||||
Console.WriteLine("[ReferenceDataImporter] Done.");
|
||||
}
|
||||
|
||||
private static async Task ImportClasses(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<ClassEntry, ClassEntryMap>(dir, "classes.csv");
|
||||
var existing = await ctx.Classes.ToDictionaryAsync(c => c.Id);
|
||||
int created = 0, updated = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.TryGetValue(r.Id, out var e))
|
||||
{
|
||||
if (e.Name != r.Name) { e.Name = r.Name; updated++; }
|
||||
}
|
||||
else { ctx.Classes.Add(r); created++; }
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] Classes: +{created} / ~{updated}");
|
||||
}
|
||||
|
||||
private static async Task ImportLeaderSkins(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<LeaderSkinEntry, LeaderSkinEntryMap>(dir, "leaderskins.csv");
|
||||
// CSV writes class_chara_id=0 for neutral/unassigned; the FK column is nullable.
|
||||
foreach (var r in rows) if (r.ClassId == 0) r.ClassId = null;
|
||||
|
||||
var existing = await ctx.LeaderSkins.ToDictionaryAsync(s => s.Id);
|
||||
int created = 0, updated = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.TryGetValue(r.Id, out var e))
|
||||
{
|
||||
bool changed = false;
|
||||
if (e.Name != r.Name) { e.Name = r.Name; changed = true; }
|
||||
if (e.ClassId != r.ClassId) { e.ClassId = r.ClassId; changed = true; }
|
||||
if (changed) updated++;
|
||||
}
|
||||
else { ctx.LeaderSkins.Add(r); created++; }
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] LeaderSkins: +{created} / ~{updated}");
|
||||
}
|
||||
|
||||
private static async Task ImportSleeves(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<SleeveEntry, SleeveEntryMap>(dir, "sleeves.csv");
|
||||
var existing = (await ctx.Sleeves.ToListAsync()).ToHashSet();
|
||||
int created = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.Any(e => e.Id == r.Id)) continue;
|
||||
ctx.Sleeves.Add(r); created++;
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] Sleeves: +{created}");
|
||||
}
|
||||
|
||||
private static async Task ImportEmblems(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<EmblemEntry, EmblemEntryMap>(dir, "emblems.csv");
|
||||
var existing = (await ctx.Emblems.Select(e => e.Id).ToListAsync()).ToHashSet();
|
||||
int created = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.Contains(r.Id)) continue;
|
||||
ctx.Emblems.Add(r); created++;
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] Emblems: +{created}");
|
||||
}
|
||||
|
||||
private static async Task ImportDegrees(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<DegreeEntry, DegreeEntryMap>(dir, "degrees.csv");
|
||||
var existing = (await ctx.Degrees.Select(e => e.Id).ToListAsync()).ToHashSet();
|
||||
int created = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.Contains(r.Id)) continue;
|
||||
ctx.Degrees.Add(r); created++;
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] Degrees: +{created}");
|
||||
}
|
||||
|
||||
private static async Task ImportBattlefields(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<BattlefieldEntry, BattlefieldEntryMap>(dir, "battlefields.csv");
|
||||
var existing = await ctx.Battlefields.ToDictionaryAsync(b => b.Id);
|
||||
int created = 0, updated = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.TryGetValue(r.Id, out var e))
|
||||
{
|
||||
if (e.IsOpen != r.IsOpen) { e.IsOpen = r.IsOpen; updated++; }
|
||||
}
|
||||
else { ctx.Battlefields.Add(r); created++; }
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] Battlefields: +{created} / ~{updated}");
|
||||
}
|
||||
|
||||
private static async Task ImportMyPageBackgrounds(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<MyPageBackgroundEntry, MyPageBackgroundEntryMap>(dir, "mypagebackgrounds.csv");
|
||||
var existing = (await ctx.MyPageBackgrounds.Select(e => e.Id).ToListAsync()).ToHashSet();
|
||||
int created = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.Contains(r.Id)) continue;
|
||||
ctx.MyPageBackgrounds.Add(r); created++;
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] MyPageBackgrounds: +{created}");
|
||||
}
|
||||
|
||||
private static async Task ImportRankInfo(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<RankInfoEntry, RankInfoEntryMap>(dir, "ranks.csv");
|
||||
var existing = await ctx.RankInfo.ToDictionaryAsync(r => r.Id);
|
||||
int created = 0, updated = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.TryGetValue(r.Id, out var e))
|
||||
{
|
||||
if (ApplyRankUpdates(e, r)) updated++;
|
||||
}
|
||||
else { ctx.RankInfo.Add(r); created++; }
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] RankInfo: +{created} / ~{updated}");
|
||||
}
|
||||
|
||||
private static bool ApplyRankUpdates(RankInfoEntry e, RankInfoEntry r)
|
||||
{
|
||||
bool changed = false;
|
||||
if (e.Name != r.Name) { e.Name = r.Name; changed = true; }
|
||||
if (e.NecessaryPoint != r.NecessaryPoint) { e.NecessaryPoint = r.NecessaryPoint; changed = true; }
|
||||
if (e.AccumulatePoint != r.AccumulatePoint) { e.AccumulatePoint = r.AccumulatePoint; changed = true; }
|
||||
if (e.LowerLimitPoint != r.LowerLimitPoint) { e.LowerLimitPoint = r.LowerLimitPoint; changed = true; }
|
||||
if (e.BaseAddBp != r.BaseAddBp) { e.BaseAddBp = r.BaseAddBp; changed = true; }
|
||||
if (e.BaseDropBp != r.BaseDropBp) { e.BaseDropBp = r.BaseDropBp; changed = true; }
|
||||
if (e.StreakBonusPt != r.StreakBonusPt) { e.StreakBonusPt = r.StreakBonusPt; changed = true; }
|
||||
if (e.WinBonus != r.WinBonus) { e.WinBonus = r.WinBonus; changed = true; }
|
||||
if (e.LoseBonus != r.LoseBonus) { e.LoseBonus = r.LoseBonus; changed = true; }
|
||||
if (e.MaxWinBonus != r.MaxWinBonus) { e.MaxWinBonus = r.MaxWinBonus; changed = true; }
|
||||
if (e.MaxLoseBonus != r.MaxLoseBonus) { e.MaxLoseBonus = r.MaxLoseBonus; changed = true; }
|
||||
if (e.IsPromotionWar != r.IsPromotionWar) { e.IsPromotionWar = r.IsPromotionWar; changed = true; }
|
||||
if (e.MatchCount != r.MatchCount) { e.MatchCount = r.MatchCount; changed = true; }
|
||||
if (e.NecessaryWin != r.NecessaryWin) { e.NecessaryWin = r.NecessaryWin; changed = true; }
|
||||
if (e.ResetLose != r.ResetLose) { e.ResetLose = r.ResetLose; changed = true; }
|
||||
if (e.AccumulateMasterPoint != r.AccumulateMasterPoint) { e.AccumulateMasterPoint = r.AccumulateMasterPoint; changed = true; }
|
||||
return changed;
|
||||
}
|
||||
|
||||
private static async Task ImportClassExp(SVSimDbContext ctx, string dir)
|
||||
{
|
||||
var rows = ReadCsv<ClassExpEntry, ClassExpEntryMap>(dir, "classexp.csv");
|
||||
var existing = await ctx.ClassExpCurve.ToDictionaryAsync(c => c.Id);
|
||||
int created = 0, updated = 0;
|
||||
foreach (var r in rows)
|
||||
{
|
||||
if (existing.TryGetValue(r.Id, out var e))
|
||||
{
|
||||
if (e.NecessaryExp != r.NecessaryExp) { e.NecessaryExp = r.NecessaryExp; updated++; }
|
||||
}
|
||||
else { ctx.ClassExpCurve.Add(r); created++; }
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
Console.WriteLine($"[ReferenceDataImporter] ClassExp: +{created} / ~{updated}");
|
||||
}
|
||||
|
||||
private static List<T> ReadCsv<T, TMap>(string dir, string fileName) where TMap : ClassMap<T>, new()
|
||||
{
|
||||
string path = Path.Combine(dir, fileName);
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
Console.Error.WriteLine($"[ReferenceDataImporter] Missing CSV: {path}");
|
||||
return new List<T>();
|
||||
}
|
||||
using var reader = new StreamReader(path);
|
||||
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
|
||||
csv.Context.RegisterClassMap<TMap>();
|
||||
return csv.GetRecords<T>().ToList();
|
||||
}
|
||||
|
||||
private sealed class ClassEntryMap : ClassMap<ClassEntry>
|
||||
{
|
||||
public ClassEntryMap()
|
||||
{
|
||||
Map(m => m.Id).Name("id");
|
||||
Map(m => m.Name).Name("name");
|
||||
Map(m => m.DefaultLeaderSkin).Ignore();
|
||||
}
|
||||
}
|
||||
|
||||
private sealed 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 sealed class EmblemEntryMap : ClassMap<EmblemEntry>
|
||||
{
|
||||
public EmblemEntryMap() { Map(m => m.Id).Name("emblem_id"); }
|
||||
}
|
||||
|
||||
private sealed class SleeveEntryMap : ClassMap<SleeveEntry>
|
||||
{
|
||||
public SleeveEntryMap() { Map(m => m.Id).Name("sleeve_id"); }
|
||||
}
|
||||
|
||||
private sealed class DegreeEntryMap : ClassMap<DegreeEntry>
|
||||
{
|
||||
public DegreeEntryMap() { Map(m => m.Id).Name("degree_id"); }
|
||||
}
|
||||
|
||||
private sealed class BattlefieldEntryMap : ClassMap<BattlefieldEntry>
|
||||
{
|
||||
public BattlefieldEntryMap()
|
||||
{
|
||||
Map(m => m.Id).Name("value");
|
||||
Map(m => m.IsOpen).Name("is_open");
|
||||
}
|
||||
}
|
||||
|
||||
private sealed class MyPageBackgroundEntryMap : ClassMap<MyPageBackgroundEntry>
|
||||
{
|
||||
public MyPageBackgroundEntryMap() { Map(m => m.Id).Name("id"); }
|
||||
}
|
||||
|
||||
private sealed class ClassExpEntryMap : ClassMap<ClassExpEntry>
|
||||
{
|
||||
public ClassExpEntryMap()
|
||||
{
|
||||
Map(m => m.Id).Name("level");
|
||||
Map(m => m.NecessaryExp).Name("necessary_exp");
|
||||
}
|
||||
}
|
||||
|
||||
private sealed 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");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,15 +25,16 @@ public static class Program
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (opts.SkipCards && opts.SkipGlobals)
|
||||
if (opts.SkipReference && opts.SkipCards && opts.SkipGlobals)
|
||||
{
|
||||
Console.Error.WriteLine("Both --skip-cards and --skip-globals set; nothing to do.");
|
||||
Console.Error.WriteLine("All --skip-* flags set; nothing to do.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Console.WriteLine($"[Bootstrap] Connection: {RedactPassword(opts.ConnectionString)}");
|
||||
Console.WriteLine($"[Bootstrap] Cards file: {opts.CardsFile}");
|
||||
Console.WriteLine($"[Bootstrap] Captures: {opts.CapturesDir}");
|
||||
Console.WriteLine($"[Bootstrap] Connection: {RedactPassword(opts.ConnectionString)}");
|
||||
Console.WriteLine($"[Bootstrap] Reference CSVs: {opts.ReferenceDataDir}");
|
||||
Console.WriteLine($"[Bootstrap] Cards file: {opts.CardsFile}");
|
||||
Console.WriteLine($"[Bootstrap] Captures: {opts.CapturesDir}");
|
||||
|
||||
var dbOptions = new DbContextOptionsBuilder<SVSimDbContext>()
|
||||
.UseNpgsql(opts.ConnectionString)
|
||||
@@ -41,18 +42,35 @@ public static class Program
|
||||
|
||||
await using var context = new SVSimDbContext(NullLogger<SVSimDbContext>.Instance, dbOptions);
|
||||
|
||||
// Bootstrap applies pending migrations first so it can be the very first thing run after
|
||||
// `dotnet ef migrations add` — no need to start the server too.
|
||||
// Bootstrap applies pending migrations first — migrations are now DDL-only, all data
|
||||
// (reference tables, cards, card cosmetic rewards, prod-captured globals, game config)
|
||||
// is loaded by importers below. This means a freshly migrated DB is structure-only;
|
||||
// every importer is idempotent so re-running is safe.
|
||||
Console.WriteLine("[Bootstrap] Applying pending migrations...");
|
||||
await context.Database.MigrateAsync();
|
||||
|
||||
// GameConfigSection rows for every [ConfigSection] type — runtime seed (HasData doesn't
|
||||
// play well with OwnsOne+ToJson). Always run; tiers only insert missing sections.
|
||||
await context.EnsureSeedDataAsync();
|
||||
|
||||
if (!opts.SkipReference)
|
||||
{
|
||||
await new ReferenceDataImporter().ImportAllAsync(context, opts.ReferenceDataDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("[Bootstrap] --skip-reference set; skipping reference data import.");
|
||||
}
|
||||
|
||||
if (!opts.SkipCards)
|
||||
{
|
||||
await new CardImporter().ImportAsync(context, opts.CardsFile);
|
||||
// Card cosmetic rewards FK to Cards; piggy-back on --skip-cards.
|
||||
await new CardCosmeticRewardImporter().ImportAsync(context, opts.ReferenceDataDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("[Bootstrap] --skip-cards set; skipping card import.");
|
||||
Console.WriteLine("[Bootstrap] --skip-cards set; skipping card + cosmetic-reward import.");
|
||||
}
|
||||
|
||||
if (!opts.SkipGlobals)
|
||||
@@ -73,7 +91,9 @@ public static class Program
|
||||
string? dataDir = null;
|
||||
string? cards = null;
|
||||
string? captures = null;
|
||||
string? referenceDataDir = null;
|
||||
string? connection = null;
|
||||
bool skipReference = false;
|
||||
bool skipCards = false;
|
||||
bool skipGlobals = false;
|
||||
string? positionalCards = null;
|
||||
@@ -86,7 +106,9 @@ public static class Program
|
||||
case "--data-dir": dataDir = NextArg(args, ref i); break;
|
||||
case "--cards": cards = NextArg(args, ref i); break;
|
||||
case "--captures": captures = NextArg(args, ref i); break;
|
||||
case "--reference-data-dir": referenceDataDir = NextArg(args, ref i); break;
|
||||
case "--connection-string": connection = NextArg(args, ref i); break;
|
||||
case "--skip-reference": skipReference = true; break;
|
||||
case "--skip-cards": skipCards = true; break;
|
||||
case "--skip-globals": skipGlobals = true; break;
|
||||
default:
|
||||
@@ -100,9 +122,11 @@ public static class Program
|
||||
|
||||
// Resolution order:
|
||||
// --cards beats --data-dir/cards.json beats legacy positional;
|
||||
// --captures beats --data-dir/prod-captures beats Bootstrap/Data/prod-captures (shipped default).
|
||||
// --captures beats --data-dir/prod-captures beats Bootstrap/Data/prod-captures (shipped default);
|
||||
// --reference-data-dir beats shipped Bootstrap/Data (the CSVs always ship next to the binary).
|
||||
string baseDir = AppContext.BaseDirectory;
|
||||
string shippedCaptures = Path.Combine(baseDir, "Data", "prod-captures");
|
||||
string shippedDataDir = Path.Combine(baseDir, "Data");
|
||||
string shippedCaptures = Path.Combine(shippedDataDir, "prod-captures");
|
||||
|
||||
string cardsFile = cards
|
||||
?? (dataDir is not null ? Path.Combine(dataDir, "cards.json") : null)
|
||||
@@ -118,11 +142,14 @@ public static class Program
|
||||
? capturesCandidate
|
||||
: shippedCaptures;
|
||||
|
||||
string refDir = referenceDataDir ?? shippedDataDir;
|
||||
|
||||
string connStr = connection
|
||||
?? Environment.GetEnvironmentVariable("NPGSQL_CONNECTION")
|
||||
?? DefaultConnectionString;
|
||||
|
||||
return new BootstrapOptions(cardsFile, capturesDir, connStr, skipCards, skipGlobals);
|
||||
return new BootstrapOptions(
|
||||
cardsFile, capturesDir, refDir, connStr, skipReference, skipCards, skipGlobals);
|
||||
}
|
||||
|
||||
private static string NextArg(string[] args, ref int i)
|
||||
@@ -139,15 +166,18 @@ public static class Program
|
||||
Console.Error.WriteLine(
|
||||
"Usage: svsim-bootstrap [options]\n" +
|
||||
"\n" +
|
||||
" --data-dir <path> Directory containing cards.json and prod-captures/\n" +
|
||||
" (default: ./data_dumps relative to working dir)\n" +
|
||||
" --cards <file> Override path to cards.json\n" +
|
||||
" --captures <dir> Override path to prod-captures directory\n" +
|
||||
" (default: shipped Data/prod-captures next to the binary)\n" +
|
||||
" --connection-string <conn> Postgres connection (or NPGSQL_CONNECTION env var,\n" +
|
||||
$" then \"{DefaultConnectionString}\")\n" +
|
||||
" --skip-cards Skip card import (re-run globals only)\n" +
|
||||
" --skip-globals Skip globals import (cards only — legacy behavior)\n" +
|
||||
" --data-dir <path> Directory containing cards.json and prod-captures/\n" +
|
||||
" (default: ./data_dumps relative to working dir)\n" +
|
||||
" --cards <file> Override path to cards.json\n" +
|
||||
" --captures <dir> Override path to prod-captures directory\n" +
|
||||
" (default: shipped Data/prod-captures next to the binary)\n" +
|
||||
" --reference-data-dir <dir> Override reference CSV directory\n" +
|
||||
" (default: shipped Data/ next to the binary)\n" +
|
||||
" --connection-string <conn> Postgres connection (or NPGSQL_CONNECTION env var,\n" +
|
||||
$" then \"{DefaultConnectionString}\")\n" +
|
||||
" --skip-reference Skip reference-data import (classes, sleeves, ranks, ...)\n" +
|
||||
" --skip-cards Skip card + card-cosmetic-reward import\n" +
|
||||
" --skip-globals Skip prod-captured globals import\n" +
|
||||
"\n" +
|
||||
"Back-compat: `svsim-bootstrap <cards.json> [connection]` still works (positional).");
|
||||
}
|
||||
@@ -155,7 +185,9 @@ public static class Program
|
||||
private sealed record BootstrapOptions(
|
||||
string CardsFile,
|
||||
string CapturesDir,
|
||||
string ReferenceDataDir,
|
||||
string ConnectionString,
|
||||
bool SkipReference,
|
||||
bool SkipCards,
|
||||
bool SkipGlobals);
|
||||
}
|
||||
|
||||
@@ -13,18 +13,13 @@
|
||||
<Content Include="Data\prod-captures\*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<!--
|
||||
Seed CSVs live in SVSim.EmulatedEntrypoint/Data — link them here so `dotnet ef migrations add`
|
||||
(which uses Bootstrap as the startup project) finds the same files at AppContext.BaseDirectory.
|
||||
Otherwise BaseDataSeeder.Seed short-circuits, the design-time model has no HasData rows, and
|
||||
every migration diff wants to DeleteData/InsertData for all of them.
|
||||
-->
|
||||
<Content Include="..\SVSim.EmulatedEntrypoint\Data\*.csv" Link="Data\%(Filename)%(Extension)">
|
||||
<Content Include="Data\*.csv">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CsvHelper" Version="33.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.8">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
Reference in New Issue
Block a user