Commit acde1b7c authored by nekrozar's avatar nekrozar

add Duel.IsPlayerCanMSet, Duel.IsPlayerCanSSet

parent 3ea372fb
......@@ -553,6 +553,8 @@ static const struct luaL_Reg duellib[] = {
{ "IsPlayerCanDiscardDeck", scriptlib::duel_is_player_can_discard_deck },
{ "IsPlayerCanDiscardDeckAsCost", scriptlib::duel_is_player_can_discard_deck_as_cost },
{ "IsPlayerCanSummon", scriptlib::duel_is_player_can_summon },
{ "IsPlayerCanMSet", scriptlib::duel_is_player_can_mset },
{ "IsPlayerCanSSet", scriptlib::duel_is_player_can_sset },
{ "IsPlayerCanSpecialSummon", scriptlib::duel_is_player_can_spsummon },
{ "IsPlayerCanFlipSummon", scriptlib::duel_is_player_can_flipsummon },
{ "IsPlayerCanSpecialSummonMonster", scriptlib::duel_is_player_can_spsummon_monster },
......
......@@ -3825,6 +3825,43 @@ int32 scriptlib::duel_is_player_can_summon(lua_State * L) {
}
return 1;
}
int32 scriptlib::duel_is_player_can_mset(lua_State * L) {
check_param_count(L, 1);
int32 playerid = lua_tointeger(L, 1);
if(playerid != 0 && playerid != 1) {
lua_pushboolean(L, 0);
return 1;
}
duel* pduel = interpreter::get_duel_info(L);
if(lua_gettop(L) == 1)
lua_pushboolean(L, pduel->game_field->is_player_can_action(playerid, EFFECT_CANNOT_MSET));
else {
check_param_count(L, 3);
check_param(L, PARAM_TYPE_CARD, 3);
int32 sumtype = lua_tointeger(L, 2);
card* pcard = *(card**) lua_touserdata(L, 3);
lua_pushboolean(L, pduel->game_field->is_player_can_mset(sumtype, playerid, pcard, playerid));
}
return 1;
}
int32 scriptlib::duel_is_player_can_sset(lua_State * L) {
check_param_count(L, 1);
int32 playerid = lua_tointeger(L, 1);
if(playerid != 0 && playerid != 1) {
lua_pushboolean(L, 0);
return 1;
}
duel* pduel = interpreter::get_duel_info(L);
if(lua_gettop(L) == 1)
lua_pushboolean(L, pduel->game_field->is_player_can_action(playerid, EFFECT_CANNOT_SSET));
else {
check_param_count(L, 2);
check_param(L, PARAM_TYPE_CARD, 2);
card* pcard = *(card**) lua_touserdata(L, 2);
lua_pushboolean(L, pduel->game_field->is_player_can_sset(playerid, pcard));
}
return 1;
}
int32 scriptlib::duel_is_player_can_spsummon(lua_State * L) {
check_param_count(L, 1);
int32 playerid = lua_tointeger(L, 1);
......
......@@ -549,6 +549,8 @@ public:
static int32 duel_is_player_can_discard_deck(lua_State *L);
static int32 duel_is_player_can_discard_deck_as_cost(lua_State *L);
static int32 duel_is_player_can_summon(lua_State *L);
static int32 duel_is_player_can_mset(lua_State *L);
static int32 duel_is_player_can_sset(lua_State *L);
static int32 duel_is_player_can_spsummon(lua_State *L);
static int32 duel_is_player_can_flipsummon(lua_State *L);
static int32 duel_is_player_can_spsummon_monster(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