Commit 25cfeeea authored by salix5's avatar salix5

EFFECT_FLAG_OPTIONAL_GY_ACTION

This effect has grave actions in the optional part, and it can be
negated by Ghost Belle & Haunted Mansion.
parent 205e9a6a
......@@ -3,6 +3,7 @@ function c10691144.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_OPTIONAL_GY_ACTION)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c10691144.activate)
c:RegisterEffect(e1)
......
......@@ -4,6 +4,7 @@ function c22747316.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_OPTIONAL_GY_ACTION)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(c22747316.condition)
e1:SetTarget(c22747316.target)
......
......@@ -5,6 +5,7 @@ function c39185163.initial_effect(c)
e1:SetDescription(aux.Stringid(39185163,0))
e1:SetCategory(CATEGORY_DISABLE+CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetProperty(EFFECT_FLAG_OPTIONAL_GY_ACTION)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c39185163.disrmcon)
......@@ -39,16 +40,13 @@ function c39185163.disrmtg(e,tp,eg,ep,ev,re,r,rp,chk)
local b2=Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,nil)
and Duel.GetFlagEffect(tp,39185164)==0
if chk==0 then return b1 or b2 end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
end
function c39185163.filter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToRemove()
end
function c39185163.disrmop(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.IsChainDisablable(ev) and Duel.GetFlagEffect(tp,39185163)==0
local b2=Duel.IsExistingMatchingCard(aux.NecroValleyFilter(c39185163.filter),tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,nil)
local b2=Duel.IsExistingMatchingCard(c39185163.filter,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,nil)
and Duel.GetFlagEffect(tp,39185164)==0
local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(39185163,1),aux.Stringid(39185163,2))
......
......@@ -4,6 +4,7 @@ function c41139112.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DICE+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_OPTIONAL_GY_ACTION)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,41139112+EFFECT_COUNT_CODE_OATH)
e1:SetCost(c41139112.cost)
......
......@@ -32,6 +32,7 @@ function c47355498.initial_effect(c)
--necro valley
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e6:SetCode(EFFECT_NECRO_VALLEY)
e6:SetRange(LOCATION_FZONE)
e6:SetTargetRange(LOCATION_GRAVE,0)
......
......@@ -28,7 +28,8 @@ function c73642296.discon(e,tp,eg,ep,ev,re,r,rp)
or (ex2 and (bit.band(dv2,LOCATION_GRAVE)==LOCATION_GRAVE or g2 and g2:IsExists(Card.IsLocation,1,nil,LOCATION_GRAVE)))
or (ex3 and (bit.band(dv3,LOCATION_GRAVE)==LOCATION_GRAVE or g3 and g3:IsExists(Card.IsLocation,1,nil,LOCATION_GRAVE)))
or (ex4 and (bit.band(dv4,LOCATION_GRAVE)==LOCATION_GRAVE or g4 and g4:IsExists(c73642296.cfilter,1,nil)))
or (ex5 and (bit.band(dv5,LOCATION_GRAVE)==LOCATION_GRAVE or g5 and g5:IsExists(Card.IsLocation,1,nil,LOCATION_GRAVE))))
or (ex5 and (bit.band(dv5,LOCATION_GRAVE)==LOCATION_GRAVE or g5 and g5:IsExists(Card.IsLocation,1,nil,LOCATION_GRAVE)))
or re:IsHasProperty(EFFECT_FLAG_OPTIONAL_GY_ACTION))
and Duel.IsChainNegatable(ev)
end
function c73642296.discost(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -18,7 +18,7 @@ function c87288189.initial_effect(c)
e3:SetDescription(aux.Stringid(87288189,1))
e3:SetCategory(CATEGORY_REMOVE+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_OPTIONAL_GY_ACTION)
e3:SetCode(EVENT_SUMMON_SUCCESS)
e3:SetCondition(c87288189.condition)
e3:SetTarget(c87288189.target)
......
......@@ -4,6 +4,7 @@ function c96729612.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_OPTIONAL_GY_ACTION)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c96729612.target)
e1:SetOperation(c96729612.activate)
......@@ -17,7 +18,7 @@ function c96729612.filter2(c)
end
function c96729612.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c96729612.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c96729612.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
......
......@@ -290,8 +290,8 @@ EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
EFFECT_FLAG_OWNER_RELATE =0x1000000 --持續成為對象
EFFECT_FLAG_CANNOT_INACTIVATE =0x2000000 --發動不會被無效
EFFECT_FLAG_CLIENT_HINT =0x4000000 --客户端提示
EFFECT_FLAG_CHAIN_UNIQUE =0x8000000 --N/A
EFFECT_FLAG_LIMIT_ZONE =0x10000000 --限制魔法·陷阱卡可以发动的区域
EFFECT_FLAG_OPTIONAL_GY_ACTION =0x8000000 --發動時不確定的部分含有可被屋敷童無效的行動(屋敷童)
EFFECT_FLAG_LIMIT_ZONE =0x10000000 --限制魔法·陷阱卡发动时可以放置的区域
EFFECT_FLAG_COF =0x20000000 --N/A
EFFECT_FLAG_CVAL_CHECK =0x40000000 --N/A
EFFECT_FLAG_IMMEDIATELY_APPLY =0x80000000 --卡在发动时效果就立即适用
......
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