Commit 28734ebf authored by nanahira's avatar nanahira

update EFFECT_ALLOW_SYNCHRO_KOISHI

parent 21516d9a
...@@ -1069,14 +1069,15 @@ uint32_t card::get_link() { ...@@ -1069,14 +1069,15 @@ uint32_t card::get_link() {
uint32_t card::get_synchro_level(card* pcard) { uint32_t card::get_synchro_level(card* pcard) {
if((data.type & (TYPE_XYZ | TYPE_LINK)) || (status & STATUS_NO_LEVEL)) if((data.type & (TYPE_XYZ | TYPE_LINK)) || (status & STATUS_NO_LEVEL))
{ {
uint32_t lev;
effect_set eset; effect_set eset;
filter_effect(EFFECT_ALLOW_SYNCHRO_KOISHI, &eset); filter_effect(EFFECT_ALLOW_SYNCHRO_KOISHI, &eset);
if(eset.size()) for(int32_t i = 0; i < eset.size(); ++i) {
lev = eset[0]->get_value(pcard); uint32_t lev = eset[i]->get_value(pcard);
else if(lev) {
lev = 0; return lev;
return lev; }
}
return 0;
} }
//return 0; //return 0;
uint32_t lev; uint32_t lev;
...@@ -4217,7 +4218,19 @@ int32_t card::is_can_be_fusion_material(card* fcard, uint32_t summon_type) { ...@@ -4217,7 +4218,19 @@ int32_t card::is_can_be_fusion_material(card* fcard, uint32_t summon_type) {
} }
int32_t card::is_can_be_synchro_material(card* scard, card* tuner) { int32_t card::is_can_be_synchro_material(card* scard, card* tuner) {
//support urara //support urara
if(data.type & (TYPE_XYZ | TYPE_LINK) && !is_affected_by_effect(EFFECT_ALLOW_SYNCHRO_KOISHI)) effect_set eset;
if(data.type & (TYPE_XYZ | TYPE_LINK)) {
filter_effect(EFFECT_ALLOW_SYNCHRO_KOISHI, &eset);
auto found = FALSE;
for(int32_t i = 0; i < eset.size(); ++i) {
if(eset[i]->get_value(scard)) {
found = TRUE;
break;
}
}
if(!found)
return FALSE;
}
return FALSE; return FALSE;
if(!(get_synchro_type() & TYPE_MONSTER)) if(!(get_synchro_type() & TYPE_MONSTER))
return FALSE; return FALSE;
...@@ -4228,7 +4241,7 @@ int32_t card::is_can_be_synchro_material(card* scard, card* tuner) { ...@@ -4228,7 +4241,7 @@ int32_t card::is_can_be_synchro_material(card* scard, card* tuner) {
if(is_affected_by_effect(EFFECT_SCRAP_CHIMERA, tuner)) if(is_affected_by_effect(EFFECT_SCRAP_CHIMERA, tuner))
return false; return false;
} }
effect_set eset; eset.clear();
filter_effect(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL, &eset); filter_effect(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL, &eset);
for(int32_t i = 0; i < eset.size(); ++i) for(int32_t i = 0; i < eset.size(); ++i)
if(eset[i]->get_value(scard)) if(eset[i]->get_value(scard))
......
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