Commit 86b2cb09 authored by DailyShana's avatar DailyShana

support multiple EFFECT_XYZ_LEVEL

parent 64f34892
...@@ -980,22 +980,23 @@ uint32 card::get_ritual_level(card* pcard) { ...@@ -980,22 +980,23 @@ uint32 card::get_ritual_level(card* pcard) {
uint32 card::check_xyz_level(card* pcard, uint32 lv) { uint32 card::check_xyz_level(card* pcard, uint32 lv) {
if(status & STATUS_NO_LEVEL) if(status & STATUS_NO_LEVEL)
return 0; return 0;
uint32 lev;
effect_set eset; effect_set eset;
filter_effect(EFFECT_XYZ_LEVEL, &eset); filter_effect(EFFECT_XYZ_LEVEL, &eset);
if(!eset.size()) { if(!eset.size()) {
lev = get_level(); uint32 lev = get_level();
if(lev == lv) if(lev == lv)
return lev; return lev;
return 0; return 0;
} }
pduel->lua->add_param(this, PARAM_TYPE_CARD); for(int32 i = 0; i < eset.size(); ++i) {
pduel->lua->add_param(pcard, PARAM_TYPE_CARD); pduel->lua->add_param(this, PARAM_TYPE_CARD);
lev = eset[0]->get_value(2); pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
if(((lev & 0xfff) == lv)) uint32 lev = eset[i]->get_value(2);
return lev & 0xffff; if(((lev & 0xfff) == lv))
if(((lev >> 16) & 0xfff) == lv) return lev & 0xffff;
return (lev >> 16) & 0xffff; if(((lev >> 16) & 0xfff) == lv)
return (lev >> 16) & 0xffff;
}
return 0; return 0;
} }
// see get_level() // see get_level()
......
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