Commit 8134065f authored by fallenstardust's avatar fallenstardust

UPDATE

parent b19ee26a
...@@ -1612,7 +1612,7 @@ void Game::LoadConfig() { ...@@ -1612,7 +1612,7 @@ void Game::LoadConfig() {
gameConf.chkIgnoreDeckChanges = android::getIntSetting(appMain, "chkIgnoreDeckChanges", 0); gameConf.chkIgnoreDeckChanges = android::getIntSetting(appMain, "chkIgnoreDeckChanges", 0);
gameConf.defaultOT = android::getIntSetting(appMain, "defaultOT", 1); gameConf.defaultOT = android::getIntSetting(appMain, "defaultOT", 1);
//TEST BOT MODE //TEST BOT MODE
gameConf.enable_bot_mode = 0; gameConf.enable_bot_mode = 1;
} }
void Game::SaveConfig() { void Game::SaveConfig() {
......
...@@ -1384,6 +1384,12 @@ int32 card::is_extra_link_state() { ...@@ -1384,6 +1384,12 @@ int32 card::is_extra_link_state() {
card* pcard2 = pduel->game_field->player[p].list_mzone[6]; card* pcard2 = pduel->game_field->player[p].list_mzone[6];
if(pcard2) if(pcard2)
excset.insert(pcard2); excset.insert(pcard2);
card* pcard3 = pduel->game_field->player[1 - p].list_mzone[5];
if(pcard3)
excset.insert(pcard3);
card* pcard4 = pduel->game_field->player[1 - p].list_mzone[6];
if(pcard4)
excset.insert(pcard4);
} }
if(excset.size() < 2) if(excset.size() < 2)
return FALSE; return FALSE;
...@@ -1402,9 +1408,11 @@ int32 card::check_extra_link(card_set* cset, card_set* excset, card_set* linked_ ...@@ -1402,9 +1408,11 @@ int32 card::check_extra_link(card_set* cset, card_set* excset, card_set* linked_
card* pcard = *cit; card* pcard = *cit;
if(cset->find(pcard) != cset->end()) if(cset->find(pcard) != cset->end())
continue; continue;
if(excset->find(pcard) != cset->end()) if(excset->find(pcard) != excset->end()) {
if(cset->find(this) != cset->end()) card_set omitted;
if(check_extra_link_finish(cset, &omitted))
return TRUE; return TRUE;
}
card_set linked_group2; card_set linked_group2;
pcard->get_mutual_linked_cards(&linked_group2); pcard->get_mutual_linked_cards(&linked_group2);
if(!linked_group2.size()) if(!linked_group2.size())
...@@ -1417,6 +1425,25 @@ int32 card::check_extra_link(card_set* cset, card_set* excset, card_set* linked_ ...@@ -1417,6 +1425,25 @@ int32 card::check_extra_link(card_set* cset, card_set* excset, card_set* linked_
} }
return FALSE; return FALSE;
} }
int32 card::check_extra_link_finish(card_set* cset, card_set* omitted) {
if(cset->find(this) != cset->end())
return TRUE;
for(auto cit = cset->begin(); cit != cset->end(); ++cit) {
card* pcard = *cit;
if(omitted->find(pcard) != omitted->end())
continue;
card_set linked_group3;
pcard->get_mutual_linked_cards(&linked_group3);
if(!linked_group3.size())
continue;
omitted->insert(pcard);
int32 result = check_extra_link_finish(&linked_group3, omitted);
omitted->erase(pcard);
if(result)
return TRUE;
}
return FALSE;
}
int32 card::is_position(int32 pos) { int32 card::is_position(int32 pos) {
return current.position & pos; return current.position & pos;
} }
......
...@@ -229,6 +229,7 @@ public: ...@@ -229,6 +229,7 @@ public:
int32 is_link_state(); int32 is_link_state();
int32 is_extra_link_state(); int32 is_extra_link_state();
int32 check_extra_link(card_set* cset, card_set* excset, card_set* linked_group1); int32 check_extra_link(card_set* cset, card_set* excset, card_set* linked_group1);
int32 check_extra_link_finish(card_set* cset, card_set* omitted);
int32 is_position(int32 pos); int32 is_position(int32 pos);
void set_status(uint32 status, int32 enabled); void set_status(uint32 status, int32 enabled);
int32 get_status(uint32 status); int32 get_status(uint32 status);
......
...@@ -2911,10 +2911,10 @@ int32 field::special_summon_step(uint16 step, group* targets, card* target, uint ...@@ -2911,10 +2911,10 @@ int32 field::special_summon_step(uint16 step, group* targets, card* target, uint
} }
if(target->current.location != LOCATION_EXTRA) { if(target->current.location != LOCATION_EXTRA) {
if(ct2 == 0) if(ct2 == 0)
zone = flag2; zone &= flag2;
} else { } else {
if(ct1 == 0) if(ct1 == 0)
zone = flag1; zone &= flag1;
} }
} }
move_to_field(target, move_player, playerid, LOCATION_MZONE, positions, FALSE, 0, FALSE, zone); move_to_field(target, move_player, playerid, LOCATION_MZONE, positions, FALSE, 0, FALSE, zone);
......
...@@ -1010,22 +1010,26 @@ int32 field::announce_card(int16 step, uint8 playerid, uint32 ttype) { ...@@ -1010,22 +1010,26 @@ int32 field::announce_card(int16 step, uint8 playerid, uint32 ttype) {
return FALSE; return FALSE;
} else { } else {
int32 code = returns.ivalue[0]; int32 code = returns.ivalue[0];
bool retry = false;
card_data data; card_data data;
read_card(code, &data); read_card(code, &data);
if(!data.code) { if(!data.code) {
pduel->write_buffer8(MSG_RETRY); retry = true;
return FALSE; } else if(core.select_options.size() == 0) {
}
if(core.select_options.size() == 0) {
if(!(data.type & ttype)) { if(!(data.type & ttype)) {
pduel->write_buffer8(MSG_RETRY); retry = true;
return FALSE;
} }
} else { } else {
if(!is_declarable(data, core.select_options)) { if(!is_declarable(data, core.select_options)) {
pduel->write_buffer8(MSG_RETRY); retry = true;
return FALSE; }
} }
if(retry) {
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_MESSAGE);
pduel->write_buffer8(playerid);
pduel->write_buffer32(1421);
return announce_card(0, playerid, ttype);
} }
pduel->write_buffer8(MSG_HINT); pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_CODE); pduel->write_buffer8(HINT_CODE);
......
...@@ -601,6 +601,7 @@ int32 field::process() { ...@@ -601,6 +601,7 @@ int32 field::process() {
pduel->lua->add_param(returns.ivalue[0], PARAM_TYPE_INT); pduel->lua->add_param(returns.ivalue[0], PARAM_TYPE_INT);
core.units.pop_front(); core.units.pop_front();
} else { } else {
if(it->step == 0)
it->step++; it->step++;
} }
return PROCESSOR_WAITING + pduel->bufferlen; return PROCESSOR_WAITING + pduel->bufferlen;
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
2.TCG2018.5.21禁卡表 2.TCG2018.5.21禁卡表
3.新卡:CP18; 3.新卡:CP18;
新增: 新增:
1.WINDBOT本地人机 1.萌卡聊天室
</pre> </pre>
<ul> <ul>
......
...@@ -412,6 +412,7 @@ ...@@ -412,6 +412,7 @@
!system 1418 额外卡组数量应不超过15张,当前卡组数量为%d张。 !system 1418 额外卡组数量应不超过15张,当前卡组数量为%d张。
!system 1419 副卡组数量应不超过15张,当前卡组数量为%d张。 !system 1419 副卡组数量应不超过15张,当前卡组数量为%d张。
!system 1420 有额外卡组卡片存在于主卡组,可能是额外卡组数量超过15张。 !system 1420 有额外卡组卡片存在于主卡组,可能是额外卡组数量超过15张。
!system 1421 宣言的卡不符合条件,不存在于本主机卡池中。
!system 1500 决斗结束。 !system 1500 决斗结束。
!system 1501 录像结束。 !system 1501 录像结束。
!system 1502 连接已断开。 !system 1502 连接已断开。
......
...@@ -8,7 +8,7 @@ android { ...@@ -8,7 +8,7 @@ android {
applicationId "cn.garymb.ygomobile.test" applicationId "cn.garymb.ygomobile.test"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 22 targetSdkVersion 22
versionCode 32010517 versionCode 32010518
versionName "3.2.1" versionName "3.2.1"
flavorDimensions "versionCode" flavorDimensions "versionCode"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
......
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