Skip to content

Commit 4e129d3

Browse files
Merge branch 'master' of github.com:moecube/ygopro-core into develop
2 parents 5b0b45a + 4e93b27 commit 4e129d3

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

effect.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,8 @@ enum effect_category : uint64_t {
284284
CATEGORY_ANNOUNCE = 0x20000000,
285285
CATEGORY_FUSION_SUMMON = 0x40000000,
286286
CATEGORY_TOEXTRA = 0x80000000,
287+
CATEGORY_MSET = 0x100000000,
288+
CATEGORY_SSET = 0x200000000,
287289
};
288290

289291
const std::map<uint64_t, uint64_t> category_checklist{

operations.cpp

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2733,8 +2733,10 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
27332733
info.limit_link_maxc = core.limit_link_maxc;
27342734
target->filter_spsummon_procedure(sumplayer, &eset, summon_type, info);
27352735
target->filter_spsummon_procedure_g(sumplayer, &eset);
2736-
if(!eset.size())
2737-
return TRUE;
2736+
if(!eset.size()) {
2737+
core.units.begin()->step = 17;
2738+
return FALSE;
2739+
}
27382740
core.select_effects.clear();
27392741
core.select_options.clear();
27402742
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
27842786
return FALSE;
27852787
}
27862788
case 2: {
2787-
if(!returns.ivalue[0])
2788-
return TRUE;
2789+
if(!returns.ivalue[0]) {
2790+
core.units.begin()->step = 17;
2791+
return FALSE;
2792+
}
27892793
effect_set eset;
27902794
target->filter_effect(EFFECT_SPSUMMON_COST, &eset);
27912795
if(eset.size()) {
@@ -3011,6 +3015,27 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
30113015
}
30123016
return TRUE;
30133017
}
3018+
case 18: {
3019+
if(core.limit_tuner) {
3020+
core.limit_tuner = 0;
3021+
}
3022+
if(core.limit_syn) {
3023+
pduel->delete_group(core.limit_syn);
3024+
core.limit_syn = 0;
3025+
}
3026+
if(core.limit_xyz) {
3027+
pduel->delete_group(core.limit_xyz);
3028+
core.limit_xyz = 0;
3029+
}
3030+
if(core.limit_link_card) {
3031+
core.limit_link_card = 0;
3032+
}
3033+
if(core.limit_link) {
3034+
pduel->delete_group(core.limit_link);
3035+
core.limit_link = 0;
3036+
}
3037+
return TRUE;
3038+
}
30143039
case 20: {
30153040
// EFFECT_SPSUMMON_PROC_G (Pendulum Summon)
30163041
effect* peffect = core.units.begin()->peffect;
@@ -5361,6 +5386,14 @@ int32_t field::select_synchro_material(int16_t step, uint8_t playerid, card* pca
53615386
case 0: {
53625387
if(core.select_cards.size() == 0)
53635388
return TRUE;
5389+
if(core.summon_cancelable == FALSE && mg && min == max && mg->container.size() == min + 1) {
5390+
group* pgroup = pduel->new_group();
5391+
pgroup->container.insert(mg->container.begin(), mg->container.end());
5392+
pduel->lua->add_param(pgroup, PARAM_TYPE_GROUP);
5393+
pduel->restore_assumes();
5394+
core.limit_tuner = 0;
5395+
return TRUE;
5396+
}
53645397
pduel->write_buffer8(MSG_HINT);
53655398
pduel->write_buffer8(HINT_SELECTMSG);
53665399
pduel->write_buffer8(playerid);

0 commit comments

Comments
 (0)