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

add Duel.GetLastSelectHint (#596)

parent fe1ce4de
......@@ -303,6 +303,7 @@ struct processor {
int32 summon_count[2]{};
uint8 extra_summon[2]{};
int32 spe_effect[2]{};
int32 last_select_hint[2]{ 0 };
int32 duel_options{ 0 };
int32 duel_rule{ CURRENT_RULE }; //current rule: 5, Master Rule 2020
uint32 copy_reset{ 0 };
......
......@@ -3703,12 +3703,24 @@ int32 scriptlib::duel_hint(lua_State * L) {
if(htype == HINT_OPSELECTED)
playerid = 1 - playerid;
duel* pduel = interpreter::get_duel_info(L);
if(htype == HINT_SELECTMSG)
pduel->game_field->core.last_select_hint[playerid] = desc;
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(htype);
pduel->write_buffer8(playerid);
pduel->write_buffer32(desc);
return 0;
}
int32 scriptlib::duel_get_last_select_hint(lua_State* L) {
duel* pduel = interpreter::get_duel_info(L);
uint8 playerid = pduel->game_field->core.reason_player;
if(lua_gettop(L) >= 1)
playerid = (uint8)lua_tointeger(L, 1);
if(playerid != 0 && playerid != 1)
return 0;
lua_pushinteger(L, pduel->game_field->core.last_select_hint[playerid]);
return 1;
}
int32 scriptlib::duel_hint_selection(lua_State *L) {
check_param_count(L, 1);
check_param(L, PARAM_TYPE_GROUP, 1);
......@@ -4963,6 +4975,7 @@ static const struct luaL_Reg duellib[] = {
{ "CheckRemoveOverlayCard", scriptlib::duel_check_remove_overlay_card },
{ "RemoveOverlayCard", scriptlib::duel_remove_overlay_card },
{ "Hint", scriptlib::duel_hint },
{ "GetLastSelectHint", scriptlib::duel_get_last_select_hint },
{ "HintSelection", scriptlib::duel_hint_selection },
{ "SelectEffectYesNo", scriptlib::duel_select_effect_yesno },
{ "SelectYesNo", scriptlib::duel_select_yesno },
......
......@@ -569,6 +569,7 @@ public:
static int32 duel_remove_overlay_card(lua_State *L);
static int32 duel_hint(lua_State *L);
static int32 duel_get_last_select_hint(lua_State *L);
static int32 duel_hint_selection(lua_State *L);
static int32 duel_select_effect_yesno(lua_State *L);
static int32 duel_select_yesno(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