Commit 09111e8e authored by salix5's avatar salix5

add card::is_summon_negatable

parent fa576273
...@@ -3462,6 +3462,28 @@ int32 card::is_can_be_summoned(uint8 playerid, uint8 ignore_count, effect* peffe ...@@ -3462,6 +3462,28 @@ int32 card::is_can_be_summoned(uint8 playerid, uint8 ignore_count, effect* peffe
pduel->game_field->restore_lp_cost(); pduel->game_field->restore_lp_cost();
return TRUE; return TRUE;
} }
int32 card::is_summon_negatable(uint32 sumtype, effect* reason_effect) {
uint32 code = 0;
if (sumtype & SUMMON_TYPE_NORMAL)
code = EFFECT_CANNOT_DISABLE_SUMMON;
else if (sumtype & SUMMON_TYPE_FLIP)
code = EFFECT_CANNOT_DISABLE_FLIP_SUMMON;
else if (sumtype & SUMMON_TYPE_SPECIAL)
code = EFFECT_CANNOT_DISABLE_SPSUMMON;
else
return FALSE;
if (is_affected_by_effect(code))
return FALSE;
if (sumtype == SUMMON_TYPE_DUAL || sumtype & SUMMON_TYPE_FLIP) {
if (!is_status(STATUS_FLIP_SUMMONING))
return FALSE;
if (!is_affect_by_effect(reason_effect))
return FALSE;
if (sumtype == SUMMON_TYPE_DUAL && (!is_affected_by_effect(EFFECT_DUAL_SUMMONABLE) || is_affected_by_effect(EFFECT_DUAL_STATUS)))
return FALSE;
}
return TRUE;
}
int32 card::get_summon_tribute_count() { int32 card::get_summon_tribute_count() {
int32 min = 0, max = 0; int32 min = 0, max = 0;
int32 level = get_level(); int32 level = get_level();
......
...@@ -341,6 +341,7 @@ public: ...@@ -341,6 +341,7 @@ public:
int32 is_spsummonable(effect* proc, material_info info = null_info); int32 is_spsummonable(effect* proc, material_info info = null_info);
int32 is_summonable(effect* proc, uint8 min_tribute, uint32 zone = 0x1f, uint32 releasable = 0xff00ff); int32 is_summonable(effect* proc, uint8 min_tribute, uint32 zone = 0x1f, uint32 releasable = 0xff00ff);
int32 is_can_be_summoned(uint8 playerid, uint8 ingore_count, effect* peffect, uint8 min_tribute, uint32 zone = 0x1f); int32 is_can_be_summoned(uint8 playerid, uint8 ingore_count, effect* peffect, uint8 min_tribute, uint32 zone = 0x1f);
int32 is_summon_negatable(uint32 sumtype, effect* reason_effect);
int32 get_summon_tribute_count(); int32 get_summon_tribute_count();
int32 get_set_tribute_count(); int32 get_set_tribute_count();
int32 is_can_be_flip_summoned(uint8 playerid); int32 is_can_be_flip_summoned(uint8 playerid);
......
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