Commit 96e36b38 authored by salix5's avatar salix5

effect::is_activateable()

parent 7e4019d8
...@@ -388,7 +388,7 @@ public: ...@@ -388,7 +388,7 @@ public:
#define STATUS_PROC_COMPLETE 0x0008 // #define STATUS_PROC_COMPLETE 0x0008 //
#define STATUS_SET_TURN 0x0010 // #define STATUS_SET_TURN 0x0010 //
#define STATUS_NO_LEVEL 0x0020 // #define STATUS_NO_LEVEL 0x0020 //
#define STATUS_REVIVE_LIMIT 0x0040 // #define STATUS_SET_AVAILABLE 0x0040 //
#define STATUS_SPSUMMON_STEP 0x0080 // #define STATUS_SPSUMMON_STEP 0x0080 //
#define STATUS_FORM_CHANGED 0x0100 // #define STATUS_FORM_CHANGED 0x0100 //
#define STATUS_SUMMONING 0x0200 // #define STATUS_SUMMONING 0x0200 //
...@@ -401,7 +401,7 @@ public: ...@@ -401,7 +401,7 @@ public:
#define STATUS_CHAINING 0x10000 // #define STATUS_CHAINING 0x10000 //
#define STATUS_SUMMON_DISABLED 0x20000 // #define STATUS_SUMMON_DISABLED 0x20000 //
#define STATUS_ACTIVATE_DISABLED 0x40000 // #define STATUS_ACTIVATE_DISABLED 0x40000 //
#define STATUS_UNSUMMONABLE_CARD 0x80000 // //#define STATUS_UNSUMMONABLE_CARD 0x80000
#define STATUS_UNION 0x100000 #define STATUS_UNION 0x100000
#define STATUS_ATTACK_CANCELED 0x200000 #define STATUS_ATTACK_CANCELED 0x200000
#define STATUS_INITIALIZING 0x400000 #define STATUS_INITIALIZING 0x400000
......
...@@ -207,17 +207,14 @@ int32 effect::is_activateable(uint8 playerid, const tevent& e, int32 neglect_con ...@@ -207,17 +207,14 @@ int32 effect::is_activateable(uint8 playerid, const tevent& e, int32 neglect_con
if(handler->is_affected_by_effect(EFFECT_CANNOT_TRIGGER)) if(handler->is_affected_by_effect(EFFECT_CANNOT_TRIGGER))
return FALSE; return FALSE;
} else if(!(type & EFFECT_TYPE_CONTINUOUS)) { } else if(!(type & EFFECT_TYPE_CONTINUOUS)) {
if((type & EFFECT_TYPE_SINGLE) && code ==EVENT_FLIP){ if((handler->data.type & TYPE_MONSTER) && (handler->current.location & LOCATION_SZONE)
// flip monster effects can be activated while face-down in LOCATION_MZONE && !in_range(handler->current.location, handler->current.sequence))
if((handler->current.location & LOCATION_REMOVED) && !handler->is_position(POS_FACEUP)) return FALSE;
return FALSE; // effects with EFFECT_FLAG_SET_AVAILABLE or cards with STATUS_SET_AVAILABLE can be activated while face-down
} if((handler->current.location & (LOCATION_ONFIELD | LOCATION_REMOVED))
else { && !is_flag(EFFECT_FLAG_SET_AVAILABLE) && !handler->is_status(STATUS_SET_AVAILABLE)
// effects with EFFECT_FLAG_SET_AVAILABLE can be activated while face-down && (!handler->is_position(POS_FACEUP) || !handler->is_status(STATUS_EFFECT_ENABLED)))
if((handler->current.location & (LOCATION_ONFIELD | LOCATION_REMOVED)) && !is_flag(EFFECT_FLAG_SET_AVAILABLE) return FALSE;
&& (!handler->is_position(POS_FACEUP) || !handler->is_status(STATUS_EFFECT_ENABLED)))
return FALSE;
}
if(!(type & (EFFECT_TYPE_FLIP | EFFECT_TYPE_TRIGGER_F)) if(!(type & (EFFECT_TYPE_FLIP | EFFECT_TYPE_TRIGGER_F))
&& !((type & EFFECT_TYPE_SINGLE) && (code == EVENT_TO_GRAVE || code == EVENT_DESTROYED || code == EVENT_SPSUMMON_SUCCESS || code == EVENT_TO_HAND))) { && !((type & EFFECT_TYPE_SINGLE) && (code == EVENT_TO_GRAVE || code == EVENT_DESTROYED || code == EVENT_SPSUMMON_SUCCESS || code == EVENT_TO_HAND))) {
if((code < 1132 || code > 1149) && pduel->game_field->infos.phase == PHASE_DAMAGE && !(is_flag(EFFECT_FLAG_DAMAGE_STEP))) if((code < 1132 || code > 1149) && pduel->game_field->infos.phase == PHASE_DAMAGE && !(is_flag(EFFECT_FLAG_DAMAGE_STEP)))
......
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