Commit d82b98ad authored by nanahira's avatar nanahira

Merge branch 'master' into another

parents 690e6245 0410a637
No preview for this file type
...@@ -32,6 +32,7 @@ ClientField::ClientField() { ...@@ -32,6 +32,7 @@ ClientField::ClientField() {
conti_act = false; conti_act = false;
deck_reversed = false; deck_reversed = false;
conti_selecting = false; conti_selecting = false;
cant_check_grave = false;
for(int p = 0; p < 2; ++p) { for(int p = 0; p < 2; ++p) {
mzone[p].resize(7, 0); mzone[p].resize(7, 0);
szone[p].resize(8, 0); szone[p].resize(8, 0);
...@@ -99,6 +100,7 @@ void ClientField::Clear() { ...@@ -99,6 +100,7 @@ void ClientField::Clear() {
pzone_act[1] = false; pzone_act[1] = false;
conti_act = false; conti_act = false;
deck_reversed = false; deck_reversed = false;
cant_check_grave = false;
RefreshCardCountDisplay(); RefreshCardCountDisplay();
} }
void ClientField::Initial(int player, int deckc, int extrac) { void ClientField::Initial(int player, int deckc, int extrac) {
...@@ -396,6 +398,18 @@ void ClientField::ClearChainSelect() { ...@@ -396,6 +398,18 @@ void ClientField::ClearChainSelect() {
} }
// needs to be synchronized with EGET_SCROLL_BAR_CHANGED // needs to be synchronized with EGET_SCROLL_BAR_CHANGED
void ClientField::ShowSelectCard(bool buttonok, bool chain) { void ClientField::ShowSelectCard(bool buttonok, bool chain) {
if(cant_check_grave) {
bool has_card_in_grave = false;
for(size_t i = 0; i < selectable_cards.size(); ++i) {
if(selectable_cards[i]->location == LOCATION_GRAVE) {
has_card_in_grave = true;
break;
}
}
if(has_card_in_grave) {
std::random_shuffle(selectable_cards.begin(), selectable_cards.end());
}
}
int startpos; int startpos;
size_t ct; size_t ct;
if(selectable_cards.size() <= 5) { if(selectable_cards.size() <= 5) {
...@@ -422,6 +436,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) { ...@@ -422,6 +436,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
wchar_t formatBuffer[2048]; wchar_t formatBuffer[2048];
if(conti_selecting) if(conti_selecting)
myswprintf(formatBuffer, L"%ls", DataManager::unknown_string); myswprintf(formatBuffer, L"%ls", DataManager::unknown_string);
else if(cant_check_grave && selectable_cards[i]->location == LOCATION_GRAVE)
myswprintf(formatBuffer, L"%ls", dataManager.FormatLocation(selectable_cards[i]->location, 0));
else if(selectable_cards[i]->location == LOCATION_OVERLAY) else if(selectable_cards[i]->location == LOCATION_OVERLAY)
myswprintf(formatBuffer, L"%ls[%d](%d)", myswprintf(formatBuffer, L"%ls[%d](%d)",
dataManager.FormatLocation(selectable_cards[i]->overlayTarget->location, selectable_cards[i]->overlayTarget->sequence), dataManager.FormatLocation(selectable_cards[i]->overlayTarget->location, selectable_cards[i]->overlayTarget->sequence),
...@@ -1245,6 +1261,27 @@ bool ClientField::CheckSelectSum() { ...@@ -1245,6 +1261,27 @@ bool ClientField::CheckSelectSum() {
return ret; return ret;
} }
} }
bool ClientField::CheckSelectTribute() {
std::set<ClientCard*> selable;
for(auto sit = selectsum_all.begin(); sit != selectsum_all.end(); ++sit) {
(*sit)->is_selectable = false;
(*sit)->is_selected = false;
selable.insert(*sit);
}
for(size_t i = 0; i < selected_cards.size(); ++i) {
selected_cards[i]->is_selectable = true;
selected_cards[i]->is_selected = true;
selable.erase(selected_cards[i]);
}
selectsum_cards.clear();
bool ret = check_sel_sum_trib_s(selable, 0, 0);
selectable_cards.clear();
for(auto sit = selectsum_cards.begin(); sit != selectsum_cards.end(); ++sit) {
(*sit)->is_selectable = true;
selectable_cards.push_back(*sit);
}
return ret;
}
bool ClientField::check_min(const std::set<ClientCard*>& left, std::set<ClientCard*>::const_iterator index, int min, int max) { bool ClientField::check_min(const std::set<ClientCard*>& left, std::set<ClientCard*>::const_iterator index, int min, int max) {
if (index == left.end()) if (index == left.end())
return false; return false;
...@@ -1308,6 +1345,52 @@ bool ClientField::check_sum(std::set<ClientCard*>::const_iterator index, std::se ...@@ -1308,6 +1345,52 @@ bool ClientField::check_sum(std::set<ClientCard*>::const_iterator index, std::se
|| (l2 > 0 && acc > l2 && check_sum(index, end, acc - l2, count + 1)) || (l2 > 0 && acc > l2 && check_sum(index, end, acc - l2, count + 1))
|| check_sum(index, end, acc, count); || check_sum(index, end, acc, count);
} }
bool ClientField::check_sel_sum_trib_s(const std::set<ClientCard*>& left, int index, int acc) {
if(acc > select_max)
return false;
if(index == (int)selected_cards.size()) {
check_sel_sum_trib_t(left, acc);
return acc >= select_min && acc <= select_max;
}
int l = selected_cards[index]->opParam;
int l1 = l & 0xffff;
int l2 = l >> 16;
bool res1 = false, res2 = false;
res1 = check_sel_sum_trib_s(left, index + 1, acc + l1);
if(l2 > 0)
res2 = check_sel_sum_trib_s(left, index + 1, acc + l2);
return res1 || res2;
}
void ClientField::check_sel_sum_trib_t(const std::set<ClientCard*>& left, int acc) {
for(auto sit = left.begin(); sit != left.end(); ++sit) {
if(selectsum_cards.find(*sit) != selectsum_cards.end())
continue;
std::set<ClientCard*> testlist(left);
testlist.erase(*sit);
int l = (*sit)->opParam;
int l1 = l & 0xffff;
int l2 = l >> 16;
if(check_sum_trib(testlist.begin(), testlist.end(), acc + l1)
|| (l2 > 0 && check_sum_trib(testlist.begin(), testlist.end(), acc + l2))) {
selectsum_cards.insert(*sit);
}
}
}
bool ClientField::check_sum_trib(std::set<ClientCard*>::const_iterator index, std::set<ClientCard*>::const_iterator end, int acc) {
if(acc >= select_min && acc <= select_max)
return true;
if(acc > select_max || index == end)
return false;
int l = (*index)->opParam;
int l1 = l & 0xffff;
int l2 = l >> 16;
if((acc + l1 >= select_min && acc + l1 <= select_max) || (acc + l2 >= select_min && acc + l2 <= select_max))
return true;
++index;
return check_sum_trib(index, end, acc + l1)
|| check_sum_trib(index, end, acc + l2)
|| check_sum_trib(index, end, acc);
}
template <class T> template <class T>
static bool is_declarable(T const& cd, const std::vector<int>& opcode) { static bool is_declarable(T const& cd, const std::vector<int>& opcode) {
std::stack<int> stack; std::stack<int> stack;
......
...@@ -83,6 +83,7 @@ public: ...@@ -83,6 +83,7 @@ public:
bool last_chain; bool last_chain;
bool deck_reversed; bool deck_reversed;
bool conti_selecting; bool conti_selecting;
bool cant_check_grave;
ClientField(); ClientField();
void Clear(); void Clear();
...@@ -108,10 +109,14 @@ public: ...@@ -108,10 +109,14 @@ public:
void FadeCard(ClientCard* pcard, int alpha, int frame); void FadeCard(ClientCard* pcard, int alpha, int frame);
bool ShowSelectSum(bool panelmode); bool ShowSelectSum(bool panelmode);
bool CheckSelectSum(); bool CheckSelectSum();
bool CheckSelectTribute();
bool check_min(const std::set<ClientCard*>& left, std::set<ClientCard*>::const_iterator index, int min, int max); bool check_min(const std::set<ClientCard*>& left, std::set<ClientCard*>::const_iterator index, int min, int max);
bool check_sel_sum_s(const std::set<ClientCard*>& left, int index, int acc); bool check_sel_sum_s(const std::set<ClientCard*>& left, int index, int acc);
void check_sel_sum_t(const std::set<ClientCard*>& left, int acc); void check_sel_sum_t(const std::set<ClientCard*>& left, int acc);
bool check_sum(std::set<ClientCard*>::const_iterator index, std::set<ClientCard*>::const_iterator end, int acc, int count); bool check_sum(std::set<ClientCard*>::const_iterator index, std::set<ClientCard*>::const_iterator end, int acc, int count);
bool check_sel_sum_trib_s(const std::set<ClientCard*>& left, int index, int acc);
void check_sel_sum_trib_t(const std::set<ClientCard*>& left, int acc);
bool check_sum_trib(std::set<ClientCard*>::const_iterator index, std::set<ClientCard*>::const_iterator end, int acc);
void UpdateDeclarableList(); void UpdateDeclarableList();
...@@ -153,5 +158,6 @@ public: ...@@ -153,5 +158,6 @@ public:
//special cards //special cards
#define CARD_MARINE_DOLPHIN 78734254 #define CARD_MARINE_DOLPHIN 78734254
#define CARD_TWINKLE_MOSS 13857930 #define CARD_TWINKLE_MOSS 13857930
#define CARD_QUESTION 38723936
#endif //CLIENT_FIELD_H #endif //CLIENT_FIELD_H
...@@ -447,7 +447,7 @@ void Game::DrawShadowText(CGUITTFont * font, const core::stringw & text, const c ...@@ -447,7 +447,7 @@ void Game::DrawShadowText(CGUITTFont * font, const core::stringw & text, const c
void Game::DrawMisc() { void Game::DrawMisc() {
static irr::core::vector3df act_rot(0, 0, 0); static irr::core::vector3df act_rot(0, 0, 0);
int rule = (dInfo.duel_rule >= 4) ? 1 : 0; int rule = (dInfo.duel_rule >= 4) ? 1 : 0;
irr::core::matrix4 im, ic, it; irr::core::matrix4 im, ic, it, ig;
act_rot.Z += 0.02f; act_rot.Z += 0.02f;
im.setRotationRadians(act_rot); im.setRotationRadians(act_rot);
matManager.mTexture.setTexture(0, imageManager.tAct); matManager.mTexture.setTexture(0, imageManager.tAct);
...@@ -531,6 +531,18 @@ void Game::DrawMisc() { ...@@ -531,6 +531,18 @@ void Game::DrawMisc() {
driver->drawVertexPrimitiveList(matManager.vChainNum, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vChainNum, 4, matManager.iRectangle, 2);
} }
} }
if(dField.cant_check_grave) {
matManager.mTexture.setTexture(0, imageManager.tNegated);
driver->setMaterial(matManager.mTexture);
ig.setTranslation(vector3df((matManager.vFieldGrave[0][rule][0].Pos.X + matManager.vFieldGrave[0][rule][1].Pos.X) / 2,
(matManager.vFieldGrave[0][rule][0].Pos.Y + matManager.vFieldGrave[0][rule][2].Pos.Y) / 2, dField.grave[0].size() * 0.01f + 0.02f));
driver->setTransform(irr::video::ETS_WORLD, ig);
driver->drawVertexPrimitiveList(matManager.vNegate, 4, matManager.iRectangle, 2);
ig.setTranslation(vector3df((matManager.vFieldGrave[1][rule][0].Pos.X + matManager.vFieldGrave[1][rule][1].Pos.X) / 2,
(matManager.vFieldGrave[1][rule][0].Pos.Y + matManager.vFieldGrave[1][rule][2].Pos.Y) / 2, dField.grave[1].size() * 0.01f + 0.02f));
driver->setTransform(irr::video::ETS_WORLD, ig);
driver->drawVertexPrimitiveList(matManager.vNegate, 4, matManager.iRectangle, 2);
}
//finish button //finish button
if(btnCancelOrFinish->isVisible() && dField.select_ready) if(btnCancelOrFinish->isVisible() && dField.select_ready)
DrawSelectionLine(btnCancelOrFinish, 2, 0xffffff00); DrawSelectionLine(btnCancelOrFinish, 2, 0xffffff00);
......
...@@ -1916,7 +1916,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1916,7 +1916,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case MSG_SELECT_PLACE: case MSG_SELECT_PLACE:
case MSG_SELECT_DISFIELD: { case MSG_SELECT_DISFIELD: {
int selecting_player = BufferIO::ReadInt8(pbuf); int selecting_player = BufferIO::ReadInt8(pbuf);
mainGame->dField.select_min = BufferIO::ReadInt8(pbuf); int count = BufferIO::ReadInt8(pbuf);
mainGame->dField.select_min = count > 0 ? count : 1;
mainGame->dField.select_ready = false;
mainGame->dField.select_cancelable = count == 0;
mainGame->dField.selectable_field = ~BufferIO::ReadInt32(pbuf); mainGame->dField.selectable_field = ~BufferIO::ReadInt32(pbuf);
if(selecting_player == mainGame->LocalPlayer(1)) if(selecting_player == mainGame->LocalPlayer(1))
mainGame->dField.selectable_field = (mainGame->dField.selectable_field >> 16) | (mainGame->dField.selectable_field << 16); mainGame->dField.selectable_field = (mainGame->dField.selectable_field >> 16) | (mainGame->dField.selectable_field << 16);
...@@ -1991,6 +1994,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1991,6 +1994,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
DuelClient::SendResponse(); DuelClient::SendResponse();
return true; return true;
} }
if(mainGame->dField.select_cancelable) {
mainGame->dField.ShowCancelOrFinishButton(1);
}
return false; return false;
} }
case MSG_SELECT_POSITION: { case MSG_SELECT_POSITION: {
...@@ -2044,6 +2050,8 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2044,6 +2050,8 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int count = BufferIO::ReadInt8(pbuf); int count = BufferIO::ReadInt8(pbuf);
mainGame->dField.selectable_cards.clear(); mainGame->dField.selectable_cards.clear();
mainGame->dField.selected_cards.clear(); mainGame->dField.selected_cards.clear();
mainGame->dField.selectsum_all.clear();
mainGame->dField.selectsum_cards.clear();
mainGame->dField.select_panalmode = false; mainGame->dField.select_panalmode = false;
int c, l, s, t; int c, l, s, t;
unsigned int code; unsigned int code;
...@@ -2059,10 +2067,12 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2059,10 +2067,12 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if (code && pcard->code != code) if (code && pcard->code != code)
pcard->SetCode(code); pcard->SetCode(code);
mainGame->dField.selectable_cards.push_back(pcard); mainGame->dField.selectable_cards.push_back(pcard);
pcard->opParam = t; mainGame->dField.selectsum_all.push_back(pcard);
pcard->opParam = t << 16 | 1;
pcard->select_seq = i; pcard->select_seq = i;
pcard->is_selectable = true; pcard->is_selectable = true;
} }
mainGame->dField.CheckSelectTribute();
if(select_hint) if(select_hint)
myswprintf(textBuffer, L"%ls(%d-%d)", dataManager.GetDesc(select_hint), myswprintf(textBuffer, L"%ls(%d-%d)", dataManager.GetDesc(select_hint),
mainGame->dField.select_min, mainGame->dField.select_max); mainGame->dField.select_min, mainGame->dField.select_max);
...@@ -3921,7 +3931,14 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -3921,7 +3931,14 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int chtype = BufferIO::ReadInt8(pbuf); int chtype = BufferIO::ReadInt8(pbuf);
int value = BufferIO::ReadInt32(pbuf); int value = BufferIO::ReadInt32(pbuf);
auto& player_desc_hints = mainGame->dField.player_desc_hints[player]; auto& player_desc_hints = mainGame->dField.player_desc_hints[player];
if(chtype == PHINT_DESC_ADD) { if(value == CARD_QUESTION && player == 0) {
/* if(chtype == PHINT_DESC_ADD) { // KoishiPro disables this
mainGame->dField.cant_check_grave = true;
} else if(chtype == PHINT_DESC_REMOVE) {
mainGame->dField.cant_check_grave = false;
}*/
}
else if(chtype == PHINT_DESC_ADD) {
player_desc_hints[value]++; player_desc_hints[value]++;
} else if(chtype == PHINT_DESC_REMOVE) { } else if(chtype == PHINT_DESC_REMOVE) {
player_desc_hints[value]--; player_desc_hints[value]--;
......
...@@ -905,6 +905,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -905,6 +905,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} else { } else {
if(conti_selecting) if(conti_selecting)
myswprintf(formatBuffer, L"%ls", DataManager::unknown_string); myswprintf(formatBuffer, L"%ls", DataManager::unknown_string);
else if(cant_check_grave && selectable_cards[i]->location == LOCATION_GRAVE)
myswprintf(formatBuffer, L"%ls", dataManager.FormatLocation(selectable_cards[i]->location, 0));
else if(selectable_cards[i + pos]->location == LOCATION_OVERLAY) else if(selectable_cards[i + pos]->location == LOCATION_OVERLAY)
myswprintf(formatBuffer, L"%ls[%d](%d)", myswprintf(formatBuffer, L"%ls[%d](%d)",
dataManager.FormatLocation(selectable_cards[i + pos]->overlayTarget->location, selectable_cards[i + pos]->overlayTarget->sequence), dataManager.FormatLocation(selectable_cards[i + pos]->overlayTarget->location, selectable_cards[i + pos]->overlayTarget->sequence),
...@@ -1207,6 +1209,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1207,6 +1209,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case LOCATION_GRAVE: { case LOCATION_GRAVE: {
if(grave[hovered_controler].size() == 0) if(grave[hovered_controler].size() == 0)
break; break;
if(cant_check_grave)
break;
ShowMenu(COMMAND_LIST, x, y); ShowMenu(COMMAND_LIST, x, y);
break; break;
} }
...@@ -1257,6 +1261,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1257,6 +1261,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
int command_flag = 0; int command_flag = 0;
if(grave[hovered_controler].size() == 0) if(grave[hovered_controler].size() == 0)
break; break;
if(cant_check_grave)
break;
for(size_t i = 0; i < grave[hovered_controler].size(); ++i) for(size_t i = 0; i < grave[hovered_controler].size(); ++i)
command_flag |= grave[hovered_controler][i]->cmdFlag; command_flag |= grave[hovered_controler][i]->cmdFlag;
command_flag |= COMMAND_LIST; command_flag |= COMMAND_LIST;
...@@ -1353,16 +1359,16 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1353,16 +1359,16 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
selected_field = 0; selected_field = 0;
DuelClient::SetResponseB(respbuf, p); DuelClient::SetResponseB(respbuf, p);
DuelClient::SendResponse(); DuelClient::SendResponse();
ShowCancelOrFinishButton(0);
} }
} }
} }
break; break;
} }
case MSG_SELECT_CARD: case MSG_SELECT_CARD: {
case MSG_SELECT_TRIBUTE: { if(!(hovered_location & 0xe) || !clicked_card || !clicked_card->is_selectable)
if (!(hovered_location & 0xe) || !clicked_card || !clicked_card->is_selectable)
break; break;
if (clicked_card->is_selected) { if(clicked_card->is_selected) {
clicked_card->is_selected = false; clicked_card->is_selected = false;
int i = 0; int i = 0;
while(selected_cards[i] != clicked_card) i++; while(selected_cards[i] != clicked_card) i++;
...@@ -1371,18 +1377,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1371,18 +1377,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
clicked_card->is_selected = true; clicked_card->is_selected = true;
selected_cards.push_back(clicked_card); selected_cards.push_back(clicked_card);
} }
int min = selected_cards.size(), max = 0; if(selected_cards.size() >= select_max) {
if (mainGame->dInfo.curMsg == MSG_SELECT_CARD) {
max = selected_cards.size();
} else {
for(size_t i = 0; i < selected_cards.size(); ++i)
max += selected_cards[i]->opParam;
}
if (min >= select_max) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0); ShowCancelOrFinishButton(0);
DuelClient::SendResponse(); DuelClient::SendResponse();
} else if (max >= select_min) { } else if(selected_cards.size() >= select_min) {
if(selected_cards.size() == selectable_cards.size()) { if(selected_cards.size() == selectable_cards.size()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0); ShowCancelOrFinishButton(0);
...@@ -1390,18 +1389,37 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1390,18 +1389,37 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} else { } else {
select_ready = true; select_ready = true;
ShowCancelOrFinishButton(2); ShowCancelOrFinishButton(2);
if(mainGame->dInfo.curMsg == MSG_SELECT_TRIBUTE) {
wchar_t wbuf[256], *pwbuf = wbuf;
BufferIO::CopyWStrRef(dataManager.GetSysString(209), pwbuf, 256);
*pwbuf++ = L'\n';
BufferIO::CopyWStrRef(dataManager.GetSysString(210), pwbuf, 256);
mainGame->stQMessage->setText(wbuf);
mainGame->PopupElement(mainGame->wQuery);
}
} }
} else { } else {
select_ready = false; select_ready = false;
if (select_cancelable && min == 0) if(select_cancelable && selected_cards.size() == 0)
ShowCancelOrFinishButton(1);
else
ShowCancelOrFinishButton(0);
}
break;
}
case MSG_SELECT_TRIBUTE: {
if (!(hovered_location & 0xe) || !clicked_card || !clicked_card->is_selectable)
break;
if(clicked_card->is_selected) {
auto it = std::find(selected_cards.begin(), selected_cards.end(), clicked_card);
selected_cards.erase(it);
} else {
selected_cards.push_back(clicked_card);
}
if(CheckSelectTribute()) {
if(selectsum_cards.size() == 0) {
SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
DuelClient::SendResponse();
} else {
select_ready = true;
ShowCancelOrFinishButton(2);
}
} else {
select_ready = false;
if (select_cancelable && selected_cards.size() == 0)
ShowCancelOrFinishButton(1); ShowCancelOrFinishButton(1);
else else
ShowCancelOrFinishButton(0); ShowCancelOrFinishButton(0);
...@@ -1748,6 +1766,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1748,6 +1766,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
display_cards.clear(); display_cards.clear();
switch(event.KeyInput.Key) { switch(event.KeyInput.Key) {
case irr::KEY_F1: case irr::KEY_F1:
if(cant_check_grave)
break;
loc_id = 1004; loc_id = 1004;
for(auto it = grave[0].rbegin(); it != grave[0].rend(); ++it) for(auto it = grave[0].rbegin(); it != grave[0].rend(); ++it)
display_cards.push_back(*it); display_cards.push_back(*it);
...@@ -1772,6 +1792,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1772,6 +1792,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
break; break;
case irr::KEY_F5: case irr::KEY_F5:
if(cant_check_grave)
break;
loc_id = 1004; loc_id = 1004;
for(auto it = grave[1].rbegin(); it != grave[1].rend(); ++it) for(auto it = grave[1].rbegin(); it != grave[1].rend(); ++it)
display_cards.push_back(*it); display_cards.push_back(*it);
...@@ -2426,14 +2448,18 @@ void ClientField::SetShowMark(ClientCard* pcard, bool enable) { ...@@ -2426,14 +2448,18 @@ void ClientField::SetShowMark(ClientCard* pcard, bool enable) {
} }
void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* element, irr::gui::IGUIElement* parent) { void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* element, irr::gui::IGUIElement* parent) {
std::wstring str(L""); std::wstring str(L"");
wchar_t formatBuffer[2048];
if(pcard->code) { if(pcard->code) {
str.append(dataManager.GetName(pcard->code)); str.append(dataManager.GetName(pcard->code));
} }
if(pcard->overlayTarget) {
myswprintf(formatBuffer, dataManager.GetSysString(225), dataManager.GetName(pcard->overlayTarget->code), pcard->overlayTarget->sequence + 1);
str.append(L"\n").append(formatBuffer);
}
if((pcard->status & STATUS_PROC_COMPLETE) if((pcard->status & STATUS_PROC_COMPLETE)
&& (pcard->type & (TYPE_RITUAL | TYPE_FUSION | TYPE_SYNCHRO | TYPE_XYZ | TYPE_LINK | TYPE_SPSUMMON))) && (pcard->type & (TYPE_RITUAL | TYPE_FUSION | TYPE_SYNCHRO | TYPE_XYZ | TYPE_LINK | TYPE_SPSUMMON)))
str.append(L"\n").append(dataManager.GetSysString(224)); str.append(L"\n").append(dataManager.GetSysString(224));
for(size_t i = 0; i < chains.size(); ++i) { for(size_t i = 0; i < chains.size(); ++i) {
wchar_t formatBuffer[2048];
auto chit = chains[i]; auto chit = chains[i];
if(pcard == chit.chain_card) { if(pcard == chit.chain_card) {
myswprintf(formatBuffer, dataManager.GetSysString(216), i + 1); myswprintf(formatBuffer, dataManager.GetSysString(216), i + 1);
...@@ -2579,6 +2605,11 @@ void ClientField::CancelOrFinish() { ...@@ -2579,6 +2605,11 @@ void ClientField::CancelOrFinish() {
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
if(select_ready) {
SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
DuelClient::SendResponse();
}
break; break;
} }
case MSG_SELECT_SUM: { case MSG_SELECT_SUM: {
...@@ -2619,6 +2650,19 @@ void ClientField::CancelOrFinish() { ...@@ -2619,6 +2650,19 @@ void ClientField::CancelOrFinish() {
} }
break; break;
} }
case MSG_SELECT_PLACE: {
if(select_cancelable) {
unsigned char respbuf[3];
respbuf[0] = mainGame->LocalPlayer(0);
respbuf[1] = 0;
respbuf[2] = 0;
mainGame->dField.selectable_field = 0;
DuelClient::SetResponseB(respbuf, 3);
DuelClient::SendResponse();
ShowCancelOrFinishButton(0);
}
break;
}
} }
} }
} }
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include <sstream> #include <sstream>
#include <regex> #include <regex>
unsigned short PRO_VERSION = 0x1351; unsigned short PRO_VERSION = 0x1352;
namespace ygo { namespace ygo {
......
#[2020.7][2020.6 TCG][2020.4][2020.1][2019.10][2019.7][2019.4][2019.1][2018.10][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][2020.4 TCG][2020.1 TCG][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][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] #[2020.10][2020.9 TCG][2020.7][2020.4][2020.1][2019.10][2019.7][2019.4][2019.1][2018.10][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][2020.6 TCG][2020.4 TCG][2020.1 TCG][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][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]
!2020.7 !2020.10
#forbidden #forbidden
91869203 0 --アマゾネスの射手 91869203 0 --アマゾネスの射手
20663556 0 --イレカエル 20663556 0 --イレカエル
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
34124316 0 --サイバーポッド 34124316 0 --サイバーポッド
88071625 0 --The tyrant NEPTUNE 88071625 0 --The tyrant NEPTUNE
61665245 0 --サモン・ソーサレス 61665245 0 --サモン・ソーサレス
52653092 0 --SNo.0 ホープ・ゼアル
85115440 0 --十二獣ブルホーン 85115440 0 --十二獣ブルホーン
59537380 0 --守護竜アガーペイン 59537380 0 --守護竜アガーペイン
86148577 0 --守護竜エルピィ 86148577 0 --守護竜エルピィ
...@@ -25,6 +26,7 @@ ...@@ -25,6 +26,7 @@
94677445 0 --星杯の神子イヴ 94677445 0 --星杯の神子イヴ
16923472 0 --ゼンマイハンター 16923472 0 --ゼンマイハンター
15341821 0 --ダンディライオン 15341821 0 --ダンディライオン
37818794 0 --超魔導竜騎士-ドラグーン・オブ・レッドアイズ
18326736 0 --星守の騎士 プトレマイオス 18326736 0 --星守の騎士 プトレマイオス
79875176 0 --トゥーン・キャノン・ソルジャー 79875176 0 --トゥーン・キャノン・ソルジャー
22593417 0 --トポロジック・ガンブラー・ドラゴン 22593417 0 --トポロジック・ガンブラー・ドラゴン
...@@ -94,6 +96,7 @@ ...@@ -94,6 +96,7 @@
74586817 1 --PSYフレームロード・Ω 74586817 1 --PSYフレームロード・Ω
26889158 1 --転生炎獣ガゼル 26889158 1 --転生炎獣ガゼル
74997493 1 --鎖龍蛇-スカルデット 74997493 1 --鎖龍蛇-スカルデット
69811710 1 --宵星の騎士ギルス
77075360 1 --ジャンク・スピーダー 77075360 1 --ジャンク・スピーダー
48905153 1 --十二獣ドランシア 48905153 1 --十二獣ドランシア
78872731 1 --十二獣モルモラット 78872731 1 --十二獣モルモラット
...@@ -106,7 +109,6 @@ ...@@ -106,7 +109,6 @@
59297550 1 --ゼンマイマジシャン 59297550 1 --ゼンマイマジシャン
44335251 1 --魂喰いオヴィラプター 44335251 1 --魂喰いオヴィラプター
73941492 1 --調弦の魔術師 73941492 1 --調弦の魔術師
37818794 1 --超魔導竜騎士-ドラグーン・オブ・レッドアイズ
15291624 1 --超雷龍-サンダー・ドラゴン 15291624 1 --超雷龍-サンダー・ドラゴン
90953320 1 --TG ハイパー・ライブラリアン 90953320 1 --TG ハイパー・ライブラリアン
69015963 1 --デビル・フランケン 69015963 1 --デビル・フランケン
...@@ -114,7 +116,7 @@ ...@@ -114,7 +116,7 @@
16226786 1 --深淵の暗殺者 16226786 1 --深淵の暗殺者
69610326 1 --覇王眷竜ダークヴルム 69610326 1 --覇王眷竜ダークヴルム
70583986 1 --氷結界の虎王ドゥローレン 70583986 1 --氷結界の虎王ドゥローレン
52687916 1 --氷結界の龍トリシューラ 52687916 1 --氷結界の龍 トリシューラ
33396948 1 --封印されしエクゾディア 33396948 1 --封印されしエクゾディア
44519536 1 --封印されし者の左足 44519536 1 --封印されし者の左足
07902349 1 --封印されし者の左腕 07902349 1 --封印されし者の左腕
...@@ -153,20 +155,17 @@ ...@@ -153,20 +155,17 @@
93600443 1 --マスク・チェンジ・セカンド 93600443 1 --マスク・チェンジ・セカンド
15854426 1 --霞の谷の神風 15854426 1 --霞の谷の神風
66399653 1 --ユニオン格納庫 66399653 1 --ユニオン格納庫
06172122 1 --真紅眼融合
27970830 1 --六武の門 27970830 1 --六武の門
02295440 1 --ワン・フォー・ワン
05851097 1 --虚無空間 05851097 1 --虚無空間
61740673 1 --王宮の勅命 61740673 1 --王宮の勅命
21076084 1 --トリックスター・リンカーネイション 21076084 1 --トリックスター・リンカーネイション
89208725 1 --メタバース 89208725 1 --メタバース
#semi limit #semi limit
25533642 2 --オルターガイスト・メリュシーク 25533642 2 --オルターガイスト・メリュシーク
99234526 2 --輝白竜 ワイバースター
21593977 2 --処刑人-マキュラ
14536035 2 --ダーク・グレファー 14536035 2 --ダーク・グレファー
82385847 2 --ダイナレスラー・パンクラトプス 82385847 2 --ダイナレスラー・パンクラトプス
09411399 2 --D-HEROディアボリックガイ 09411399 2 --D-HERO ディアボリックガイ
28297833 2 --ネクロフェイス
10802915 2 --魔界発現世行きデスガイド 10802915 2 --魔界発現世行きデスガイド
41386308 2 --マスマティシャン 41386308 2 --マスマティシャン
43694650 2 --未界域のジャッカロープ 43694650 2 --未界域のジャッカロープ
...@@ -174,6 +173,7 @@ ...@@ -174,6 +173,7 @@
29596581 2 --雷獣龍-サンダー・ドラゴン 29596581 2 --雷獣龍-サンダー・ドラゴン
48686504 2 --ローンファイア・ブロッサム 48686504 2 --ローンファイア・ブロッサム
47325505 2 --化石調査 47325505 2 --化石調査
84731222 2 --希望の記憶
67723438 2 --緊急テレポート 67723438 2 --緊急テレポート
45305419 2 --継承の印 45305419 2 --継承の印
52155219 2 --転生炎獣の炎陣 52155219 2 --転生炎獣の炎陣
...@@ -184,37 +184,38 @@ ...@@ -184,37 +184,38 @@
24010609 2 --閃刀機関-マルチロール 24010609 2 --閃刀機関-マルチロール
63166095 2 --閃刀起動-エンゲージ 63166095 2 --閃刀起動-エンゲージ
48130397 2 --超融合 48130397 2 --超融合
01984618 2 --天底の使徒
11110587 2 --隣の芝刈り 11110587 2 --隣の芝刈り
24224830 2 --墓穴の指名者
08949584 2 --ヒーローアライブ 08949584 2 --ヒーローアライブ
01475311 2 --闇の誘惑 01475311 2 --闇の誘惑
02295440 2 --ワン・フォー・ワン
53936268 2 --パーソナル・スプーフィング
23002292 2 --レッド・リブート 23002292 2 --レッド・リブート
!2020.6 TCG !2020.9 TCG
#forbidden #forbidden
76794549 0 --Astrograph Sorcerer 76794549 0 --Astrograph Sorcerer
09929398 0 --Blackwing - Gofu the Vague Shadow 09929398 0 --Blackwing - Gofu the Vague Shadow
09047460 0 --Blackwing - Steam the Cloak 09047460 0 --Blackwing - Steam the Cloak
53804307 0 --Blaster, Dragon Ruler of Infernos 53804307 0 --Blaster, Dragon Ruler of Infernos
94689206 0 --Block Dragon
34124316 0 --Cyber Jar 34124316 0 --Cyber Jar
15341821 0 --Dandylion 15341821 0 --Dandylion
05560911 0 --Destrudo the Lost Dragon's Frisson 05560911 0 --Destrudo the Lost Dragon's Frisson
08903700 0 --Djinn Releaser of Rituals 08903700 0 --Djinn Releaser of Rituals
49684352 0 --Double Iris Magician
51858306 0 --Eclipse Wyvern 51858306 0 --Eclipse Wyvern
55623480 0 --Fairy Tail - Snow 55623480 0 --Fairy Tail - Snow
78706415 0 --Fiber Jar 78706415 0 --Fiber Jar
93369354 0 --Fishborg Blaster 93369354 0 --Fishborg Blaster
67441435 0 --Glow-Up Bulb 67441435 0 --Glow-Up Bulb
75732622 0 --Grinder Golem 75732622 0 --Grinder Golem
09742784 0 --Jet Synchron
57421866 0 --Level Eater 57421866 0 --Level Eater
83190280 0 --Lunalight Tiger 83190280 0 --Lunalight Tiger
34206604 0 --Magical Scientist 34206604 0 --Magical Scientist
31178212 0 --Majespecter Unicorn - Kirin 31178212 0 --Majespecter Unicorn - Kirin
21593977 0 --Makyura the Destructor
21377582 0 --Master Peace, the True Dracoslaying King 21377582 0 --Master Peace, the True Dracoslaying King
23434538 0 --Maxx "C" 23434538 0 --Maxx "C"
72291078 0 --Mecha Phantom Beast O-Lion
96782886 0 --Mind Master 96782886 0 --Mind Master
57835716 0 --Orcust Harp Horror 57835716 0 --Orcust Harp Horror
07563579 0 --Performage Plushfire 07563579 0 --Performage Plushfire
...@@ -238,7 +239,6 @@ ...@@ -238,7 +239,6 @@
39064822 0 --Knightmare Goblin 39064822 0 --Knightmare Goblin
03679218 0 --Knightmare Mermaid 03679218 0 --Knightmare Mermaid
61665245 0 --Summon Sorceress 61665245 0 --Summon Sorceress
26692769 0 --The Phantom Knights of Rusty Bardiche
22593417 0 --Topologic Gumblar Dragon 22593417 0 --Topologic Gumblar Dragon
25862681 0 --Ancient Fairy Dragon 25862681 0 --Ancient Fairy Dragon
65536818 0 --Denglong, First of the Yang Zing 65536818 0 --Denglong, First of the Yang Zing
...@@ -266,7 +266,6 @@ ...@@ -266,7 +266,6 @@
23557835 0 --Dimension Fusion 23557835 0 --Dimension Fusion
42703248 0 --Giant Trunade 42703248 0 --Giant Trunade
79571449 0 --Graceful Charity 79571449 0 --Graceful Charity
18144506 0 --Harpie's Feather Duster
19613556 0 --Heavy Storm 19613556 0 --Heavy Storm
35059553 0 --Kaiser Colosseum 35059553 0 --Kaiser Colosseum
85602018 0 --Last Will 85602018 0 --Last Will
...@@ -299,7 +298,6 @@ ...@@ -299,7 +298,6 @@
08124921 1 --Right Leg of the Forbidden One 08124921 1 --Right Leg of the Forbidden One
28985331 1 --Armageddon Knight 28985331 1 --Armageddon Knight
61901281 1 --Black Dragon Collapserpent 61901281 1 --Black Dragon Collapserpent
57143342 1 --Cir, Malebranche of the Burning Abyss
69015963 1 --Cyber-Stein 69015963 1 --Cyber-Stein
43694650 1 --Danger!? Jackalope? 43694650 1 --Danger!? Jackalope?
70711847 1 --Danger! Nessie! 70711847 1 --Danger! Nessie!
...@@ -307,9 +305,9 @@ ...@@ -307,9 +305,9 @@
14536035 1 --Dark Grepher 14536035 1 --Dark Grepher
58984738 1 --Dinomight Knight, the True Dracofighter 58984738 1 --Dinomight Knight, the True Dracofighter
82385847 1 --Dinowrestler Pankratops 82385847 1 --Dinowrestler Pankratops
49684352 1 --Double Iris Magician
33396948 1 --Exodia the Forbidden One 33396948 1 --Exodia the Forbidden One
64034255 1 --Genex Ally Birdman 64034255 1 --Genex Ally Birdman
20758643 1 --Graff, Malebranche of the Burning Abyss
99177923 1 --Infernity Archfiend 99177923 1 --Infernity Archfiend
33508719 1 --Morphing Jar 33508719 1 --Morphing Jar
16226786 1 --Night Assailant 16226786 1 --Night Assailant
...@@ -323,10 +321,9 @@ ...@@ -323,10 +321,9 @@
30539496 1 --True King Lithosagym, the Disaster 30539496 1 --True King Lithosagym, the Disaster
99234526 1 --White Dragon Wyverburster 99234526 1 --White Dragon Wyverburster
78872731 1 --Zoodiac Ratpier 78872731 1 --Zoodiac Ratpier
45222299 1 --Evigishki Gustkraken
11877465 1 --Evigishki Mind Augus 11877465 1 --Evigishki Mind Augus
01561110 1 --ABC-Dragon Buster
39512984 1 --Gem-Knight Master Diamond 39512984 1 --Gem-Knight Master Diamond
26692769 1 --The Phantom Knights of Rusty Bardiche
70583986 1 --Dewloren, Tiger King of the Ice Barrier 70583986 1 --Dewloren, Tiger King of the Ice Barrier
18239909 1 --Ignister Prominence, the Blasting Dracoslayer 18239909 1 --Ignister Prominence, the Blasting Dracoslayer
74586817 1 --PSY-Framelord Omega 74586817 1 --PSY-Framelord Omega
...@@ -334,9 +331,9 @@ ...@@ -334,9 +331,9 @@
52687916 1 --Trishula, Dragon of the Ice Barrier 52687916 1 --Trishula, Dragon of the Ice Barrier
27552504 1 --Beatrice, Lady of the Eternal 27552504 1 --Beatrice, Lady of the Eternal
00581014 1 --Daigusto Emeral 00581014 1 --Daigusto Emeral
90809975 1 --Toadally Awesome
48905153 1 --Zoodiac Drident 48905153 1 --Zoodiac Drident
08949584 1 --A Hero Lives 08949584 1 --A Hero Lives
24224830 1 --Called by the Grave
72892473 1 --Card Destruction 72892473 1 --Card Destruction
59750328 1 --Card of Demise 59750328 1 --Card of Demise
91623717 1 --Chain Strike 91623717 1 --Chain Strike
...@@ -349,6 +346,7 @@ ...@@ -349,6 +346,7 @@
81439173 1 --Foolish Burial 81439173 1 --Foolish Burial
27970830 1 --Gateway of the Six 27970830 1 --Gateway of the Six
75500286 1 --Gold Sarcophagus 75500286 1 --Gold Sarcophagus
18144506 1 --Harpie's Feather Duster
66957584 1 --Infernity Launcher 66957584 1 --Infernity Launcher
01845204 1 --Instant Fusion 01845204 1 --Instant Fusion
93946239 1 --Into the Void 93946239 1 --Into the Void
...@@ -357,7 +355,6 @@ ...@@ -357,7 +355,6 @@
83764718 1 --Monster Reborn 83764718 1 --Monster Reborn
33782437 1 --One Day of Peace 33782437 1 --One Day of Peace
02295440 1 --One for One 02295440 1 --One for One
22842126 1 --Pantheism of the Monarchs
12580477 1 --Raigeki 12580477 1 --Raigeki
58577036 1 --Reasoning 58577036 1 --Reasoning
32807846 1 --Reinforcement of the Army 32807846 1 --Reinforcement of the Army
...@@ -383,9 +380,203 @@ ...@@ -383,9 +380,203 @@
35125879 1 --True King's Return 35125879 1 --True King's Return
17078030 1 --Wall of Revealing Light 17078030 1 --Wall of Revealing Light
#semi limit #semi limit
57143342 2 --Cir, Malebranche of the Burning Abyss
09411399 2 --Destiny HERO - Malicious 09411399 2 --Destiny HERO - Malicious
10802915 2 --Tour Guide From the Underworld 20758643 2 --Graff, Malebranche of the Burning Abyss
98338152 2 --Sky Striker Mecha - Widow Anchor 01561110 2 --ABC-Dragon Buster
90809975 2 --Toadally Awesome
!2020.7
#forbidden
91869203 0 --アマゾネスの射手
20663556 0 --イレカエル
44910027 0 --ヴィクトリー・ドラゴン
51858306 0 --エクリプス・ワイバーン
25862681 0 --エンシェント・フェアリー・ドラゴン
53804307 0 --焔征竜-ブラスター
07563579 0 --Emヒグルミ
17330916 0 --EMモンキーボード
34945480 0 --外神アザトート
90411554 0 --巌征竜-レドックス
08903700 0 --儀式魔人リリーサー
11384280 0 --キャノン・ソルジャー
17412721 0 --旧神ノーデン
67441435 0 --グローアップ・バルブ
34124316 0 --サイバーポッド
88071625 0 --The tyrant NEPTUNE
61665245 0 --サモン・ソーサレス
85115440 0 --十二獣ブルホーン
59537380 0 --守護竜アガーペイン
86148577 0 --守護竜エルピィ
21377582 0 --真竜剣皇マスターP
94677445 0 --星杯の神子イヴ
16923472 0 --ゼンマイハンター
15341821 0 --ダンディライオン
18326736 0 --星守の騎士 プトレマイオス
79875176 0 --トゥーン・キャノン・ソルジャー
22593417 0 --トポロジック・ガンブラー・ドラゴン
39064822 0 --トロイメア・ゴブリン
03679218 0 --トロイメア・マーメイド
54719828 0 --No.16 色の支配者ショック・ルーラー
58820923 0 --No.95 ギャラクシーアイズ・ダークマター・ドラゴン
26400609 0 --瀑征竜-タイダル
71525232 0 --破滅竜ガンドラX
05043010 0 --ファイアウォール・ドラゴン
78706415 0 --ファイバーポッド
93369354 0 --フィッシュボーグ-ガンナー
23558733 0 --フェニキシアン・クラスター・アマリリス
09929398 0 --BF-朧影のゴウフウ
09047460 0 --BF-隠れ蓑のスチーム
31178212 0 --マジェスペクター・ユニコーン
34206604 0 --魔導サイエンティスト
04423206 0 --M.X-セイバー インヴォーカー
14702066 0 --メガキャノン・ソルジャー
96782886 0 --メンタルマスター
03078576 0 --八汰烏
34086406 0 --ラヴァルバル・チェイン
85243784 0 --リンクロス
57421866 0 --レベル・スティーラー
41482598 0 --悪夢の蜃気楼
44763025 0 --いたずら好きな双子悪魔
17375316 0 --押収
19613556 0 --大嵐
74191942 0 --苦渋の選択
42829885 0 --強引な番兵
45986603 0 --強奪
55144522 0 --強欲な壺
04031928 0 --心変わり
23557835 0 --次元融合
31423101 0 --神剣-フェニックスブレード
57953380 0 --生還の宝札
54447022 0 --ソウル・チャージ
60682203 0 --大寒波
69243953 0 --蝶の短剣-エルマ
79571449 0 --天使の施し
70828912 0 --早すぎた埋葬
42703248 0 --ハリケーン
34906152 0 --マスドライバー
46448938 0 --魔導書の神判
46411259 0 --突然変異
85602018 0 --遺言状
27174286 0 --異次元からの帰還
93016201 0 --王宮の弾圧
03280747 0 --第六感
64697231 0 --ダスト・シュート
80604091 0 --血の代償
35316708 0 --刻の封印
32723153 0 --マジカル・エクスプロージョン
17178486 0 --ライフチェンジャー
28566710 0 --ラストバトル!
#limit
64034255 1 --A・ジェネクス・バードマン
76794549 1 --アストログラフ・マジシャン
01561110 1 --ABC-ドラゴン・バスター
40318957 1 --EMドクロバット・ジョーカー
42790071 1 --オルターガイスト・マルチフェイカー
30741503 1 --オルフェゴール・ガラテア
57835716 1 --オルフェゴール・ディヴェル
50588353 1 --水晶機巧-ハリファイバー
12289247 1 --クロノグラフ・マジシャン
49684352 1 --虹彩の魔術師
74586817 1 --PSYフレームロード・Ω
26889158 1 --転生炎獣ガゼル
74997493 1 --鎖龍蛇-スカルデット
77075360 1 --ジャンク・スピーダー
48905153 1 --十二獣ドランシア
78872731 1 --十二獣モルモラット
06602300 1 --重爆撃禽 ボム・フェネクス
28985331 1 --終末の騎士
78080961 1 --SPYRAL-ジーニアス
81275020 1 --SRベイゴマックス
63288573 1 --閃刀姫-カガリ
81122844 1 --発条空母ゼンマイティ
59297550 1 --ゼンマイマジシャン
44335251 1 --魂喰いオヴィラプター
73941492 1 --調弦の魔術師
37818794 1 --超魔導竜騎士-ドラグーン・オブ・レッドアイズ
15291624 1 --超雷龍-サンダー・ドラゴン
90953320 1 --TG ハイパー・ライブラリアン
69015963 1 --デビル・フランケン
75732622 1 --トーチ・ゴーレム
16226786 1 --深淵の暗殺者
69610326 1 --覇王眷竜ダークヴルム
70583986 1 --氷結界の虎王ドゥローレン
52687916 1 --氷結界の龍トリシューラ
33396948 1 --封印されしエクゾディア
44519536 1 --封印されし者の左足
07902349 1 --封印されし者の左腕
08124921 1 --封印されし者の右足
70903634 1 --封印されし者の右腕
70369116 1 --捕食植物ヴェルテ・アナコンダ
35272499 1 --捕食植物オフリス・スコーピオ
24094258 1 --ヘビーメタルフォーゼ・エレクトラム
33508719 1 --メタモルポット
90809975 1 --餅カエル
83107873 1 --雷鳥龍-サンダー・ドラゴン
89399912 1 --嵐征竜-テンペスト
92746535 1 --竜剣士ラスターP
88264978 1 --レッドアイズ・ダークネスメタルドラゴン
33782437 1 --一時休戦
01845204 1 --簡易融合
66957584 1 --インフェルニティガン
81439173 1 --おろかな埋葬
73680966 1 --終わりの始まり
23701465 1 --原初の種
12580477 1 --サンダー・ボルト
83764718 1 --死者蘇生
46060017 1 --十二獣の会局
52340444 1 --閃刀機-ホーネットビット
32807846 1 --増援
72892473 1 --手札抹殺
73628505 1 --テラ・フォーミング
13035077 1 --ドラゴニックD
35371948 1 --トリックスター・ライトステージ
18144506 1 --ハーピィの羽根帚
75500286 1 --封印の黄金櫃
07394770 1 --ブリリアント・フュージョン
53208660 1 --ペンデュラム・コール
73468603 1 --盆回し
76375976 1 --魔鍾洞
93600443 1 --マスク・チェンジ・セカンド
15854426 1 --霞の谷の神風
66399653 1 --ユニオン格納庫
06172122 1 --真紅眼融合
27970830 1 --六武の門
05851097 1 --虚無空間
61740673 1 --王宮の勅命
21076084 1 --トリックスター・リンカーネイション
89208725 1 --メタバース
#semi limit
25533642 2 --オルターガイスト・メリュシーク
99234526 2 --輝白竜 ワイバースター
21593977 2 --処刑人-マキュラ
14536035 2 --ダーク・グレファー
82385847 2 --ダイナレスラー・パンクラトプス
09411399 2 --D-HEROディアボリックガイ
28297833 2 --ネクロフェイス
10802915 2 --魔界発現世行きデスガイド
41386308 2 --マスマティシャン
43694650 2 --未界域のジャッカロープ
70711847 2 --未界域のネッシー
29596581 2 --雷獣龍-サンダー・ドラゴン
48686504 2 --ローンファイア・ブロッサム
47325505 2 --化石調査
67723438 2 --緊急テレポート
45305419 2 --継承の印
52155219 2 --転生炎獣の炎陣
73915051 2 --スケープ・ゴート
54631665 2 --SPYRAL RESORT
37520316 2 --精神操作
98338152 2 --閃刀機-ウィドウアンカー
24010609 2 --閃刀機関-マルチロール
63166095 2 --閃刀起動-エンゲージ
48130397 2 --超融合
11110587 2 --隣の芝刈り
08949584 2 --ヒーローアライブ
01475311 2 --闇の誘惑
02295440 2 --ワン・フォー・ワン
53936268 2 --パーソナル・スプーフィング
23002292 2 --レッド・リブート
!2020.4 !2020.4
#forbidden #forbidden
...@@ -4521,6 +4712,202 @@ ...@@ -4521,6 +4712,202 @@
53582587 2 --激流葬 53582587 2 --激流葬
29401950 2 --奈落の落とし穴 29401950 2 --奈落の落とし穴
!2020.6 TCG
#forbidden
76794549 0 --Astrograph Sorcerer
09929398 0 --Blackwing - Gofu the Vague Shadow
09047460 0 --Blackwing - Steam the Cloak
53804307 0 --Blaster, Dragon Ruler of Infernos
34124316 0 --Cyber Jar
15341821 0 --Dandylion
05560911 0 --Destrudo the Lost Dragon's Frisson
08903700 0 --Djinn Releaser of Rituals
49684352 0 --Double Iris Magician
51858306 0 --Eclipse Wyvern
55623480 0 --Fairy Tail - Snow
78706415 0 --Fiber Jar
93369354 0 --Fishborg Blaster
67441435 0 --Glow-Up Bulb
75732622 0 --Grinder Golem
57421866 0 --Level Eater
83190280 0 --Lunalight Tiger
34206604 0 --Magical Scientist
31178212 0 --Majespecter Unicorn - Kirin
21593977 0 --Makyura the Destructor
21377582 0 --Master Peace, the True Dracoslaying King
23434538 0 --Maxx "C"
96782886 0 --Mind Master
57835716 0 --Orcust Harp Horror
07563579 0 --Performage Plushfire
17330916 0 --Performapal Monkeyboard
40318957 0 --Performapal Skullcrobat Joker
23558733 0 --Phoenixian Cluster Amaryllis
90411554 0 --Redox, Dragon Ruler of Boulders
05592689 0 --Samsara Lotus
91258852 0 --SPYRAL Master Plan
20663556 0 --Substitoad
88071625 0 --The Tyrant Neptune
26400609 0 --Tidal, Dragon Ruler of Waterfalls
44910027 0 --Victory Dragon
03078576 0 --Yata-Garasu
17412721 0 --Elder Entity Norden
43387895 0 --Supreme King Dragon Starving Venom
15291624 0 --Thunder Dragon Colossus
05043010 0 --Firewall Dragon
59537380 0 --Guardragon Agarpain
24094258 0 --Heavymetalfoes Electrumite
39064822 0 --Knightmare Goblin
03679218 0 --Knightmare Mermaid
61665245 0 --Summon Sorceress
26692769 0 --The Phantom Knights of Rusty Bardiche
22593417 0 --Topologic Gumblar Dragon
25862681 0 --Ancient Fairy Dragon
65536818 0 --Denglong, First of the Yang Zing
94677445 0 --Ib the World Chalice Justiciar
63101919 0 --Tempest Magician
34086406 0 --Lavalval Chain
04423206 0 --M-X-Saber Invoker
54719828 0 --Number 16: Shock Master
10389142 0 --Number 42: Galaxy Tomahawk
63504681 0 --Number 86: Heroic Champion - Rhongomyniad
58820923 0 --Number 95: Galaxy-Eyes Dark Matter Dragon
34945480 0 --Outer Entity Azathot
87327776 0 --Salamangreat Miragestallio
18326736 0 --Tellarknight Ptolemaeus
81122844 0 --Wind-Up Carrier Zenmaity
85115440 0 --Zoodiac Broadbull
07394770 0 --Brilliant Fusion
69243953 0 --Butterfly Dagger - Elma
57953380 0 --Card of Safe Return
04031928 0 --Change of Heart
67616300 0 --Chicken Game
60682203 0 --Cold Wave
17375316 0 --Confiscation
44763025 0 --Delinquent Duo
23557835 0 --Dimension Fusion
42703248 0 --Giant Trunade
79571449 0 --Graceful Charity
18144506 0 --Harpie's Feather Duster
19613556 0 --Heavy Storm
35059553 0 --Kaiser Colosseum
85602018 0 --Last Will
34906152 0 --Mass Driver
46411259 0 --Metamorphosis
41482598 0 --Mirage of Nightmare
74191942 0 --Painful Choice
55144522 0 --Pot of Greed
70828912 0 --Premature Burial
94220427 0 --Rank-Up-Magic Argent Chaos Force
63166095 0 --Sky Striker Mobilize - Engage!
45986603 0 --Snatch Steal
54447022 0 --Soul Charge
46448938 0 --Spellbook of Judgment
11110587 0 --That Grass Looks Greener
42829885 0 --The Forceful Sentry
28566710 0 --Last Turn
27174286 0 --Return from the Different Dimension
93016201 0 --Royal Oppression
57585212 0 --Self-Destruct Button
03280747 0 --Sixth Sense
35316708 0 --Time Seal
64697231 0 --Trap Dustshoot
80604091 0 --Ultimate Offering
05851097 0 --Vanity's Emptiness
#limit
07902349 1 --Left Arm of the Forbidden One
44519536 1 --Left Leg of the Forbidden One
70903634 1 --Right Arm of the Forbidden One
08124921 1 --Right Leg of the Forbidden One
28985331 1 --Armageddon Knight
61901281 1 --Black Dragon Collapserpent
57143342 1 --Cir, Malebranche of the Burning Abyss
69015963 1 --Cyber-Stein
43694650 1 --Danger!? Jackalope?
70711847 1 --Danger! Nessie!
99745551 1 --Danger!? Tsuchinoko?
14536035 1 --Dark Grepher
58984738 1 --Dinomight Knight, the True Dracofighter
82385847 1 --Dinowrestler Pankratops
33396948 1 --Exodia the Forbidden One
64034255 1 --Genex Ally Birdman
20758643 1 --Graff, Malebranche of the Burning Abyss
99177923 1 --Infernity Archfiend
33508719 1 --Morphing Jar
16226786 1 --Night Assailant
12958919 1 --Phantom Skyblaster
88264978 1 --Red-Eyes Darkness Metal Dragon
26889158 1 --Salamangreat Gazelle
92559258 1 --Servant of Endymion
81275020 1 --Speedroid Terrortop
78080961 1 --SPYRAL Quik-Fix
89399912 1 --Tempest, Dragon Ruler of Storms
30539496 1 --True King Lithosagym, the Disaster
99234526 1 --White Dragon Wyverburster
78872731 1 --Zoodiac Ratpier
45222299 1 --Evigishki Gustkraken
11877465 1 --Evigishki Mind Augus
01561110 1 --ABC-Dragon Buster
39512984 1 --Gem-Knight Master Diamond
70583986 1 --Dewloren, Tiger King of the Ice Barrier
18239909 1 --Ignister Prominence, the Blasting Dracoslayer
74586817 1 --PSY-Framelord Omega
90953320 1 --T.G. Hyper Librarian
52687916 1 --Trishula, Dragon of the Ice Barrier
27552504 1 --Beatrice, Lady of the Eternal
00581014 1 --Daigusto Emeral
90809975 1 --Toadally Awesome
48905153 1 --Zoodiac Drident
08949584 1 --A Hero Lives
72892473 1 --Card Destruction
59750328 1 --Card of Demise
91623717 1 --Chain Strike
81674782 1 --Dimensional Fissure
15854426 1 --Divine Wind of Mist Valley
14733538 1 --Draco Face-Off
13035077 1 --Dragonic Diagram
67723438 1 --Emergency Teleport
95308449 1 --Final Countdown
81439173 1 --Foolish Burial
27970830 1 --Gateway of the Six
75500286 1 --Gold Sarcophagus
66957584 1 --Infernity Launcher
01845204 1 --Instant Fusion
93946239 1 --Into the Void
71650854 1 --Magical Mid-Breaker Field
37520316 1 --Mind Control
83764718 1 --Monster Reborn
33782437 1 --One Day of Peace
02295440 1 --One for One
22842126 1 --Pantheism of the Monarchs
12580477 1 --Raigeki
58577036 1 --Reasoning
32807846 1 --Reinforcement of the Army
52155219 1 --Salamangreat Circle
73915051 1 --Scapegoat
24940422 1 --Sekka's Light
73468603 1 --Set Rotation
52340444 1 --Sky Striker Mecha - Hornet Drones
24010609 1 --Sky Striker Mecha Modules - Multirole
71344451 1 --Slash Draw
54631665 1 --SPYRAL Resort
45305419 1 --Symbol of Heritage
73628505 1 --Terraforming
35371948 1 --Trickstar Light Stage
70368879 1 --Upstart Goblin
46060017 1 --Zoodiac Barrage
61740673 1 --Imperial Order
30241314 1 --Macro Cosmos
32723153 1 --Magical Explosion
89208725 1 --Metaverse
23002292 1 --Red Reboot
82732705 1 --Skill Drain
35125879 1 --True King's Return
17078030 1 --Wall of Revealing Light
#semi limit
09411399 2 --Destiny HERO - Malicious
10802915 2 --Tour Guide From the Underworld
98338152 2 --Sky Striker Mecha - Widow Anchor
!2020.4 TCG !2020.4 TCG
#forbidden #forbidden
76794549 0 --Astrograph Sorcerer 76794549 0 --Astrograph Sorcerer
......
Subproject commit 1b8b6c51acd68bf9a441f666316c787df0f6d967 Subproject commit b794b34f4aa318612243d223ba67f1b1f85e4f3f
1 ICON "ygopro.ico" 1 ICON "ygopro.ico"
1 VERSIONINFO 1 VERSIONINFO
FILEVERSION 1, 0, 35, 1 FILEVERSION 1, 0, 35, 2
PRODUCTVERSION 1, 0, 35, 1 PRODUCTVERSION 1, 0, 35, 2
FILEOS 0x4 FILEOS 0x4
FILETYPE 0x1 FILETYPE 0x1
...@@ -16,8 +16,8 @@ VALUE "InternalName", "KoishiPro" ...@@ -16,8 +16,8 @@ VALUE "InternalName", "KoishiPro"
VALUE "LegalCopyright", "Copyright (C) 2019 Nanahira" VALUE "LegalCopyright", "Copyright (C) 2019 Nanahira"
VALUE "OriginalFilename", "ygopro_another.exe" VALUE "OriginalFilename", "ygopro_another.exe"
VALUE "ProductName", "KoishiPro" VALUE "ProductName", "KoishiPro"
VALUE "FileVersion", "Replica" VALUE "FileVersion", "Koikokoro"
VALUE "ProductVersion", "Replica" VALUE "ProductVersion", "Koikokoro"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
......
Subproject commit 0895099e40fef293c6f7653836c5cdf7a36b9e61 Subproject commit b6819fc3480b886fd6f1a840297e8df2367e0c43
...@@ -80,6 +80,7 @@ ...@@ -80,6 +80,7 @@
!system 222 是否要发动诱发效果? !system 222 是否要发动诱发效果?
!system 223 稍后将询问其他可以发动的效果。 !system 223 稍后将询问其他可以发动的效果。
!system 224 已用正规方法特殊召唤 !system 224 已用正规方法特殊召唤
!system 225 叠放于[%ls](%d)下
!system 500 请选择要解放的卡 !system 500 请选择要解放的卡
!system 501 请选择要丢弃的手卡 !system 501 请选择要丢弃的手卡
!system 502 请选择要破坏的卡 !system 502 请选择要破坏的卡
...@@ -1067,3 +1068,10 @@ ...@@ -1067,3 +1068,10 @@
!setname 0x14e 电脑堺 電脳堺 !setname 0x14e 电脑堺 電脳堺
!setname 0x114e 电脑堺门 電脳堺門 !setname 0x114e 电脑堺门 電脳堺門
!setname 0x14f 双天 !setname 0x14f 双天
!setname 0x150 大贤者 マギストス
#setname 0x151 双子 Twin
!setname 0x1151 直播☆双子 LiveTwin
!setname 0x2151 邪恶★双子 EvilTwin
!setname 0x152 姬丝基勒 キスキル
!setname 0x153 璃拉 リィラ
!setname 0x154 龙辉巧 ドライトロン
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#nickname & gamename should be less than 20 characters #nickname & gamename should be less than 20 characters
use_d3d = 0 use_d3d = 0
use_image_scale = 1 use_image_scale = 1
pro_version = 4945 pro_version = 4946
antialias = 2 antialias = 2
errorlog = 3 errorlog = 3
nickname = Komeiji Koishi nickname = Komeiji Koishi
......
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