Commit c9264cdc authored by nanahira's avatar nanahira

Merge branch 'server' of https://github.com/purerosefallen/ygopro

parents 94dd87f1 f17f8a80
......@@ -85,3 +85,4 @@ core*
/*.bat
/*.sh
/*.sql
......@@ -40,3 +40,8 @@
* 每回合抽卡
* 每回合时间
* 录像保存模式
### 特殊编译参数
执行`premake5 gmake`之前,可以通过设置一些环境变量,来改变一些编译参数。
* `YGOPRO_DEFAULT_DUEL_RULE=X` 设置默认决斗规则为大师规则X。
* `YGOPRO_NO_LUA_SAFE` 若有定义,则开启默认禁用的`os``io`库。请慎用这个参数,确保运行的卡片脚本文件是可以信任的。
......@@ -18,9 +18,6 @@ install:
- bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://www.sqlite.org/2018/sqlite-amalgamation-3240000.zip ; exit 0"
- 7z x -y sqlite-amalgamation-3240000.zip
- move sqlite-amalgamation-3240000 sqlite3
- appveyor DownloadFile https://github.com/tronkko/dirent/raw/master/include/dirent.h
- move dirent.h gframe\
# let premake happy
- xcopy /E premake\* .
......@@ -37,12 +34,49 @@ build:
after_build:
- ps: move bin\release\ygopro.exe .
# redis
- bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/MicrosoftArchive/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.zip ; exit 0"
- 7z x -y -oredis Redis-x64-3.2.100.zip
# nodejs
- bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://nodejs.org/dist/v10.15.0/node-v10.15.0-win-x64.zip ; exit 0"
- 7z x -y node-v10.15.0-win-x64.zip
- mv node-v10.15.0-win-x64 node
# srvpro
- git clone https://github.com/purerosefallen/ygopro-server
- cd ygopro-server
- ../node/npm install
- bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/purerosefallen/windbot/releases/download/latest/WindBot.7z ; exit 0"
- 7z x -y WindBot.7z
- rm -rf Bot.exe bot.conf
- mv WindBot windbot_
- mv windbot_ windbot # Windows NTFS does not support case sensitive, so renaming the folder twice.
- rm -rf WindBot.7z
- cp ../cards.cdb windbot/
- mkdir ygopro decks_save
- cp -rf ../ygopro.exe ygopro/
- mv ../cards.cdb ygopro/
- mv ../lflist.conf ygopro/
- mv ../script ygopro/
- cd ygopro
- mkdir gframe
- cp -rf ../../gframe/game.cpp gframe/ # Toss game.cpp in for version detection
# - cp -rf config_build config
- cd ../..
# start script
- bash -c "echo '@echo off' >> run.bat ; echo 'start redis/redis-server.exe' >> run.bat ; echo 'cd ygopro-server/windbot' >> run.bat ; echo 'start WindBot.exe servermode=true serverport=2399' >> run.bat ; echo 'cd ..' >> run.bat ; echo 'start ../node/node.exe ygopro-server.js' >> run.bat"
- 7z a -mx9 -xr!.git* ygopro-server-win.zip node redis ygopro-server run.bat
test: off
artifacts:
- path: ygopro.exe
name: ygopro server mode
- path: ygopro-server-win.zip
name: Windows version of SRVPro
deploy:
release: win
......
No preview for this file type
......@@ -1129,7 +1129,7 @@ void Game::DrawThumb(code_pointer cp, position2di pos, std::unordered_map<int, i
if(drag) {
dragloc = recti(pos.X, pos.Y, pos.X + CARD_THUMB_WIDTH * mainGame->xScale, pos.Y + CARD_THUMB_HEIGHT * mainGame->yScale);
limitloc = recti(pos.X, pos.Y, pos.X + 20 * mainGame->xScale, pos.Y + 20 * mainGame->yScale);
otloc = recti(pos.X + 7, pos.Y + 50, pos.X + 37 * mainGame->xScale, pos.Y + 65 * mainGame->yScale);
otloc = recti(pos.X + 7, pos.Y + 50 * mainGame->yScale, pos.X + 37 * mainGame->xScale, pos.Y + 65 * mainGame->yScale);
}
driver->draw2DImage(img, dragloc, rect<s32>(0, 0, size.Width, size.Height));
if(lflist->count(lcode)) {
......
......@@ -704,14 +704,23 @@ bool Game::Initialize() {
btnStartFilter->setRelativePosition(rect<s32>(260, 80 + 125 / 6, 390, 100 + 125 / 6));
btnClearFilter = env->addButton(rect<s32>(205, 80 + 125 / 6, 255, 100 + 125 / 6), wFilter, BUTTON_CLEAR_FILTER, dataManager.GetSysString(1304));
}
wCategories = env->addWindow(rect<s32>(630, 60, 1000, 270), false, dataManager.strBuffer);
wCategories = env->addWindow(rect<s32>(600, 60, 1000, 305), false, dataManager.strBuffer);
wCategories->getCloseButton()->setVisible(false);
wCategories->setDrawTitlebar(false);
wCategories->setDraggable(false);
wCategories->setVisible(false);
btnCategoryOK = env->addButton(rect<s32>(135, 175, 235, 200), wCategories, BUTTON_CATEGORY_OK, dataManager.GetSysString(1211));
btnCategoryOK = env->addButton(rect<s32>(150, 210, 250, 235), wCategories, BUTTON_CATEGORY_OK, dataManager.GetSysString(1211));
int catewidth = 0;
for(int i = 0; i < 32; ++i) {
irr::core::dimension2d<unsigned int> dtxt = mainGame->guiFont->getDimension(dataManager.GetSysString(1100 + i));
if(dtxt.Width + 40 > catewidth)
catewidth = dtxt.Width + 40;
}
for(int i = 0; i < 32; ++i)
chkCategory[i] = env->addCheckBox(false, recti(10 + (i % 4) * 90, 10 + (i / 4) * 20, 100 + (i % 4) * 90, 30 + (i / 4) * 20), wCategories, -1, dataManager.GetSysString(1100 + i));
chkCategory[i] = env->addCheckBox(false, recti(10 + (i % 4) * catewidth, 5 + (i / 4) * 25, 10 + (i % 4 + 1) * catewidth, 5 + (i / 4 + 1) * 25), wCategories, -1, dataManager.GetSysString(1100 + i));
int wcatewidth = catewidth * 4 + 16;
wCategories->setRelativePosition(rect<s32>(1000 - wcatewidth, 60, 1000, 305));
btnCategoryOK->setRelativePosition(recti(wcatewidth / 2 - 50, 210, wcatewidth / 2 + 50, 235));
btnMarksFilter = env->addButton(rect<s32>(60, 80 + 125 / 6, 190, 100 + 125 / 6), wFilter, BUTTON_MARKS_FILTER, dataManager.GetSysString(1374));
wLinkMarks = env->addWindow(rect<s32>(700, 30, 820, 150), false, dataManager.strBuffer);
wLinkMarks->getCloseButton()->setVisible(false);
......@@ -1947,7 +1956,13 @@ void Game::OnResize() {
btnClearFilter->setRelativePosition(Resize(205, 80 + 125 / 6, 255, 100 + 125 / 6));
btnMarksFilter->setRelativePosition(Resize(60, 80 + 125 / 6, 190, 100 + 125 / 6));
wCategories->setRelativePosition(ResizeWin(450, 60, 1000, 270));
recti btncatepos = btnEffectFilter->getAbsolutePosition();
wCategories->setRelativePosition(recti(
btncatepos.LowerRightCorner.X - wCategories->getRelativePosition().getWidth(),
btncatepos.LowerRightCorner.Y - btncatepos.getHeight() / 2,
btncatepos.LowerRightCorner.X,
btncatepos.LowerRightCorner.Y - btncatepos.getHeight() / 2 + 245));
wLinkMarks->setRelativePosition(ResizeWin(700, 30, 820, 150));
stBanlist->setRelativePosition(Resize(10, 9, 100, 29));
stDeck->setRelativePosition(Resize(10, 39, 100, 59));
......@@ -1987,7 +2002,8 @@ void Game::OnResize() {
wANAttribute->setRelativePosition(ResizeWin(500, 200, 830, 285));
wANRace->setRelativePosition(ResizeWin(480, 200, 850, 410));
wReplaySave->setRelativePosition(ResizeWin(510, 200, 820, 320));
stHintMsg->setRelativePosition(ResizeWin(500, 60, 820, 90));
stHintMsg->setRelativePosition(ResizeWin(660 - 160 * xScale, 60, 660 + 160 * xScale, 90));
//sound / music volume bar
scrSoundVolume->setRelativePosition(recti(scrSoundVolume->getRelativePosition().UpperLeftCorner.X, scrSoundVolume->getRelativePosition().UpperLeftCorner.Y, 20 + (300 * xScale) - 70, scrSoundVolume->getRelativePosition().LowerRightCorner.Y));
......@@ -2034,8 +2050,8 @@ void Game::OnResize() {
btnReset->setRelativePosition(recti(1, 1, width, height));
}
wCardImg->setRelativePosition(ResizeCard(1, 1, 20, 18));
imgCard->setRelativePosition(ResizeCard(10, 9, 0, 0));
wCardImg->setRelativePosition(ResizeCardImgWin(1, 1, 20, 18));
imgCard->setRelativePosition(ResizeCardImgWin(10, 9, 0, 0));
wInfos->setRelativePosition(Resize(1, 275, 301, 639));
stName->setRelativePosition(recti(10, 10, 300 * xScale - 13, 10 + 22));
lstLog->setRelativePosition(Resize(10, 10, 290, 290));
......@@ -2049,7 +2065,7 @@ void Game::OnResize() {
btnM2->setRelativePosition(Resize(160, 0, 210, 20));
btnEP->setRelativePosition(Resize(320, 0, 370, 20));
wChat->setRelativePosition(ResizeWin(wInfos->getRelativePosition().LowerRightCorner.X + 6, 615, 1020, 640, true));
wChat->setRelativePosition(recti(wInfos->getRelativePosition().LowerRightCorner.X + 6, window_size.Height - 25, window_size.Width, window_size.Height));
ebChatInput->setRelativePosition(recti(3, 2, window_size.Width - wChat->getRelativePosition().UpperLeftCorner.X - 6, 22));
btnLeaveGame->setRelativePosition(Resize(205, 5, 295, 80));
......@@ -2092,19 +2108,13 @@ position2di Game::ResizeReverse(s32 x, s32 y) {
y = y / yScale;
return position2di(x, y);
}
recti Game::ResizeWin(s32 x, s32 y, s32 x2, s32 y2, bool chat) {
s32 sx = x2 - x;
s32 sy = y2 - y;
if(chat) {
y = window_size.Height - sy;
x2 = window_size.Width;
y2 = y + sy;
return recti(x, y, x2, y2);
}
x = (x + sx / 2) * xScale - sx / 2;
y = (y + sy / 2) * yScale - sy / 2;
x2 = sx + x;
y2 = sy + y;
recti Game::ResizeWin(s32 x, s32 y, s32 x2, s32 y2) {
s32 w = x2 - x;
s32 h = y2 - y;
x = (x + w / 2) * xScale - w / 2;
y = (y + h / 2) * yScale - h / 2;
x2 = w + x;
y2 = h + y;
return recti(x, y, x2, y2);
}
recti Game::ResizePhaseHint(s32 x, s32 y, s32 x2, s32 y2, s32 width) {
......@@ -2114,17 +2124,15 @@ recti Game::ResizePhaseHint(s32 x, s32 y, s32 x2, s32 y2, s32 width) {
y2 = y2 * yScale;
return recti(x, y, x2, y2);
}
recti Game::ResizeCard(s32 x, s32 y, s32 x2, s32 y2) {
recti Game::ResizeCardImgWin(s32 x, s32 y, s32 mx, s32 my) {
float mul = xScale;
if(xScale > yScale)
mul = yScale;
s32 sx = CARD_IMG_WIDTH * mul + x2 * xScale;
s32 sy = CARD_IMG_HEIGHT * mul + y2 * yScale;
s32 w = CARD_IMG_WIDTH * mul + mx * xScale;
s32 h = CARD_IMG_HEIGHT * mul + my * yScale;
x = x * xScale;
y = y * yScale;
x2 = sx + x;
y2 = sy + y;
return recti(x, y, x2, y2);
return recti(x, y, x + w, y + h);
}
recti Game::ResizeCardHint(s32 x, s32 y, s32 x2, s32 y2) {
return ResizeCardMid(x, y, x2, y2, (x + x2) * 0.5, (y + y2) * 0.5);
......
......@@ -199,8 +199,8 @@ public:
position2di Resize(s32 x, s32 y);
position2di ResizeReverse(s32 x, s32 y);
recti ResizePhaseHint(s32 x, s32 y, s32 x2, s32 y2, s32 width);
recti ResizeWin(s32 x, s32 y, s32 x2, s32 y2, bool chat = false);
recti ResizeCard(s32 x, s32 y, s32 x2, s32 y2);
recti ResizeWin(s32 x, s32 y, s32 x2, s32 y2);
recti ResizeCardImgWin(s32 x, s32 y, s32 mx, s32 my);
recti ResizeCardHint(s32 x, s32 y, s32 x2, s32 y2);
position2di ResizeCardHint(s32 x, s32 y);
recti ResizeCardMid(s32 x, s32 y, s32 x2, s32 y2, s32 midx, s32 midy);
......
......@@ -8,6 +8,8 @@
#ifndef _WIN32
#include <dirent.h>
#include <sys/stat.h>
#include <vector>
#include <algorithm>
#endif
#ifdef _WIN32
......@@ -109,23 +111,58 @@ public:
return MakeDir(dir);
}
#ifndef YGOPRO_SERVER_MODE
struct file_unit {
std::string filename;
bool is_dir;
};
#endif
static void TraversalDir(const char* path, const std::function<void(const char*, bool)>& cb) {
DIR* dir = nullptr;
struct dirent* dirp = nullptr;
if((dir = opendir(path)) == nullptr)
return;
struct stat fileStat;
while((dirp = readdir(dir)) != nullptr) {
#ifndef YGOPRO_SERVER_MODE
std::vector<file_unit> file_list;
#endif
while ((dirp = readdir(dir)) != nullptr)
{
#ifndef YGOPRO_SERVER_MODE
file_unit funit;
#endif
char fname[1024];
strcpy(fname, path);
strcat(fname, "/");
strcat(fname, dirp->d_name);
stat(fname, &fileStat);
#ifdef YGOPRO_SERVER_MODE
cb(dirp->d_name, S_ISDIR(fileStat.st_mode));
#else
funit.filename = std::string(dirp->d_name);
funit.is_dir = S_ISDIR(fileStat.st_mode);
file_list.push_back(funit);
#endif
}
closedir(dir);
#ifndef YGOPRO_SERVER_MODE
std::sort(file_list.begin(), file_list.end(), TraversalDirSort);
for (file_unit funit : file_list)
cb(funit.filename.c_str(), funit.is_dir);
#endif
}
#ifndef YGOPRO_SERVER_MODE
static bool TraversalDirSort(file_unit file1, file_unit file2) {
if(file1.is_dir != file2.is_dir) {
return file1.is_dir;
} else {
return file1.filename < file2.filename;
}
}
#endif
static void TraversalDir(const wchar_t* wpath, const std::function<void(const wchar_t*, bool)>& cb) {
char path[1024];
BufferIO::EncodeUTF8(wpath, path);
......
#[2019.1][2018.10][2018.12 TCG][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
#[2019.1][2018.10][2019.1 TCG][2018.12 TCG][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
!2019.1
#forbidden
......@@ -340,6 +340,191 @@
35125879 2 --真竜皇の復活
83555666 2 --破壊輪
!2019.1 TCG
#Forbidden TCG
53804307 0 --Blaster, Dragon Ruler of Infernos MAIN DECK MONSTERS
34124316 0 --Cyber Jar
8903700 0 --Djinn Releaser of Rituals
78706415 0 --Fiber Jar
93369354 0 --Fishborg Blaster
34206604 0 --Magical Scientist
31178212 0 --Majespecter Unicorn - Kirin
21593977 0 --Makyura the Destructor
96782886 0 --Mind Master
79106360 0 --Morphing Jar #2
7563579 0 --Performage PlushFire
17330916 0 --Performapal Monkeyboard
90411554 0 --Redox, Dragon Ruler of Boulders
20663556 0 --Substitoad
89399912 0 --Tempest, Dragon Ruler of Storms
88071625 0 --The Tyrant Neptune
26400609 0 --Tidal, Dragon Ruler of Waterfalls
33184167 0 --Tribe-Infecting Virus
44910027 0 --Victory Dragon
30539496 0 --True King Lithosagym, the Disaster
3078576 0 --Yata-Garasu
9929398 0 --Blackwing - Gofu the Vague Shadow
15341821 0 --Dandylion
49684352 0 --Double Iris Magician
40318957 0 --Performapal Skullcrobat Joker
57421866 0 --Level Eater
23434538 0 --Maxx "C"
76794549 0 --Astrograph Sorcerer
21377582 0 --Master Peace, The True Dracoslaying King
23558733 0 --Phoenixian Cluster Amaryllis
5592689 0 --Samsara Lotus
75732622 0 --Grinder Golem
55623480 0 --Fairy TailSnow
17412721 0 --Elder Entity Norden EXTRA DECK MONSTERS
43387895 0 --Supreme King Dragon Starving Venom
65536818 0 --Denglong, First of the Yang Zing
25862681 0 --Ancient Fairy Dragon
34086406 0 --Lavalval Chain
54719828 0 --Number 16: Shock Master
18326736 0 --Tellarknight Ptolomaeus
81122844 0 --Wind-Up Carrier Zenmaity
581014 0 --Daigusto Emeral
48905153 0 --Zoodiac Drident
85115440 0 --Zoodiac Broadbull
63504681 0 --Number 86: Heroic ChampionRhongomyniad
10389142 0 --Number 42: Galaxy Tomahawk
39064822 0 --Knightmare Goblin
4423206 0 --M-X-Saber Invoker
5043010 0 --Firewall Dragon
22593417 0 --Topologic Gumblar Dragon
69243953 0 --Butterfly Dagger - Elma SPELLS CARDS
57953380 0 --Card of Safe Return
4031928 0 --Change of Heart
67616300 0 --Chicken Game
60682203 0 --Cold Wave
17375316 0 --Confiscation
44763025 0 --Deliquent Duo
23557835 0 --Dimension Fusion
42703248 0 --Giant Trunade
79571449 0 --Graceful Charity
18144507 0 --Harpie's Feather Duster
18144506 0 --Harpie's Feather Duster
35059553 0 --Kaiser Colloseum
19613556 0 --Heavy Storm
85602018 0 --Last Will
46411259 0 --Metamorphosis
74191942 0 --Painful Choice
67169062 0 --Pot of Avarice
55144522 0 --Pot of greed
34906152 0 --Mass Driver
41482598 0 --Mirage of Nightmare
70828912 0 --Premature Burial
45986603 0 --Snatch Steal
46448938 0 --Spellbook of Judgement
27770341 0 --Super Rejuvenation
42829885 0 --The Forceful Sentry
11110587 0 --That Grass Looks Greener
94220427 0 --Rank-Up-Magic Argent Chaos Force
54447022 0 --Soul Charge
28566710 0 --Last Turn TRAPS CARDS
27174286 0 --Return from the Different Dimension
93016201 0 --Royal Oppression
57585212 0 --Self-Destruct Button
3280747 0 --Sixth Sense
35316708 0 --Time Seal
64697231 0 --Trap Dustshot
80604091 0 --Ultimate Offering
80604092 0 --Ultimate Offering
5851097 0 --Vanity's Emptiness
#Limited TCG
7902349 1 --Left Arm of the forbidden one MAIN DECK MONSTERS
44519536 1 --Left Leg of the forbidden one
70903634 1 --Right Arm of the forbidden one
8124921 1 --Right Leg of the forbidden one
65518099 1 --Qliporth Scout
33396948 1 --Exxodia the Forbidden One
65192027 1 --Dark Armed Dragon
78868119 1 --Deep Sea Diva
64034255 1 --Genex Ally birdman
20758643 1 --Graff, Malembrance of the Burning Abyss
99177923 1 --Infernity Archfiend
68184115 1 --Inzektor DragonFly
16226786 1 --Night Assailant
88264978 1 --Red-eyes Darkness Metal Dragon
61740673 1 --Imperial Order
10802915 1 --Tour Guide From the Underworld
81275020 1 --Speedroid Terrortop
57143342 1 --Cir, Malebranche of the Burning Abyss
96570609 1 --Ether the Heavenly monarch
38572779 1 --Miscellaneousaurus
78872731 1 --Zoodiac Ratpier
4474060 1 --SPYRAL Gear - Drone
78080961 1 --SPYRAL Quik-Fix
68819554 1 --Performage Damage Juggler
58984738 1 --Dinomight Knight, the True Dracofighter
45222299 1 --Evigishki Gustkraken
11877465 1 --Evigishki Mind Augus
90307777 1 --Shurit, Strategist of the Nekroz
89463537 1 --Nekroz of Unicore
40044918 1 --Elemental Hero Stratos
33508719 1 --Morphing Jar
28985331 1 --Armageddon Knight
14536035 1 --Dark Grepher
69015963 1 --Cyber Stein
82301904 1 --Chaos Emperor Dragon - Envoy of the End
18239909 1 --Ignister Prominence, the Blasting Dracoslayer EXTRA DECK MONSTERS
20366274 1 --El Shaddoll Construct
48063985 1 --Ritual Beast Ulti-Cannahawk
39512984 1 --Gem-Knight Master Diamond
70583986 1 --Dewloren, Tiger King of the Ice Barrier
52687916 1 --Trishula, Dragon of the Ice Barrier
27552504 1 --Beatrice, Lady of Eternal
24094258 1 --Heavymetalfoes Electrumite
74586817 1 --Psy-Framelord Omega
14087893 1 --Book of Moon SPELLS CARDS
81674782 1 --Dimensional Fissure
95308449 1 --Final Countdown
81439173 1 --Foolish Burial
66957584 1 --Infernity Launcher
43040603 1 --Monster Gate
33782437 1 --One Day of Peace
2295440 1 --One for One
12580477 1 --Raigeki
53129443 1 --Dark Hole
32807846 1 --Reinforcement of the Army
74845897 1 --Rekindling
72405967 1 --Royal Tribute
45305419 1 --Symbol of Heritage
14733538 1 --Draco Face-off
73468603 1 --Set Rotation
58577036 1 --Reasoning
27970830 1 --Gateway of the Six
7394770 1 --Brilliant Fusion
70368879 1 --Upstart Goblin
83764718 1 --Monster Reborn
83764719 1 --Monster Reborn
71344451 1 --Slash Draw
75500286 1 --Gold Sarcophagus
67723438 1 --Emergency Teleporter
22842126 1 --Phanteism of the Monarchs
15854426 1 --Divine Wind of the Mist Valley
54631665 1 --SPYRAL Resort
71650854 1 --Magical Mid-Breaker Field
91623717 1 --Chain Strike
8949584 1 --A Hero Lives
72892473 1 --Card Destruction
52340444 1 --Sky Striker Mecha - Hornet Drones
48130397 1 --Super Polymerization
73915051 1 --Scapegoat
32723153 1 --Magical Explosion --TRAP CARDS
35125879 1 --True King's Return
82732705 1 --Skill Drain
73599290 1 --Soul Drain
30241314 1 --Macro Cosmos
17078030 1 --Wall of Revealing light
84749824 1 --Solemn Warning
41420027 1 --Solemn Judgement
#Semi limited TCG
92746535 2 --Luster Pendulum, the Dracoslayer
28297833 2 --Necroface
9411399 2 --Destiny HERO - Malicious
73628505 2 --Terraforming
!2018.12 TCG
#forbidden
05043010 0 --ファイアウォール・ドラゴン
......
Subproject commit bbc8e973e3d206d51d1be3ddd201cf071e517ba1
Subproject commit e1b3239967a34da9f7bcd42a62778e785fbaf321
Subproject commit d38fcb65d5b94661b84fc469415cc600a06a2ba0
Subproject commit 2ce1259b08b57f15f636e99a6a02172cbf0dffd3
......@@ -858,7 +858,7 @@
!setname 0xd4 伯吉斯异兽 バージェストマ
!setname 0xd5 但丁 ダンテ
!setname 0xd6 破坏剑 破壊剣
!setname 0xd7 巴斯达·布雷达 バスター・ブレイダー
!setname 0xd7 破坏之剑士 バスター・ブレイダー
!setname 0xd8 雾动机龙 ダイナミスト
!setname 0xd9 不知火
!setname 0x10d9 妖刀-不知火 妖刀-不知火
......@@ -952,3 +952,4 @@
!setname 0x123 蔷薇龙 ローズ・ドラゴン
!setname 0x124 机械天使 機械天使
!setname 0x125 笑容 スマイル
!setname 0x126 时间怪盗 Time Thief
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment