Commit 4c1accec authored by fallenstardust's avatar fallenstardust
parents 6ad6c231 b707cc9f
...@@ -558,7 +558,7 @@ public: ...@@ -558,7 +558,7 @@ public:
//operations //operations
int32 negate_chain(uint8 chaincount); int32 negate_chain(uint8 chaincount);
int32 disable_chain(uint8 chaincount); int32 disable_chain(uint8 chaincount, uint8 forced);
void change_chain_effect(uint8 chaincount, int32 replace_op); void change_chain_effect(uint8 chaincount, int32 replace_op);
void change_target(uint8 chaincount, group* targets); void change_target(uint8 chaincount, group* targets);
void change_target_player(uint8 chaincount, uint8 playerid); void change_target_player(uint8 chaincount, uint8 playerid);
......
...@@ -1764,8 +1764,11 @@ int32 scriptlib::duel_negate_activate(lua_State *L) { ...@@ -1764,8 +1764,11 @@ int32 scriptlib::duel_negate_activate(lua_State *L) {
int32 scriptlib::duel_negate_effect(lua_State *L) { int32 scriptlib::duel_negate_effect(lua_State *L) {
check_param_count(L, 1); check_param_count(L, 1);
uint32 c = (uint32)lua_tointeger(L, 1); uint32 c = (uint32)lua_tointeger(L, 1);
uint8 forced = FALSE;
if(lua_gettop(L) > 1)
forced = lua_toboolean(L, 2);
duel* pduel = interpreter::get_duel_info(L); duel* pduel = interpreter::get_duel_info(L);
lua_pushboolean(L, pduel->game_field->disable_chain(c)); lua_pushboolean(L, pduel->game_field->disable_chain(c, forced));
return 1; return 1;
} }
int32 scriptlib::duel_negate_related_chain(lua_State *L) { int32 scriptlib::duel_negate_related_chain(lua_State *L) {
...@@ -4311,6 +4314,17 @@ int32 scriptlib::duel_is_chain_disablable(lua_State * L) { ...@@ -4311,6 +4314,17 @@ int32 scriptlib::duel_is_chain_disablable(lua_State * L) {
lua_pushboolean(L, 1); lua_pushboolean(L, 1);
return 1; return 1;
} }
int32 scriptlib::duel_is_chain_disabled(lua_State* L) {
check_param_count(L, 1);
int32 chaincount = (int32)lua_tointeger(L, 1);
duel* pduel = interpreter::get_duel_info(L);
if(pduel->game_field->core.chain_solving) {
lua_pushboolean(L, pduel->game_field->is_chain_disabled(chaincount));
return 1;
}
lua_pushboolean(L, 0);
return 1;
}
int32 scriptlib::duel_check_chain_target(lua_State *L) { int32 scriptlib::duel_check_chain_target(lua_State *L) {
check_param_count(L, 2); check_param_count(L, 2);
check_param(L, PARAM_TYPE_CARD, 2); check_param(L, PARAM_TYPE_CARD, 2);
...@@ -4753,6 +4767,7 @@ static const struct luaL_Reg duellib[] = { ...@@ -4753,6 +4767,7 @@ static const struct luaL_Reg duellib[] = {
{ "IsPlayerCanAdditionalSummon", scriptlib::duel_is_player_can_additional_summon }, { "IsPlayerCanAdditionalSummon", scriptlib::duel_is_player_can_additional_summon },
{ "IsChainNegatable", scriptlib::duel_is_chain_negatable }, { "IsChainNegatable", scriptlib::duel_is_chain_negatable },
{ "IsChainDisablable", scriptlib::duel_is_chain_disablable }, { "IsChainDisablable", scriptlib::duel_is_chain_disablable },
{ "IsChainDisabled", scriptlib::duel_is_chain_disabled },
{ "CheckChainTarget", scriptlib::duel_check_chain_target }, { "CheckChainTarget", scriptlib::duel_check_chain_target },
{ "CheckChainUniqueness", scriptlib::duel_check_chain_uniqueness }, { "CheckChainUniqueness", scriptlib::duel_check_chain_uniqueness },
{ "GetActivityCount", scriptlib::duel_get_activity_count }, { "GetActivityCount", scriptlib::duel_get_activity_count },
......
...@@ -269,20 +269,23 @@ int32 scriptlib::group_select_unselect(lua_State *L) { ...@@ -269,20 +269,23 @@ int32 scriptlib::group_select_unselect(lua_State *L) {
check_action_permission(L); check_action_permission(L);
check_param_count(L, 3); check_param_count(L, 3);
check_param(L, PARAM_TYPE_GROUP, 1); check_param(L, PARAM_TYPE_GROUP, 1);
check_param(L, PARAM_TYPE_GROUP, 2); group* select_group = *(group**)lua_touserdata(L, 1);
group* pgroup1 = *(group**)lua_touserdata(L, 1); group* unselect_group = 0;
group* pgroup2 = *(group**)lua_touserdata(L, 2); if(check_param(L, PARAM_TYPE_GROUP, 2, TRUE))
duel* pduel = pgroup1->pduel; unselect_group = *(group**)lua_touserdata(L, 2);
duel* pduel = select_group->pduel;
uint32 playerid = (uint32)lua_tointeger(L, 3); uint32 playerid = (uint32)lua_tointeger(L, 3);
if(playerid != 0 && playerid != 1) if(playerid != 0 && playerid != 1)
return 0; return 0;
if(pgroup1->container.size() + pgroup2->container.size() == 0) if(select_group->container.size() == 0 && (!unselect_group || unselect_group->container.size() == 0))
return 0; return 0;
for(auto it = pgroup2->container.begin(); it != pgroup2->container.end(); ++it) { if(unselect_group) {
card* pcard = *it; for(auto it = unselect_group->container.begin(); it != unselect_group->container.end(); ++it) {
for(auto it2 = pgroup1->container.begin(); it2 != pgroup1->container.end(); ++it2) { card* pcard = *it;
if((*it2) == pcard) { for(auto it2 = select_group->container.begin(); it2 != select_group->container.end(); ++it2) {
return 0; if((*it2) == pcard) {
return 0;
}
} }
} }
} }
...@@ -306,11 +309,13 @@ int32 scriptlib::group_select_unselect(lua_State *L) { ...@@ -306,11 +309,13 @@ int32 scriptlib::group_select_unselect(lua_State *L) {
min = max; min = max;
pduel->game_field->core.select_cards.clear(); pduel->game_field->core.select_cards.clear();
pduel->game_field->core.unselect_cards.clear(); pduel->game_field->core.unselect_cards.clear();
for(auto it = pgroup1->container.begin(); it != pgroup1->container.end(); ++it) { for(auto it = select_group->container.begin(); it != select_group->container.end(); ++it) {
pduel->game_field->core.select_cards.push_back(*it); pduel->game_field->core.select_cards.push_back(*it);
} }
for(auto it = pgroup2->container.begin(); it != pgroup2->container.end(); ++it) { if(unselect_group) {
pduel->game_field->core.unselect_cards.push_back(*it); for(auto it = unselect_group->container.begin(); it != unselect_group->container.end(); ++it) {
pduel->game_field->core.unselect_cards.push_back(*it);
}
} }
pduel->game_field->add_process(PROCESSOR_SELECT_UNSELECT_CARD, 0, 0, 0, playerid + (cancelable << 16), min + (max << 16), finishable); pduel->game_field->add_process(PROCESSOR_SELECT_UNSELECT_CARD, 0, 0, 0, playerid + (cancelable << 16), min + (max << 16), finishable);
return lua_yieldk(L, 0, (lua_KContext)pduel, [](lua_State *L, int32 status, lua_KContext ctx) { return lua_yieldk(L, 0, (lua_KContext)pduel, [](lua_State *L, int32 status, lua_KContext ctx) {
......
...@@ -18,32 +18,35 @@ int32 field::negate_chain(uint8 chaincount) { ...@@ -18,32 +18,35 @@ int32 field::negate_chain(uint8 chaincount) {
if(chaincount > core.current_chain.size() || chaincount < 1) if(chaincount > core.current_chain.size() || chaincount < 1)
chaincount = (uint8)core.current_chain.size(); chaincount = (uint8)core.current_chain.size();
chain& pchain = core.current_chain[chaincount - 1]; chain& pchain = core.current_chain[chaincount - 1];
card* phandler = pchain.triggering_effect->handler;
if(!(pchain.flag & CHAIN_DISABLE_ACTIVATE) && is_chain_negatable(pchain.chain_count) if(!(pchain.flag & CHAIN_DISABLE_ACTIVATE) && is_chain_negatable(pchain.chain_count)
&& pchain.triggering_effect->handler->is_affect_by_effect(core.reason_effect) ) { && (!phandler->is_has_relation(pchain) || phandler->is_affect_by_effect(core.reason_effect))) {
pchain.flag |= CHAIN_DISABLE_ACTIVATE; pchain.flag |= CHAIN_DISABLE_ACTIVATE;
pchain.disable_reason = core.reason_effect; pchain.disable_reason = core.reason_effect;
pchain.disable_player = core.reason_player; pchain.disable_player = core.reason_player;
if((pchain.triggering_effect->type & EFFECT_TYPE_ACTIVATE) && (pchain.triggering_effect->handler->current.location == LOCATION_SZONE)) { if((pchain.triggering_effect->type & EFFECT_TYPE_ACTIVATE) && (phandler->current.location == LOCATION_SZONE)) {
pchain.triggering_effect->handler->set_status(STATUS_LEAVE_CONFIRMED, TRUE); phandler->set_status(STATUS_LEAVE_CONFIRMED, TRUE);
pchain.triggering_effect->handler->set_status(STATUS_ACTIVATE_DISABLED, TRUE); phandler->set_status(STATUS_ACTIVATE_DISABLED, TRUE);
} }
pduel->write_buffer8(MSG_CHAIN_NEGATED); pduel->write_buffer8(MSG_CHAIN_NEGATED);
pduel->write_buffer8(chaincount); pduel->write_buffer8(chaincount);
if(pchain.triggering_location == LOCATION_DECK if(pchain.triggering_location == LOCATION_DECK
|| core.duel_rule >= 5 && pchain.triggering_location == LOCATION_EXTRA && (pchain.triggering_position & POS_FACEDOWN)) || core.duel_rule >= 5 && pchain.triggering_location == LOCATION_EXTRA && (pchain.triggering_position & POS_FACEDOWN))
pchain.triggering_effect->handler->release_relation(pchain); phandler->release_relation(pchain);
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
int32 field::disable_chain(uint8 chaincount) { int32 field::disable_chain(uint8 chaincount, uint8 forced) {
if(core.current_chain.size() == 0) if(core.current_chain.size() == 0)
return FALSE; return FALSE;
if(chaincount > core.current_chain.size() || chaincount < 1) if(chaincount > core.current_chain.size() || chaincount < 1)
chaincount = (uint8)core.current_chain.size(); chaincount = (uint8)core.current_chain.size();
chain& pchain = core.current_chain[chaincount - 1]; chain& pchain = core.current_chain[chaincount - 1];
card* phandler = pchain.triggering_effect->handler;
if(!(pchain.flag & CHAIN_DISABLE_EFFECT) && is_chain_disablable(pchain.chain_count) if(!(pchain.flag & CHAIN_DISABLE_EFFECT) && is_chain_disablable(pchain.chain_count)
&& pchain.triggering_effect->handler->is_affect_by_effect(core.reason_effect)) { && (!phandler->is_has_relation(pchain) || phandler->is_affect_by_effect(core.reason_effect))
&& !(phandler->is_has_relation(pchain) && phandler->is_status(STATUS_DISABLED) && !forced)) {
core.current_chain[chaincount - 1].flag |= CHAIN_DISABLE_EFFECT; core.current_chain[chaincount - 1].flag |= CHAIN_DISABLE_EFFECT;
core.current_chain[chaincount - 1].disable_reason = core.reason_effect; core.current_chain[chaincount - 1].disable_reason = core.reason_effect;
core.current_chain[chaincount - 1].disable_player = core.reason_player; core.current_chain[chaincount - 1].disable_player = core.reason_player;
...@@ -51,7 +54,7 @@ int32 field::disable_chain(uint8 chaincount) { ...@@ -51,7 +54,7 @@ int32 field::disable_chain(uint8 chaincount) {
pduel->write_buffer8(chaincount); pduel->write_buffer8(chaincount);
if(pchain.triggering_location == LOCATION_DECK if(pchain.triggering_location == LOCATION_DECK
|| core.duel_rule >= 5 && pchain.triggering_location == LOCATION_EXTRA && (pchain.triggering_position & POS_FACEDOWN)) || core.duel_rule >= 5 && pchain.triggering_location == LOCATION_EXTRA && (pchain.triggering_position & POS_FACEDOWN))
pchain.triggering_effect->handler->release_relation(pchain); phandler->release_relation(pchain);
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
...@@ -4444,9 +4447,10 @@ int32 field::move_to_field(uint16 step, card* target, uint32 enable, uint32 ret, ...@@ -4444,9 +4447,10 @@ int32 field::move_to_field(uint16 step, card* target, uint32 enable, uint32 ret,
if(is_location_useable(playerid, LOCATION_PZONE, 1)) if(is_location_useable(playerid, LOCATION_PZONE, 1))
flag |= 0x1u << (core.duel_rule >= 4 ? 12 : 15); flag |= 0x1u << (core.duel_rule >= 4 ? 12 : 15);
if(!flag) { if(!flag) {
core.units.begin()->step = 3;
if(target->current.location != LOCATION_GRAVE) if(target->current.location != LOCATION_GRAVE)
send_to(target, 0, REASON_RULE, PLAYER_NONE, PLAYER_NONE, LOCATION_GRAVE, 0, POS_FACEUP); send_to(target, 0, REASON_RULE, PLAYER_NONE, PLAYER_NONE, LOCATION_GRAVE, 0, POS_FACEUP);
return TRUE; return FALSE;
} }
if(move_player != playerid) if(move_player != playerid)
flag = flag << 16; flag = flag << 16;
...@@ -4466,9 +4470,10 @@ int32 field::move_to_field(uint16 step, card* target, uint32 enable, uint32 ret, ...@@ -4466,9 +4470,10 @@ int32 field::move_to_field(uint16 step, card* target, uint32 enable, uint32 ret,
return FALSE; return FALSE;
} }
if(ct <= 0) { if(ct <= 0) {
core.units.begin()->step = 3;
if(target->current.location != LOCATION_GRAVE) if(target->current.location != LOCATION_GRAVE)
send_to(target, 0, REASON_RULE, PLAYER_NONE, PLAYER_NONE, LOCATION_GRAVE, 0, POS_FACEUP); send_to(target, 0, REASON_RULE, PLAYER_NONE, PLAYER_NONE, LOCATION_GRAVE, 0, POS_FACEUP);
return TRUE; return FALSE;
} }
if((zone & zone - 1) == 0) { if((zone & zone - 1) == 0) {
for(uint8 seq = 0; seq < 8; seq++) { for(uint8 seq = 0; seq < 8; seq++) {
......
...@@ -226,8 +226,8 @@ int32 field::select_card(uint16 step, uint8 playerid, uint8 cancelable, uint8 mi ...@@ -226,8 +226,8 @@ int32 field::select_card(uint16 step, uint8 playerid, uint8 cancelable, uint8 mi
returns.bvalue[0] = 0; returns.bvalue[0] = 0;
if(max == 0 || core.select_cards.empty()) if(max == 0 || core.select_cards.empty())
return TRUE; return TRUE;
if(max > 63) if(max > 127)
max = 63; max = 127;
if(max > core.select_cards.size()) if(max > core.select_cards.size())
max = (uint8)core.select_cards.size(); max = (uint8)core.select_cards.size();
if(min > max) if(min > max)
...@@ -258,15 +258,15 @@ int32 field::select_card(uint16 step, uint8 playerid, uint8 cancelable, uint8 mi ...@@ -258,15 +258,15 @@ int32 field::select_card(uint16 step, uint8 playerid, uint8 cancelable, uint8 mi
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
byte c[64] = {}; std::set<int8> c;
uint8 m = (uint8)core.select_cards.size(); uint8 m = (uint8)core.select_cards.size();
for(int32 i = 0; i < returns.bvalue[0]; ++i) { for(int32 i = 0; i < returns.bvalue[0]; ++i) {
int8 v = returns.bvalue[i + 1]; int8 v = returns.bvalue[i + 1];
if(v < 0 || v >= m || v >= 63 || c[v]) { if(v < 0 || v >= m || c.count(v)) {
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
c[v] = 1; c.insert(v);
} }
return TRUE; return TRUE;
} }
...@@ -528,15 +528,15 @@ int32 field::select_tribute(uint16 step, uint8 playerid, uint8 cancelable, uint8 ...@@ -528,15 +528,15 @@ int32 field::select_tribute(uint16 step, uint8 playerid, uint8 cancelable, uint8
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
byte c[64] = {}; std::set<int8> c;
uint8 m = (uint8)core.select_cards.size(), tt = 0; uint8 m = (uint8)core.select_cards.size(), tt = 0;
for(int32 i = 0; i < returns.bvalue[0]; ++i) { for(int32 i = 0; i < returns.bvalue[0]; ++i) {
int8 v = returns.bvalue[i + 1]; int8 v = returns.bvalue[i + 1];
if(v < 0 || v >= m || c[v]) { if(v < 0 || v >= m || c.count(v)) {
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
c[v] = 1; c.insert(v);
tt += core.select_cards[v]->release_param; tt += core.select_cards[v]->release_param;
} }
if(tt < min) { if(tt < min) {
...@@ -651,7 +651,7 @@ int32 field::select_with_sum_limit(int16 step, uint8 playerid, int32 acc, int32 ...@@ -651,7 +651,7 @@ int32 field::select_with_sum_limit(int16 step, uint8 playerid, int32 acc, int32
} }
return FALSE; return FALSE;
} else { } else {
byte c[64] = {}; std::set<int32> c;
if(max) { if(max) {
int32 oparam[16]; int32 oparam[16];
int32 mcount = (int32)core.must_select_cards.size(); int32 mcount = (int32)core.must_select_cards.size();
...@@ -664,11 +664,11 @@ int32 field::select_with_sum_limit(int16 step, uint8 playerid, int32 acc, int32 ...@@ -664,11 +664,11 @@ int32 field::select_with_sum_limit(int16 step, uint8 playerid, int32 acc, int32
int32 m = (int32)core.select_cards.size(); int32 m = (int32)core.select_cards.size();
for(int32 i = mcount; i < returns.bvalue[0]; ++i) { for(int32 i = mcount; i < returns.bvalue[0]; ++i) {
int32 v = returns.bvalue[i + 1]; int32 v = returns.bvalue[i + 1];
if(v < 0 || v >= m || c[v]) { if(v < 0 || v >= m || c.count(v)) {
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
c[v] = 1; c.insert(v);
oparam[i] = core.select_cards[v]->sum_param; oparam[i] = core.select_cards[v]->sum_param;
} }
if(!select_sum_check1(oparam, returns.bvalue[0], 0, acc, 0xffff)) { if(!select_sum_check1(oparam, returns.bvalue[0], 0, acc, 0xffff)) {
...@@ -692,11 +692,11 @@ int32 field::select_with_sum_limit(int16 step, uint8 playerid, int32 acc, int32 ...@@ -692,11 +692,11 @@ int32 field::select_with_sum_limit(int16 step, uint8 playerid, int32 acc, int32
int32 m = (int32)core.select_cards.size(); int32 m = (int32)core.select_cards.size();
for(int32 i = mcount; i < returns.bvalue[0]; ++i) { for(int32 i = mcount; i < returns.bvalue[0]; ++i) {
int32 v = returns.bvalue[i + 1]; int32 v = returns.bvalue[i + 1];
if(v < 0 || v >= m || c[v]) { if(v < 0 || v >= m || c.count(v)) {
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
c[v] = 1; c.insert(v);
int32 op = core.select_cards[v]->sum_param; int32 op = core.select_cards[v]->sum_param;
int32 o1 = op & 0xffff; int32 o1 = op & 0xffff;
int32 o2 = op >> 16; int32 o2 = op >> 16;
...@@ -737,15 +737,15 @@ int32 field::sort_card(int16 step, uint8 playerid) { ...@@ -737,15 +737,15 @@ int32 field::sort_card(int16 step, uint8 playerid) {
} else { } else {
if(returns.bvalue[0] == -1) if(returns.bvalue[0] == -1)
return TRUE; return TRUE;
byte c[64] = {}; std::set<int8> c;
uint8 m = (uint8)core.select_cards.size(); uint8 m = (uint8)core.select_cards.size();
for(uint8 i = 0; i < m; ++i) { for(uint8 i = 0; i < m; ++i) {
int8 v = returns.bvalue[i]; int8 v = returns.bvalue[i];
if(v < 0 || v >= m || c[v]) { if(v < 0 || v >= m || c.count(v)) {
pduel->write_buffer8(MSG_RETRY); pduel->write_buffer8(MSG_RETRY);
return FALSE; return FALSE;
} }
c[v] = 1; c.insert(v);
} }
return TRUE; return TRUE;
} }
......
...@@ -3839,6 +3839,8 @@ int32 field::process_turn(uint16 step, uint8 turn_player) { ...@@ -3839,6 +3839,8 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
return FALSE; return FALSE;
} }
case 10: { case 10: {
if(core.new_fchain.size() || core.new_ochain.size())
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, 0, 0);
add_process(PROCESSOR_PHASE_EVENT, 0, 0, 0, PHASE_BATTLE_START, 0); add_process(PROCESSOR_PHASE_EVENT, 0, 0, 0, PHASE_BATTLE_START, 0);
return FALSE; return FALSE;
} }
......
...@@ -582,6 +582,7 @@ public: ...@@ -582,6 +582,7 @@ public:
static int32 duel_is_player_can_additional_summon(lua_State *L); static int32 duel_is_player_can_additional_summon(lua_State *L);
static int32 duel_is_chain_negatable(lua_State *L); static int32 duel_is_chain_negatable(lua_State *L);
static int32 duel_is_chain_disablable(lua_State *L); static int32 duel_is_chain_disablable(lua_State *L);
static int32 duel_is_chain_disabled(lua_State *L);
static int32 duel_check_chain_target(lua_State *L); static int32 duel_check_chain_target(lua_State *L);
static int32 duel_check_chain_uniqueness(lua_State *L); static int32 duel_check_chain_uniqueness(lua_State *L);
static int32 duel_get_activity_count(lua_State *L); static int32 duel_get_activity_count(lua_State *L);
......
...@@ -16,15 +16,24 @@ ...@@ -16,15 +16,24 @@
特别感谢: 尸体233,废话多,大毛,幻兽L 的支持与努力. 特别感谢: 尸体233,废话多,大毛,幻兽L 的支持与努力.
</pre> </pre>
<ul> <ul>
<li style="color:#ffff00">3.9.7</li> <li style="color:#ffff00">3.9.8</li>
</ul> </ul>
<pre> <pre>
更新: 更新:
1.更新ygo内核; 1.更新ygo内核;
2.新卡1109+KC01+VJ; 2.新卡DP27+VP22+T1108+AC02+VJ;
3.2022-7-1OCG禁卡表;
4.2022-5-17TCG禁卡表;
变更: 变更:
1.修正搜索关键词和卡名一致的卡不会置顶的问题; 1.修复bot一些出牌问题;
2.先行卡覆盖时删除旧的卡组展示文件; 2.先行卡覆盖时删除旧的卡组展示文件;
3.修复卡组码保存卡组后无法刷新的问题;
4.竖屏卡组管理
·增加显示主卡组第一张卡预览;
·增加是否符合最新禁卡表标识;
·增加是否含有先行卡标识;
·增加主卡额外副卡统计数量;
·增加主卡数量不够的高亮显示;
</pre> </pre>
<h3 style="color:#ff0000">注意</h3> <h3 style="color:#ff0000">注意</h3>
<pre> <pre>
......
This diff is collapsed.
...@@ -268,6 +268,7 @@ ...@@ -268,6 +268,7 @@
!system 1190 加入手卡 !system 1190 加入手卡
!system 1191 送去墓地 !system 1191 送去墓地
!system 1192 除外 !system 1192 除外
!system 1193 回到卡组
#menu #menu
!system 1200 本地联机 !system 1200 本地联机
!system 1201 单人游戏 !system 1201 单人游戏
...@@ -642,6 +643,8 @@ ...@@ -642,6 +643,8 @@
!counter 0x60 指示物(北极天熊辐射) !counter 0x60 指示物(北极天熊辐射)
!counter 0x61 指示物(命运的囚人) !counter 0x61 指示物(命运的囚人)
!counter 0x62 指示物(逐渐削减的生命) !counter 0x62 指示物(逐渐削减的生命)
!counter 0x1063 幻觉指示物
!counter 0x64 G石人指示物
#setnames, using tab for comment #setnames, using tab for comment
!setname 0x1 正义盟军 AOJ !setname 0x1 正义盟军 AOJ
!setname 0x2 次世代 ジェネクス !setname 0x2 次世代 ジェネクス
...@@ -717,6 +720,7 @@ ...@@ -717,6 +720,7 @@
!setname 0x34 宝玉 宝玉 !setname 0x34 宝玉 宝玉
!setname 0x1034 宝玉兽 宝玉獣 !setname 0x1034 宝玉兽 宝玉獣
!setname 0x2034 究极宝玉神 究極宝玉神 !setname 0x2034 究极宝玉神 究極宝玉神
!setname 0x5034 高等宝玉兽 A宝玉獣
!setname 0x35 魔轰神 魔轟神 !setname 0x35 魔轰神 魔轟神
!setname 0x36 机甲 マシンナーズ !setname 0x36 机甲 マシンナーズ
!setname 0x37 霞之谷 霞の谷 !setname 0x37 霞之谷 霞の谷
...@@ -1142,3 +1146,7 @@ ...@@ -1142,3 +1146,7 @@
!setname 0x182 春化精 !setname 0x182 春化精
!setname 0x183 悠悠 もけもけ !setname 0x183 悠悠 もけもけ
!setname 0x184 翼侠 ウィングマン !setname 0x184 翼侠 ウィングマン
#setname 0x185 涂鸦 らくがき
!setname 0x1185 涂鸦兽 らくがきじゅう
!setname 0x2185 涂鸦本 らくがきちょう
!setname 0x186 G石人 Gゴーレム
...@@ -333,7 +333,8 @@ ...@@ -333,7 +333,8 @@
!system 1280 BGM !system 1280 BGM
!system 1281 Automatically switch BGM !system 1281 Automatically switch BGM
!system 1283 Drawing field spell !system 1283 Drawing field spell
!system 1287 Always showing single chain !system 1287 Show Chain 1
!system 1288 Ban List
!system 1290 Disable Chatting !system 1290 Disable Chatting
!system 1291 Mute spectators !system 1291 Mute spectators
!system 1292 Ignore chain !system 1292 Ignore chain
...@@ -547,7 +548,7 @@ ...@@ -547,7 +548,7 @@
!victory 0x1f Victory by the effect of Exodia, Master of The Guard !victory 0x1f Victory by the effect of Exodia, Master of The Guard
!victory 0x20 Victory by the effect of True Exodia !victory 0x20 Victory by the effect of True Exodia
!victory 0x21 Victory by the effect of Number iC1000: Numerounius Numerounia !victory 0x21 Victory by the effect of Number iC1000: Numerounius Numerounia
!victory 0x22 Victory by the effect of Sekitori - Musomaru !victory 0x22 Victory by the effect of Musical Sumo Dice Games
!victory 0xffff Match victory by the effect of 「%ls !victory 0xffff Match victory by the effect of 「%ls
#counters #counters
!counter 0x1 Spell Counter !counter 0x1 Spell Counter
...@@ -642,6 +643,8 @@ ...@@ -642,6 +643,8 @@
!counter 0x60 Counter(Ursarctic Radiation) !counter 0x60 Counter(Ursarctic Radiation)
!counter 0x61 Counter(Prisoner of Destiny) !counter 0x61 Counter(Prisoner of Destiny)
!counter 0x62 Counter(Life Shaver) !counter 0x62 Counter(Life Shaver)
!counter 0x1063 Hallucination Counter
!counter 0x64 G Golem Counter
#setnames, using tab for comment #setnames, using tab for comment
!setname 0x1 Ally of Justice !setname 0x1 Ally of Justice
!setname 0x2 Genex !setname 0x2 Genex
...@@ -714,6 +717,7 @@ ...@@ -714,6 +717,7 @@
!setname 0x34 Crystal !setname 0x34 Crystal
!setname 0x1034 Crystal Beast !setname 0x1034 Crystal Beast
!setname 0x2034 Ultimate Crystal !setname 0x2034 Ultimate Crystal
!setname 0x5034 Advanced Crystal Beast
!setname 0x35 Fabled !setname 0x35 Fabled
!setname 0x1035 The Fabled !setname 0x1035 The Fabled
!setname 0x36 Machina !setname 0x36 Machina
...@@ -1122,7 +1126,7 @@ ...@@ -1122,7 +1126,7 @@
!setname 0x176 Barian's !setname 0x176 Barian's
!setname 0x177 Kairyu-Shin !setname 0x177 Kairyu-Shin
!setname 0x178 Sea Stealth !setname 0x178 Sea Stealth
!setname 0x179 Therions !setname 0x179 Therion
!setname 0x17a Scareclaw !setname 0x17a Scareclaw
!setname 0x17b Battleguard !setname 0x17b Battleguard
!setname 0x17c Libromancer !setname 0x17c Libromancer
...@@ -1134,4 +1138,8 @@ ...@@ -1134,4 +1138,8 @@
!setname 0x181 Tearalaments !setname 0x181 Tearalaments
!setname 0x182 Vernalizer Fairy !setname 0x182 Vernalizer Fairy
!setname 0x183 Mokey Mokey !setname 0x183 Mokey Mokey
!setname 0x184 Wingman !setname 0x184 Wingman
\ No newline at end of file #setname 0x185 Doodle
!setname 0x1185 Doodle Beast
!setname 0x2185 Doodlebook
!setname 0x186 G Golem
\ No newline at end of file
...@@ -373,7 +373,7 @@ ...@@ -373,7 +373,7 @@
!system 1326 효과 !system 1326 효과
!system 1327 모든 검색 !system 1327 모든 검색
!system 1328 관리 !system 1328 관리
!system 1329 카드군: !system 1329 카드군:
!system 1330 메인: !system 1330 메인:
!system 1331 엑스트라: !system 1331 엑스트라:
!system 1332 사이드: !system 1332 사이드:
...@@ -642,6 +642,7 @@ ...@@ -642,6 +642,7 @@
!counter 0x5f 피스 카운터 !counter 0x5f 피스 카운터
!counter 0x60 카운터(베어루크티 라디에이션) !counter 0x60 카운터(베어루크티 라디에이션)
!counter 0x61 카운터(운명의 수인(囚人)) !counter 0x61 카운터(운명의 수인(囚人))
!counter 0x62 카운터(꺼져가는 생명)
#setnames, using tab for comment #setnames, using tab for comment
!setname 0x1 얼리 오브 저스티스(정발명:A·O·J) !setname 0x1 얼리 오브 저스티스(정발명:A·O·J)
!setname 0x2 제넥스 !setname 0x2 제넥스
...@@ -1130,13 +1131,13 @@ ...@@ -1130,13 +1131,13 @@
!setname 0x177 리바이어던 !setname 0x177 리바이어던
!setname 0x178 씨 스텔스 !setname 0x178 씨 스텔스
!setname 0x179 세리온즈 !setname 0x179 세리온즈
!setname 0x17a 스케어클로 !setname 0x17a 스케어클로
!setname 0x17b 바바리안 !setname 0x17b 바바리안
!setname 0x17c 리브로맨서(Libromancer) !setname 0x17c 리브로맨서(Libromancer)
!setname 0x17d 발리안 !setname 0x17d 밸리언
!setname 0x17e 라뷰린스 !setname 0x17e 라뷰린스
!setname 0x117e 웰컴 라뷰린스 !setname 0x117e 웰컴 라뷰린스
!setname 0x17f 룬(미스터룬) !setname 0x17f 루닉
!setname 0x180 스프라이트 !setname 0x180 스프라이트
!setname 0x181 티아라멘츠 !setname 0x181 티아라멘츠
!setname 0x182 춘화정 !setname 0x182 춘화정
......
...@@ -9,8 +9,8 @@ android { ...@@ -9,8 +9,8 @@ android {
minSdkVersion 21 minSdkVersion 21
//noinspection ExpiredTargetSdkVersion //noinspection ExpiredTargetSdkVersion
targetSdkVersion 29 targetSdkVersion 29
versionCode 390700430 versionCode 390800618
versionName "3.9.7" versionName "3.9.8"
flavorDimensions "versionCode" flavorDimensions "versionCode"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
ndk { ndk {
......
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