Commit 9d6759f0 authored by mercury233's avatar mercury233 Committed by mercury233

rename ptuner to tuner_limit

parent ad00f8bf
...@@ -2536,9 +2536,9 @@ int32 field::check_must_material(group* mg, uint8 playerid, uint32 limit) { ...@@ -2536,9 +2536,9 @@ int32 field::check_must_material(group* mg, uint8 playerid, uint32 limit) {
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
void field::get_synchro_material(uint8 playerid, card_set* material, effect* ptuner) { void field::get_synchro_material(uint8 playerid, card_set* material, effect* tuner_limit) {
if(ptuner && ptuner->value) { if(tuner_limit && tuner_limit->value) {
int32 location = ptuner->value; int32 location = tuner_limit->value;
if(location & LOCATION_MZONE) { if(location & LOCATION_MZONE) {
for(auto& pcard : player[playerid].list_mzone) { for(auto& pcard : player[playerid].list_mzone) {
if(pcard && !pcard->is_treated_as_not_on_field()) if(pcard && !pcard->is_treated_as_not_on_field())
...@@ -2629,15 +2629,15 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 ...@@ -2629,15 +2629,15 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
++ct; ++ct;
} }
int32 location = LOCATION_MZONE; int32 location = LOCATION_MZONE;
effect* ptuner = tuner->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT); effect* tuner_limit = tuner->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT);
if(ptuner) { if(tuner_limit) {
if(ptuner->value) if(tuner_limit->value)
location = ptuner->value; location = tuner_limit->value;
if(ptuner->is_flag(EFFECT_FLAG_SPSUM_PARAM)) { if(tuner_limit->is_flag(EFFECT_FLAG_SPSUM_PARAM)) {
if(ptuner->s_range && ptuner->s_range > min) if(tuner_limit->s_range && tuner_limit->s_range > min)
min = ptuner->s_range; min = tuner_limit->s_range;
if(ptuner->o_range && ptuner->o_range < max) if(tuner_limit->o_range && tuner_limit->o_range < max)
max = ptuner->o_range; max = tuner_limit->o_range;
} }
if(min > max) { if(min > max) {
pduel->restore_assumes(); pduel->restore_assumes();
...@@ -2670,16 +2670,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 ...@@ -2670,16 +2670,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
pduel->restore_assumes(); pduel->restore_assumes();
return FALSE; return FALSE;
} }
if(ptuner) { if(tuner_limit) {
if(ptuner->target) { if(tuner_limit->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT); pduel->lua->add_param(tuner_limit, PARAM_TYPE_EFFECT);
pduel->lua->add_param(smat, PARAM_TYPE_CARD); pduel->lua->add_param(smat, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) { if(!pduel->lua->get_function_value(tuner_limit->target, 2)) {
pduel->restore_assumes(); pduel->restore_assumes();
return FALSE; return FALSE;
} }
} }
if(ptuner->value && !(smat->current.location & location)) { if(tuner_limit->value && !(smat->current.location & location)) {
pduel->restore_assumes(); pduel->restore_assumes();
return FALSE; return FALSE;
} }
...@@ -2721,16 +2721,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 ...@@ -2721,16 +2721,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
pduel->restore_assumes(); pduel->restore_assumes();
return FALSE; return FALSE;
} }
if(ptuner) { if(tuner_limit) {
if(ptuner->target) { if(tuner_limit->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT); pduel->lua->add_param(tuner_limit, PARAM_TYPE_EFFECT);
pduel->lua->add_param(mcard, PARAM_TYPE_CARD); pduel->lua->add_param(mcard, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) { if(!pduel->lua->get_function_value(tuner_limit->target, 2)) {
pduel->restore_assumes(); pduel->restore_assumes();
return FALSE; return FALSE;
} }
} }
if(ptuner->value && !(mcard->current.location & location)) { if(tuner_limit->value && !(mcard->current.location & location)) {
pduel->restore_assumes(); pduel->restore_assumes();
return FALSE; return FALSE;
} }
...@@ -2746,14 +2746,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 ...@@ -2746,14 +2746,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
for(auto& pm : mg->container) { 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)) if(pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner))
continue; continue;
if(ptuner) { if(tuner_limit) {
if(ptuner->target) { if(tuner_limit->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT); pduel->lua->add_param(tuner_limit, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD); pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) if(!pduel->lua->get_function_value(tuner_limit->target, 2))
continue; continue;
} }
if(ptuner->value && !(pm->current.location & location)) if(tuner_limit->value && !(pm->current.location & location))
continue; continue;
} }
if(pcheck) if(pcheck)
...@@ -2767,14 +2767,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 ...@@ -2767,14 +2767,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
} }
} else { } else {
card_set cv; card_set cv;
get_synchro_material(playerid, &cv, ptuner); get_synchro_material(playerid, &cv, tuner_limit);
for(auto& pm : cv) { for(auto& pm : cv) {
if(!pm || pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner)) if(!pm || pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner))
continue; continue;
if(ptuner && ptuner->target) { if(tuner_limit && tuner_limit->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT); pduel->lua->add_param(tuner_limit, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD); pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) if(!pduel->lua->get_function_value(tuner_limit->target, 2))
continue; continue;
} }
if(pcheck) if(pcheck)
......
...@@ -473,7 +473,7 @@ public: ...@@ -473,7 +473,7 @@ public:
void attack_all_target_check(); void attack_all_target_check();
int32 get_must_material_list(uint8 playerid, uint32 limit, card_set* must_list); int32 get_must_material_list(uint8 playerid, uint32 limit, card_set* must_list);
int32 check_must_material(group* mg, uint8 playerid, uint32 limit); int32 check_must_material(group* mg, uint8 playerid, uint32 limit);
void get_synchro_material(uint8 playerid, card_set* material, effect* ptuner = nullptr); void get_synchro_material(uint8 playerid, card_set* material, effect* tuner_limit = nullptr);
int32 check_synchro_material(card* pcard, int32 findex1, int32 findex2, int32 min, int32 max, card* smat, group* mg); int32 check_synchro_material(card* pcard, int32 findex1, int32 findex2, int32 min, int32 max, card* smat, group* mg);
int32 check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 findex2, int32 min, int32 max, card* smat, group* mg); int32 check_tuner_material(card* pcard, card* tuner, int32 findex1, int32 findex2, int32 min, int32 max, card* smat, group* mg);
int32 check_other_synchro_material(const card_vector& nsyn, int32 lv, int32 min, int32 max, int32 mcount); int32 check_other_synchro_material(const card_vector& nsyn, int32 lv, int32 min, int32 max, int32 mcount);
......
...@@ -5352,12 +5352,12 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in ...@@ -5352,12 +5352,12 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
} }
case 3: { case 3: {
card* tuner = core.limit_tuner; card* tuner = core.limit_tuner;
effect* ptuner = tuner->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT); effect* tuner_limit = tuner->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT);
if(ptuner && ptuner->is_flag(EFFECT_FLAG_SPSUM_PARAM)) { if(tuner_limit && tuner_limit->is_flag(EFFECT_FLAG_SPSUM_PARAM)) {
if(ptuner->s_range && ptuner->s_range > min) if(tuner_limit->s_range && tuner_limit->s_range > min)
min = ptuner->s_range; min = tuner_limit->s_range;
if(ptuner->o_range && ptuner->o_range < max) if(tuner_limit->o_range && tuner_limit->o_range < max)
max = ptuner->o_range; max = tuner_limit->o_range;
core.units.begin()->arg2 = min + (max << 16); core.units.begin()->arg2 = min + (max << 16);
} }
int32 mzone_limit = get_mzone_limit(playerid, playerid, LOCATION_REASON_TOFIELD); int32 mzone_limit = get_mzone_limit(playerid, playerid, LOCATION_REASON_TOFIELD);
...@@ -5398,10 +5398,10 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in ...@@ -5398,10 +5398,10 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
case 4: { case 4: {
card* tuner = core.limit_tuner; card* tuner = core.limit_tuner;
int32 location = LOCATION_MZONE; int32 location = LOCATION_MZONE;
effect* ptuner = tuner->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT); effect* tuner_limit = tuner->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT);
if(ptuner) { if(tuner_limit) {
if(ptuner->value) if(tuner_limit->value)
location = ptuner->value; location = tuner_limit->value;
} }
effect* pcheck = tuner->is_affected_by_effect(EFFECT_SYNCHRO_CHECK); effect* pcheck = tuner->is_affected_by_effect(EFFECT_SYNCHRO_CHECK);
core.must_select_cards.clear(); core.must_select_cards.clear();
...@@ -5427,14 +5427,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in ...@@ -5427,14 +5427,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
for(auto& pm : mg->container) { 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)) if(pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner))
continue; continue;
if(ptuner) { if(tuner_limit) {
if(ptuner->target) { if(tuner_limit->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT); pduel->lua->add_param(tuner_limit, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD); pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) if(!pduel->lua->get_function_value(tuner_limit->target, 2))
continue; continue;
} }
if(ptuner->value && !(pm->current.location & location)) if(tuner_limit->value && !(pm->current.location & location))
continue; continue;
} }
if(pcheck) if(pcheck)
...@@ -5448,14 +5448,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in ...@@ -5448,14 +5448,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
} }
} else { } else {
card_set cv; card_set cv;
get_synchro_material(playerid, &cv, ptuner); get_synchro_material(playerid, &cv, tuner_limit);
for(auto& pm : cv) { for(auto& pm : cv) {
if(!pm || pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner)) if(!pm || pm == tuner || pm == smat || must_list.find(pm) != must_list.end() || !pm->is_can_be_synchro_material(pcard, tuner))
continue; continue;
if(ptuner && ptuner->target) { if(tuner_limit && tuner_limit->target) {
pduel->lua->add_param(ptuner, PARAM_TYPE_EFFECT); pduel->lua->add_param(tuner_limit, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pm, PARAM_TYPE_CARD); pduel->lua->add_param(pm, PARAM_TYPE_CARD);
if(!pduel->lua->get_function_value(ptuner->target, 2)) if(!pduel->lua->get_function_value(tuner_limit->target, 2))
continue; continue;
} }
if(pcheck) 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