Commit b6d8b0e9 authored by Chen Bill's avatar Chen Bill Committed by GitHub

fix card::is_can_be_disabled_by_effect() (#490)

parent 095aee5e
...@@ -3434,8 +3434,10 @@ int32 card::is_affect_by_effect(effect* reason_effect) { ...@@ -3434,8 +3434,10 @@ int32 card::is_affect_by_effect(effect* reason_effect) {
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
int32 card::is_can_be_disabled_by_effect(effect* reason_effect) { int32 card::is_can_be_disabled_by_effect(effect* reason_effect, bool is_monster_effect) {
if (is_status(STATUS_DISABLED)) if (is_monster_effect && is_status(STATUS_DISABLED))
return FALSE;
if(!is_monster_effect && !(get_type() & TYPE_TRAPMONSTER) && is_status(STATUS_DISABLED))
return FALSE; return FALSE;
if (is_affected_by_effect(EFFECT_CANNOT_DISABLE)) if (is_affected_by_effect(EFFECT_CANNOT_DISABLE))
return FALSE; return FALSE;
......
...@@ -353,7 +353,7 @@ public: ...@@ -353,7 +353,7 @@ public:
int32 is_setable_mzone(uint8 playerid, uint8 ignore_count, effect* peffect, uint8 min_tribute, uint32 zone = 0x1f); int32 is_setable_mzone(uint8 playerid, uint8 ignore_count, effect* peffect, uint8 min_tribute, uint32 zone = 0x1f);
int32 is_setable_szone(uint8 playerid, uint8 ignore_fd = 0); int32 is_setable_szone(uint8 playerid, uint8 ignore_fd = 0);
int32 is_affect_by_effect(effect* reason_effect); int32 is_affect_by_effect(effect* reason_effect);
int32 is_can_be_disabled_by_effect(effect* reason_effect); int32 is_can_be_disabled_by_effect(effect* reason_effect, bool is_monster_effect);
int32 is_destructable(); int32 is_destructable();
int32 is_destructable_by_battle(card* pcard); int32 is_destructable_by_battle(card* pcard);
effect* check_indestructable_by_effect(effect* reason_effect, uint8 playerid); effect* check_indestructable_by_effect(effect* reason_effect, uint8 playerid);
......
...@@ -3004,7 +3004,10 @@ int32 scriptlib::card_is_can_be_disabled_by_effect(lua_State* L) { ...@@ -3004,7 +3004,10 @@ int32 scriptlib::card_is_can_be_disabled_by_effect(lua_State* L) {
check_param(L, PARAM_TYPE_EFFECT, 2); check_param(L, PARAM_TYPE_EFFECT, 2);
card* pcard = *(card**)lua_touserdata(L, 1); card* pcard = *(card**)lua_touserdata(L, 1);
effect* peffect = *(effect**)lua_touserdata(L, 2); effect* peffect = *(effect**)lua_touserdata(L, 2);
lua_pushboolean(L, pcard->is_can_be_disabled_by_effect(peffect)); bool is_monster_effect = true;
if (lua_gettop(L) > 2)
is_monster_effect = lua_toboolean(L, 3);
lua_pushboolean(L, pcard->is_can_be_disabled_by_effect(peffect, is_monster_effect));
return 1; return 1;
} }
int32 scriptlib::card_is_can_be_effect_target(lua_State *L) { int32 scriptlib::card_is_can_be_effect_target(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