Commit 13450162 authored by DailyShana's avatar DailyShana

add Card.IsFusionSummonableCard

parent 5c25c803
......@@ -2307,6 +2307,22 @@ int32 card::is_summonable_card() {
return FALSE;
return !is_affected_by_effect(EFFECT_UNSUMMONABLE_CARD);
}
int32 card::is_fusion_summonable_card() {
if(!(data.type & TYPE_FUSION))
return FALSE;
effect_set eset;
filter_effect(EFFECT_SPSUMMON_CONDITION, &eset);
for(int32 i = 0; i < eset.size(); ++i) {
pduel->lua->add_param((void*)0, PARAM_TYPE_EFFECT);
pduel->lua->add_param((void*)0, PARAM_TYPE_INT);
pduel->lua->add_param(SUMMON_TYPE_FUSION, PARAM_TYPE_INT);
pduel->lua->add_param((void*)0, PARAM_TYPE_INT);
pduel->lua->add_param((void*)0, PARAM_TYPE_INT);
if(!eset[i]->check_value_condition(5))
return FALSE;
}
return TRUE;
}
// check the condition of sp_summon procedure peffect
int32 card::is_spsummonable(effect* peffect) {
effect* oreason = pduel->game_field->core.reason_effect;
......
......@@ -249,6 +249,7 @@ public:
int32 is_equipable(card* pcard);
int32 is_summonable_card();
int32 is_fusion_summonable_card();
int32 is_spsummonable(effect* peffect);
int32 is_summonable(effect* peffect, uint8 min_tribute);
int32 is_can_be_summoned(uint8 playerid, uint8 ingore_count, effect* peffect, uint8 min_tribute);
......
......@@ -151,6 +151,7 @@ static const struct luaL_Reg cardlib[] = {
{ "IsDisabled", scriptlib::card_is_disabled },
{ "IsDestructable", scriptlib::card_is_destructable },
{ "IsSummonableCard", scriptlib::card_is_summonable },
{ "IsFusionSummonableCard", scriptlib::card_is_fusion_summonable_card },
{ "IsSpecialSummonable", scriptlib::card_is_special_summonable },
{ "IsSynchroSummonable", scriptlib::card_is_synchro_summonable },
{ "IsXyzSummonable", scriptlib::card_is_xyz_summonable },
......
......@@ -1350,10 +1350,17 @@ int32 scriptlib::card_is_destructable(lua_State *L) {
int32 scriptlib::card_is_summonable(lua_State *L) {
check_param_count(L, 1);
check_param(L, PARAM_TYPE_CARD, 1);
card * pcard = *(card**) lua_touserdata(L, 1);
card* pcard = *(card**) lua_touserdata(L, 1);
lua_pushboolean(L, pcard->is_summonable_card());
return 1;
}
int32 scriptlib::card_is_fusion_summonable_card(lua_State *L) {
check_param_count(L, 1);
check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1);
lua_pushboolean(L, pcard->is_fusion_summonable_card());
return 1;
}
int32 scriptlib::card_is_msetable(lua_State *L) {
check_param_count(L, 3);
check_param(L, PARAM_TYPE_CARD, 1);
......
......@@ -153,6 +153,7 @@ public:
static int32 card_is_disabled(lua_State *L);
static int32 card_is_destructable(lua_State *L);
static int32 card_is_summonable(lua_State *L);
static int32 card_is_fusion_summonable_card(lua_State* L);
static int32 card_is_msetable(lua_State *L);
static int32 card_is_ssetable(lua_State *L);
static int32 card_is_special_summonable(lua_State *L);
......
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