Commit 0be2a501 authored by Momobako's avatar Momobako

updc

parent d07d43d0
...@@ -145,6 +145,8 @@ static const struct luaL_Reg cardlib[] = { ...@@ -145,6 +145,8 @@ static const struct luaL_Reg cardlib[] = {
{ "GetOwnerTargetCount", scriptlib::card_get_owner_target_count }, { "GetOwnerTargetCount", scriptlib::card_get_owner_target_count },
{ "GetActivateEffect", scriptlib::card_get_activate_effect }, { "GetActivateEffect", scriptlib::card_get_activate_effect },
{ "CheckActivateEffect", scriptlib::card_check_activate_effect }, { "CheckActivateEffect", scriptlib::card_check_activate_effect },
{ "GetTunerLimit", scriptlib::card_get_tuner_limit },
{ "GetHandSynchro", scriptlib::card_get_hand_synchro },
{ "RegisterEffect", scriptlib::card_register_effect }, { "RegisterEffect", scriptlib::card_register_effect },
{ "IsHasEffect", scriptlib::card_is_has_effect }, { "IsHasEffect", scriptlib::card_is_has_effect },
{ "ResetEffect", scriptlib::card_reset_effect }, { "ResetEffect", scriptlib::card_reset_effect },
......
...@@ -1216,6 +1216,73 @@ int32 scriptlib::card_check_activate_effect(lua_State *L) { ...@@ -1216,6 +1216,73 @@ int32 scriptlib::card_check_activate_effect(lua_State *L) {
} }
return 0; return 0;
} }
int32 scriptlib::card_get_tuner_limit(lua_State *L) {
check_param_count(L, 1);
check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**)lua_touserdata(L, 1);
effect* peffect = pcard->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT);
if(peffect) {
interpreter::effect2value(L, peffect);
if(peffect->target)
interpreter::function2value(L, peffect->target);
else
lua_pushnil(L);
if(peffect->value)
lua_pushinteger(L, peffect->value);
else
lua_pushnil(L);
uint16 min = 0;
uint16 max = 99;
if(peffect->s_range && peffect->s_range > min)
min = peffect->s_range;
if(peffect->o_range && peffect->o_range < max)
max = peffect->o_range;
lua_pushinteger(L, min);
lua_pushinteger(L, max);
return 5;
}
return 0;
}
int32 scriptlib::card_get_hand_synchro(lua_State *L) {
check_param_count(L, 1);
check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**)lua_touserdata(L, 1);
effect* peffect = pcard->is_affected_by_effect(EFFECT_HAND_SYNCHRO);
if(peffect) {
interpreter::effect2value(L, peffect);
if(peffect->target)
interpreter::function2value(L, peffect->target);
else
lua_pushnil(L);
uint16 min = 0;
uint16 max = 99;
if(peffect->s_range && peffect->s_range > min)
min = peffect->s_range;
if(peffect->o_range && peffect->o_range < max)
max = peffect->o_range;
lua_pushinteger(L, min);
lua_pushinteger(L, max);
return 4;
}
peffect = pcard->is_affected_by_effect(EFFECT_TUNER_MATERIAL_LIMIT);
if(peffect && (peffect->value & LOCATION_HAND)) {
interpreter::effect2value(L, peffect);
if(peffect->target)
interpreter::function2value(L, peffect->target);
else
lua_pushnil(L);
uint16 min = 0;
uint16 max = 99;
if(peffect->s_range && peffect->s_range > min)
min = peffect->s_range;
if(peffect->o_range && peffect->o_range < max)
max = peffect->o_range;
lua_pushinteger(L, min);
lua_pushinteger(L, max);
return 4;
}
return 0;
}
int32 scriptlib::card_register_effect(lua_State *L) { int32 scriptlib::card_register_effect(lua_State *L) {
check_param_count(L, 2); check_param_count(L, 2);
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
......
...@@ -147,6 +147,8 @@ public: ...@@ -147,6 +147,8 @@ public:
static int32 card_get_owner_target_count(lua_State *L); static int32 card_get_owner_target_count(lua_State *L);
static int32 card_get_activate_effect(lua_State *L); static int32 card_get_activate_effect(lua_State *L);
static int32 card_check_activate_effect(lua_State *L); static int32 card_check_activate_effect(lua_State *L);
static int32 card_get_tuner_limit(lua_State * L);
static int32 card_get_hand_synchro(lua_State * L);
static int32 card_register_effect(lua_State *L); static int32 card_register_effect(lua_State *L);
static int32 card_is_has_effect(lua_State *L); static int32 card_is_has_effect(lua_State *L);
static int32 card_reset_effect(lua_State *L); static int32 card_reset_effect(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