Commit aa1d5bb5 authored by DailyShana's avatar DailyShana

multiple EFFECT_LIMIT_SUMMON_PROC

parent b857b1da
...@@ -1520,17 +1520,14 @@ void card::filter_disable_related_cards() { ...@@ -1520,17 +1520,14 @@ void card::filter_disable_related_cards() {
} }
int32 card::filter_summon_procedure(uint8 playerid, effect_set* peset, uint8 ignore_count, uint8 min_tribute) { int32 card::filter_summon_procedure(uint8 playerid, effect_set* peset, uint8 ignore_count, uint8 min_tribute) {
effect_set eset; effect_set eset;
effect* proc;
filter_effect(EFFECT_LIMIT_SUMMON_PROC, &eset); filter_effect(EFFECT_LIMIT_SUMMON_PROC, &eset);
if(eset.size() > 1) for(int32 i = 0; i < eset.size(); ++i)
return FALSE; if(eset[i]->check_count_limit(playerid) && is_summonable(eset[i], min_tribute)
&& pduel->game_field->is_player_can_summon(eset[i]->get_value(this), playerid, this))
peset->add_item(eset[i]);
if(eset.size()) { if(eset.size()) {
proc = eset[0]; if(peset->size())
if(proc->check_count_limit(playerid) && is_summonable(proc, min_tribute)
&& pduel->game_field->is_player_can_summon(proc->get_value(this), playerid, this)) {
peset->add_item(eset[0]);
return -1; return -1;
}
return -2; return -2;
} }
eset.clear(); eset.clear();
...@@ -1563,17 +1560,14 @@ int32 card::filter_summon_procedure(uint8 playerid, effect_set* peset, uint8 ign ...@@ -1563,17 +1560,14 @@ int32 card::filter_summon_procedure(uint8 playerid, effect_set* peset, uint8 ign
} }
int32 card::filter_set_procedure(uint8 playerid, effect_set* peset, uint8 ignore_count, uint8 min_tribute) { int32 card::filter_set_procedure(uint8 playerid, effect_set* peset, uint8 ignore_count, uint8 min_tribute) {
effect_set eset; effect_set eset;
effect* proc;
filter_effect(EFFECT_LIMIT_SET_PROC, &eset); filter_effect(EFFECT_LIMIT_SET_PROC, &eset);
if(eset.size() > 1) for(int32 i = 0; i < eset.size(); ++i)
return FALSE; if(eset[i]->check_count_limit(playerid) && is_summonable(eset[i], min_tribute)
&& pduel->game_field->is_player_can_mset(eset[i]->get_value(this), playerid, this))
peset->add_item(eset[i]);
if(eset.size()) { if(eset.size()) {
proc = eset[0]; if(peset->size())
if(proc->check_count_limit(playerid) && is_summonable(proc, min_tribute)
&& pduel->game_field->is_player_can_mset(proc->get_value(this), playerid, this)) {
peset->add_item(eset[0]);
return -1; return -1;
}
return -2; return -2;
} }
eset.clear(); eset.clear();
......
...@@ -1201,14 +1201,9 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc, ...@@ -1201,14 +1201,9 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc,
core.units.begin()->step = 3; core.units.begin()->step = 3;
return FALSE; return FALSE;
} }
if(res == -1) {
core.units.begin()->peffect = eset[0];
core.units.begin()->step = 3;
return FALSE;
}
core.select_effects.clear(); core.select_effects.clear();
core.select_options.clear(); core.select_options.clear();
if(res) { if(res > 0) {
core.select_effects.push_back(0); core.select_effects.push_back(0);
core.select_options.push_back(1); core.select_options.push_back(1);
} }
...@@ -1694,14 +1689,9 @@ int32 field::mset(uint16 step, uint8 setplayer, card * target, effect * proc, ui ...@@ -1694,14 +1689,9 @@ int32 field::mset(uint16 step, uint8 setplayer, card * target, effect * proc, ui
core.units.begin()->step = 3; core.units.begin()->step = 3;
return FALSE; return FALSE;
} }
if(res == -1) {
core.units.begin()->peffect = eset[0];
core.units.begin()->step = 3;
return FALSE;
}
core.select_effects.clear(); core.select_effects.clear();
core.select_options.clear(); core.select_options.clear();
if(res) { if(res > 0) {
core.select_effects.push_back(0); core.select_effects.push_back(0);
core.select_options.push_back(1); core.select_options.push_back(1);
} }
......
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