Commit bb7e8615 authored by mercury233's avatar mercury233 Committed by GitHub

add Duel.GetBattleMonster (#292)

parent 74e7ec53
...@@ -2189,6 +2189,24 @@ int32 scriptlib::duel_get_attack_target(lua_State *L) { ...@@ -2189,6 +2189,24 @@ int32 scriptlib::duel_get_attack_target(lua_State *L) {
interpreter::card2value(L, pcard); interpreter::card2value(L, pcard);
return 1; return 1;
} }
int32 scriptlib::duel_get_battle_monster(lua_State *L) {
check_param_count(L, 1);
check_param(L, PARAM_TYPE_INT, 1);
duel* pduel = interpreter::get_duel_info(L);
uint32 playerid = (uint32)lua_tointeger(L, 1);
card* attacker = pduel->game_field->core.attacker;
card* defender = pduel->game_field->core.attack_target;
for(int32 i = 0; i < 2; i++) {
if(attacker && attacker->current.controler == playerid)
interpreter::card2value(L, attacker);
else if(defender && defender->current.controler == playerid)
interpreter::card2value(L, defender);
else
lua_pushnil(L);
playerid = 1 - playerid;
}
return 2;
}
int32 scriptlib::duel_disable_attack(lua_State *L) { int32 scriptlib::duel_disable_attack(lua_State *L) {
duel* pduel = interpreter::get_duel_info(L); duel* pduel = interpreter::get_duel_info(L);
pduel->game_field->add_process(PROCESSOR_ATTACK_DISABLE, 0, 0, 0, 0, 0); pduel->game_field->add_process(PROCESSOR_ATTACK_DISABLE, 0, 0, 0, 0, 0);
...@@ -4451,6 +4469,7 @@ static const struct luaL_Reg duellib[] = { ...@@ -4451,6 +4469,7 @@ static const struct luaL_Reg duellib[] = {
{ "IsDamageCalculated", scriptlib::duel_is_damage_calculated }, { "IsDamageCalculated", scriptlib::duel_is_damage_calculated },
{ "GetAttacker", scriptlib::duel_get_attacker }, { "GetAttacker", scriptlib::duel_get_attacker },
{ "GetAttackTarget", scriptlib::duel_get_attack_target }, { "GetAttackTarget", scriptlib::duel_get_attack_target },
{ "GetBattleMonster", scriptlib::duel_get_battle_monster },
{ "NegateAttack", scriptlib::duel_disable_attack }, { "NegateAttack", scriptlib::duel_disable_attack },
{ "ChainAttack", scriptlib::duel_chain_attack }, { "ChainAttack", scriptlib::duel_chain_attack },
{ "Readjust", scriptlib::duel_readjust }, { "Readjust", scriptlib::duel_readjust },
......
...@@ -469,7 +469,8 @@ public: ...@@ -469,7 +469,8 @@ public:
static int32 duel_skip_phase(lua_State *L); static int32 duel_skip_phase(lua_State *L);
static int32 duel_is_damage_calculated(lua_State *L); static int32 duel_is_damage_calculated(lua_State *L);
static int32 duel_get_attacker(lua_State *L); static int32 duel_get_attacker(lua_State *L);
static int32 duel_get_attack_target(lua_State *L); static int32 duel_get_attack_target(lua_State* L);
static int32 duel_get_battle_monster(lua_State* L);
static int32 duel_disable_attack(lua_State *L); static int32 duel_disable_attack(lua_State *L);
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);
......
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