Commit 4e129d3c authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:moecube/ygopro-core into develop

parents 5b0b45a2 4e93b278
Pipeline #43079 passed with stages
in 4 minutes and 38 seconds
......@@ -284,6 +284,8 @@ enum effect_category : uint64_t {
CATEGORY_ANNOUNCE = 0x20000000,
CATEGORY_FUSION_SUMMON = 0x40000000,
CATEGORY_TOEXTRA = 0x80000000,
CATEGORY_MSET = 0x100000000,
CATEGORY_SSET = 0x200000000,
};
const std::map<uint64_t, uint64_t> category_checklist{
......
......@@ -2733,8 +2733,10 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
info.limit_link_maxc = core.limit_link_maxc;
target->filter_spsummon_procedure(sumplayer, &eset, summon_type, info);
target->filter_spsummon_procedure_g(sumplayer, &eset);
if(!eset.size())
return TRUE;
if(!eset.size()) {
core.units.begin()->step = 17;
return FALSE;
}
core.select_effects.clear();
core.select_options.clear();
for(effect_set::size_type i = 0; i < eset.size(); ++i) {
......@@ -2784,8 +2786,10 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
return FALSE;
}
case 2: {
if(!returns.ivalue[0])
return TRUE;
if(!returns.ivalue[0]) {
core.units.begin()->step = 17;
return FALSE;
}
effect_set eset;
target->filter_effect(EFFECT_SPSUMMON_COST, &eset);
if(eset.size()) {
......@@ -3011,6 +3015,27 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
}
return TRUE;
}
case 18: {
if(core.limit_tuner) {
core.limit_tuner = 0;
}
if(core.limit_syn) {
pduel->delete_group(core.limit_syn);
core.limit_syn = 0;
}
if(core.limit_xyz) {
pduel->delete_group(core.limit_xyz);
core.limit_xyz = 0;
}
if(core.limit_link_card) {
core.limit_link_card = 0;
}
if(core.limit_link) {
pduel->delete_group(core.limit_link);
core.limit_link = 0;
}
return TRUE;
}
case 20: {
// EFFECT_SPSUMMON_PROC_G (Pendulum Summon)
effect* peffect = core.units.begin()->peffect;
......@@ -5361,6 +5386,14 @@ int32_t field::select_synchro_material(int16_t step, uint8_t playerid, card* pca
case 0: {
if(core.select_cards.size() == 0)
return TRUE;
if(core.summon_cancelable == FALSE && mg && min == max && mg->container.size() == min + 1) {
group* pgroup = pduel->new_group();
pgroup->container.insert(mg->container.begin(), mg->container.end());
pduel->lua->add_param(pgroup, PARAM_TYPE_GROUP);
pduel->restore_assumes();
core.limit_tuner = 0;
return TRUE;
}
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG);
pduel->write_buffer8(playerid);
......
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