Commit 0632b0a0 authored by mercury233's avatar mercury233
parents d1e1bdf3 3ef5beb4
...@@ -1907,10 +1907,12 @@ int32 scriptlib::card_is_relate_to_effect(lua_State *L) { ...@@ -1907,10 +1907,12 @@ int32 scriptlib::card_is_relate_to_effect(lua_State *L) {
return 1; return 1;
} }
int32 scriptlib::card_is_relate_to_chain(lua_State *L) { int32 scriptlib::card_is_relate_to_chain(lua_State *L) {
check_param_count(L, 2); check_param_count(L, 1);
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
uint32 chain_count = (uint32)lua_tointeger(L, 2); uint32 chain_count = 0;
if(lua_gettop(L) >= 2)
chain_count = (uint32)lua_tointeger(L, 2);
duel* pduel = pcard->pduel; duel* pduel = pcard->pduel;
if(chain_count > pduel->game_field->core.current_chain.size() || chain_count < 1) if(chain_count > pduel->game_field->core.current_chain.size() || chain_count < 1)
chain_count = (uint32)pduel->game_field->core.current_chain.size(); chain_count = (uint32)pduel->game_field->core.current_chain.size();
...@@ -2436,6 +2438,13 @@ int32 scriptlib::card_is_faceup(lua_State *L) { ...@@ -2436,6 +2438,13 @@ int32 scriptlib::card_is_faceup(lua_State *L) {
lua_pushboolean(L, pcard->is_position(POS_FACEUP)); lua_pushboolean(L, pcard->is_position(POS_FACEUP));
return 1; return 1;
} }
int32 scriptlib::card_is_faceup_ex(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_position(POS_FACEUP) | (pcard->current.location & (LOCATION_HAND | LOCATION_GRAVE | LOCATION_DECK)));
return 1;
}
int32 scriptlib::card_is_attack_pos(lua_State *L) { int32 scriptlib::card_is_attack_pos(lua_State *L) {
check_param_count(L, 1); check_param_count(L, 1);
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
...@@ -3421,6 +3430,7 @@ static const struct luaL_Reg cardlib[] = { ...@@ -3421,6 +3430,7 @@ static const struct luaL_Reg cardlib[] = {
{ "IsAttackable", scriptlib::card_is_attackable }, { "IsAttackable", scriptlib::card_is_attackable },
{ "IsChainAttackable", scriptlib::card_is_chain_attackable }, { "IsChainAttackable", scriptlib::card_is_chain_attackable },
{ "IsFaceup", scriptlib::card_is_faceup }, { "IsFaceup", scriptlib::card_is_faceup },
{ "IsFaceupEx", scriptlib::card_is_faceup_ex },
{ "IsAttackPos", scriptlib::card_is_attack_pos }, { "IsAttackPos", scriptlib::card_is_attack_pos },
{ "IsFacedown", scriptlib::card_is_facedown }, { "IsFacedown", scriptlib::card_is_facedown },
{ "IsDefensePos", scriptlib::card_is_defense_pos }, { "IsDefensePos", scriptlib::card_is_defense_pos },
......
...@@ -2347,6 +2347,13 @@ int32 scriptlib::duel_adjust_instantly(lua_State *L) { ...@@ -2347,6 +2347,13 @@ int32 scriptlib::duel_adjust_instantly(lua_State *L) {
pduel->game_field->adjust_instant(); pduel->game_field->adjust_instant();
return 0; return 0;
} }
int32 scriptlib::duel_adjust_all(lua_State* L) {
duel* pduel = interpreter::get_duel_info(L);
pduel->game_field->adjust_all();
return lua_yieldk(L, 0, (lua_KContext)pduel, [](lua_State *L, int32 status, lua_KContext ctx) {
return 0;
});
}
/** /**
* \brief Duel.GetFieldGroup * \brief Duel.GetFieldGroup
* \param playerid, location1, location2 * \param playerid, location1, location2
...@@ -4678,6 +4685,7 @@ static const struct luaL_Reg duellib[] = { ...@@ -4678,6 +4685,7 @@ static const struct luaL_Reg duellib[] = {
{ "ChainAttack", scriptlib::duel_chain_attack }, { "ChainAttack", scriptlib::duel_chain_attack },
{ "Readjust", scriptlib::duel_readjust }, { "Readjust", scriptlib::duel_readjust },
{ "AdjustInstantly", scriptlib::duel_adjust_instantly }, { "AdjustInstantly", scriptlib::duel_adjust_instantly },
{ "AdjustAll", scriptlib::duel_adjust_all },
{ "GetFieldGroup", scriptlib::duel_get_field_group }, { "GetFieldGroup", scriptlib::duel_get_field_group },
{ "GetFieldGroupCount", scriptlib::duel_get_field_group_count }, { "GetFieldGroupCount", scriptlib::duel_get_field_group_count },
{ "GetDecktopGroup", scriptlib::duel_get_decktop_group }, { "GetDecktopGroup", scriptlib::duel_get_decktop_group },
......
...@@ -222,6 +222,7 @@ public: ...@@ -222,6 +222,7 @@ public:
static int32 card_is_attackable(lua_State *L); static int32 card_is_attackable(lua_State *L);
static int32 card_is_chain_attackable(lua_State *L); static int32 card_is_chain_attackable(lua_State *L);
static int32 card_is_faceup(lua_State *L); static int32 card_is_faceup(lua_State *L);
static int32 card_is_faceup_ex(lua_State *L);
static int32 card_is_attack_pos(lua_State *L); static int32 card_is_attack_pos(lua_State *L);
static int32 card_is_facedown(lua_State *L); static int32 card_is_facedown(lua_State *L);
static int32 card_is_defense_pos(lua_State *L); static int32 card_is_defense_pos(lua_State *L);
...@@ -487,6 +488,7 @@ public: ...@@ -487,6 +488,7 @@ public:
static int32 duel_chain_attack(lua_State *L); static int32 duel_chain_attack(lua_State *L);
static int32 duel_readjust(lua_State *L); static int32 duel_readjust(lua_State *L);
static int32 duel_adjust_instantly(lua_State *L); static int32 duel_adjust_instantly(lua_State *L);
static int32 duel_adjust_all(lua_State *L);
static int32 duel_get_field_group(lua_State *L); static int32 duel_get_field_group(lua_State *L);
static int32 duel_get_field_group_count(lua_State *L); static int32 duel_get_field_group_count(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