Commit d233210f authored by Uytrewq's avatar Uytrewq Committed by GitHub

fix check_tuner_material, select_synchro_material (#513)

parent 6d842e3c
......@@ -2656,10 +2656,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
pduel->restore_assumes();
return FALSE;
}
if(ptuner && ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(smat, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) {
if(ptuner) {
if(ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(smat, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) {
pduel->restore_assumes();
return FALSE;
}
}
if(ptuner->value && !(smat->current.location & location)) {
pduel->restore_assumes();
return FALSE;
}
......@@ -2701,10 +2707,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
pduel->restore_assumes();
return FALSE;
}
if(ptuner && ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(mcard, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) {
if(ptuner) {
if(ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(mcard, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) {
pduel->restore_assumes();
return FALSE;
}
}
if(ptuner->value && !(mcard->current.location & location)) {
pduel->restore_assumes();
return FALSE;
}
......@@ -2720,10 +2732,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
for(auto& pm : mg->container) {
if(pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner))
continue;
if(ptuner && ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2))
if(ptuner) {
if(ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2))
continue;
}
if(ptuner->value && !(pm->current.location & location))
continue;
}
if(pcheck)
......
......@@ -5388,10 +5388,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
for(auto& pm : mg->container) {
if(pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner))
continue;
if(ptuner && ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2))
if(ptuner) {
if(ptuner->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2))
continue;
}
if(ptuner->value && !(pm->current.location & location))
continue;
}
if(pcheck)
......
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