Skip to content

Commit 005b600

Browse files
authored
fix special_summon_rule fail didn't clear core.limit_* (#817)
1 parent 01586d9 commit 005b600

1 file changed

Lines changed: 29 additions & 4 deletions

File tree

operations.cpp

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2708,8 +2708,10 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
27082708
info.limit_link_maxc = core.limit_link_maxc;
27092709
target->filter_spsummon_procedure(sumplayer, &eset, summon_type, info);
27102710
target->filter_spsummon_procedure_g(sumplayer, &eset);
2711-
if(!eset.size())
2712-
return TRUE;
2711+
if(!eset.size()) {
2712+
core.units.begin()->step = 17;
2713+
return FALSE;
2714+
}
27132715
core.select_effects.clear();
27142716
core.select_options.clear();
27152717
for(effect_set::size_type i = 0; i < eset.size(); ++i) {
@@ -2759,8 +2761,10 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
27592761
return FALSE;
27602762
}
27612763
case 2: {
2762-
if(!returns.ivalue[0])
2763-
return TRUE;
2764+
if(!returns.ivalue[0]) {
2765+
core.units.begin()->step = 17;
2766+
return FALSE;
2767+
}
27642768
effect_set eset;
27652769
target->filter_effect(EFFECT_SPSUMMON_COST, &eset);
27662770
if(eset.size()) {
@@ -2982,6 +2986,27 @@ int32_t field::special_summon_rule(uint16_t step, uint8_t sumplayer, card* targe
29822986
}
29832987
return TRUE;
29842988
}
2989+
case 18: {
2990+
if(core.limit_tuner) {
2991+
core.limit_tuner = 0;
2992+
}
2993+
if(core.limit_syn) {
2994+
pduel->delete_group(core.limit_syn);
2995+
core.limit_syn = 0;
2996+
}
2997+
if(core.limit_xyz) {
2998+
pduel->delete_group(core.limit_xyz);
2999+
core.limit_xyz = 0;
3000+
}
3001+
if(core.limit_link_card) {
3002+
core.limit_link_card = 0;
3003+
}
3004+
if(core.limit_link) {
3005+
pduel->delete_group(core.limit_link);
3006+
core.limit_link = 0;
3007+
}
3008+
return TRUE;
3009+
}
29853010
case 20: {
29863011
// EFFECT_SPSUMMON_PROC_G (Pendulum Summon)
29873012
effect* peffect = core.units.begin()->peffect;

0 commit comments

Comments
 (0)