Commit 27fe8aa8 authored by POLYMER's avatar POLYMER

fix

parent 2dcc3811
......@@ -5,7 +5,7 @@ function s.initial_effect(c)
local e1 = Scl.CreateActivateEffect(c, "FreeChain", "ActivateSpell", nil, "ActivateSpell", nil, nil, nil, { "~Target", "ActivateSpell", s.afilter, "Hand,Deck,GY" }, s.act)
end
function s.afilter(c,e,tp)
return c:IsSetCard(0xc333) and Scl.IsType(c,0,TYPE_SPELL+TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true)
return c:IsSetCard(0xc333) and c:IsType(TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true)
end
function s.act(e,tp)
Scl.SelectAndOperateCards("ActivateSpell",tp,aux.NecroValleyFilter(s.afilter),tp,"Hand,Deck,GY",0,1,1,nil,e,tp)()
......
......@@ -6616,6 +6616,7 @@ function cm.DragoronActivate(c,code)
ge1:SetOperation(cm.ADGDacop)
Duel.RegisterEffect(ge1,0)
local ge2=ge1:Clone()
ge2:SetCondition(aux.TRUE)
ge2:SetCode(4179255)
Duel.RegisterEffect(ge2,0)
local ge3=Effect.CreateEffect(c)
......@@ -6806,7 +6807,7 @@ function cm.ADGDaccon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.ADGDacop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(rp,53757050)>0 then return end
Duel.RegisterFlagEffect(rp,53757050,RESET_CHAIN,0,1)
if Duel.GetCurrentChain()>0 then Duel.RegisterFlagEffect(rp,53757050,RESET_CHAIN,0,1) end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
......@@ -6878,8 +6879,9 @@ function cm.ADGDactarget(e,te,tp)
end
function cm.ADGDcostop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
local p=te:GetHandlerPlayer()
local c=te:GetHandler()
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
local fc=Duel.GetFieldCard(p,LOCATION_FZONE,0)
if fc then Duel.SendtoGrave(fc,REASON_RULE) end
Duel.MoveSequence(c,5)
if c:IsFacedown() then Duel.ChangePosition(c,POS_FACEUP) end
......@@ -6895,10 +6897,10 @@ function cm.ADGDcostop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return ev==ev0 end)
e1:SetOperation(cm.ADGDrsop)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
Duel.RegisterEffect(e1,p)
local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED)
Duel.RegisterEffect(e2,tp)
Duel.RegisterEffect(e2,p)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_REMAIN_FIELD)
......@@ -6918,9 +6920,14 @@ function cm.ADGDrsop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_END)
e1:SetCode(EVENT_ADJUST)
e1:SetLabelObject(re)
e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)e:GetLabelObject():SetType(EFFECT_TYPE_IGNITION)e:Reset()end)
e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
if not e:GetLabelObject():GetHandler():IsLocation(LOCATION_FZONE) then
e:GetLabelObject():SetType(EFFECT_TYPE_IGNITION)
e:Reset()
end
end)
Duel.RegisterEffect(e1,tp)
e:Reset()
end
......
......@@ -25,6 +25,7 @@ function cm.initial_effect(c)
e2:SetOperation(cm.trop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return re and re:GetHandler():IsCode(m-1)end)
e3:SetCode(4179255)
c:RegisterEffect(e3)
end
......
......@@ -24,6 +24,7 @@ function cm.initial_effect(c)
e2:SetOperation(cm.trop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return re and re:GetHandler():IsCode(m-1)end)
e3:SetCode(4179255)
e3:SetCondition(cm.trcon2)
c:RegisterEffect(e3)
......
......@@ -27,6 +27,7 @@ function cm.initial_effect(c)
e2:SetOperation(cm.trop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return re and re:GetHandler():IsCode(m-1)end)
e3:SetCode(4179255)
e3:SetCondition(cm.trcon2)
c:RegisterEffect(e3)
......
......@@ -25,6 +25,7 @@ function cm.initial_effect(c)
e2:SetOperation(cm.trop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return re and re:GetHandler():IsCode(m-1)end)
e3:SetCode(4179255)
e3:SetCondition(cm.trcon2)
c:RegisterEffect(e3)
......
......@@ -16,6 +16,7 @@ function cm.initial_effect(c)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCondition(aux.TRUE)
e2:SetCode(4179255)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
......@@ -30,8 +31,8 @@ function cm.initial_effect(c)
e3:SetOperation(cm.trop)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCondition(function(e,tp,eg,ep,ev,re,r,rp)return re and re:GetHandler():IsCode(m-1)end)
e4:SetCode(4179255)
e4:SetCondition(cm.trcon2)
c:RegisterEffect(e4)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
......@@ -91,6 +92,3 @@ function cm.negop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateEffect(ev) and rc:IsRelateToEffect(re) then Duel.Remove(rc,POS_FACEUP,REASON_EFFECT) end
e:Reset()
end
function cm.trcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsCode,1,nil,m-1)
end
......@@ -199,7 +199,7 @@ function cm.desrepop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)>0
return Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)==0
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)>0
......
......@@ -200,7 +200,7 @@ function cm.desrepop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)>0
return Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)==0
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)>0
......
......@@ -10,7 +10,7 @@ function cm.initial_effect(c)
end
if not cm.lsy_change_operation2 then
cm.lsy_change_operation2=true
cm._send_to_hand=Duel.SendtoHand
local cm_send_to_hand=Duel.SendtoHand
Duel.SendtoHand=function (c,tp,a,...)
local sol=0
local tc=0
......@@ -27,19 +27,19 @@ if not cm.lsy_change_operation2 then
if tc:IsCode(m) and single==1 and tc:CheckActivateEffect(false,false,false)~=nil and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_CARD,0,m)
local te=tc:GetActivateEffect()
if gc:IsType(TYPE_FIELD) then
if tc:IsType(TYPE_FIELD) then
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
Duel.RaiseEvent(gc,4179255,te,0,tp,tp,Duel.GetCurrentChain())
Duel.RaiseEvent(tc,4179255,te,0,tp,tp,Duel.GetCurrentChain())
else
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end
te:UseCountLimit(tp,1,true)
cm.ActivateCard(tc,tp,e)
cm.ActivateCard(tc,tp)
if not (tc:IsType(TYPE_CONTINUOUS) or tc:IsType(TYPE_FIELD) or tc:IsType(TYPE_EQUIP)) then
Duel.SendtoGrave(tc,REASON_RULE)
end
else
cm._send_to_hand(c,tp,a,...)
cm_send_to_hand(c,tp,a,...)
if aux.GetValueType(c)=="Card" then
sol=1
elseif aux.GetValueType(c)=="Group" then
......@@ -48,7 +48,7 @@ if not cm.lsy_change_operation2 then
end
return sol
end
cm._send_to_grave=Duel.SendtoGrave
local cm_send_to_grave=Duel.SendtoGrave
Duel.SendtoGrave=function (c,a,...)
local sol=0
local tc=0
......@@ -62,22 +62,22 @@ if not cm.lsy_change_operation2 then
single=1
end
end
if tc:IsCode(m) and single==1 and tc:CheckActivateEffect(false,false,false)~=nil and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
if tc:IsCode(m) and single==1 and tc:CheckActivateEffect(false,false,false)~=nil and a~=REASON_RULE and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_CARD,0,m)
local te=tc:GetActivateEffect()
if gc:IsType(TYPE_FIELD) then
if tc:IsType(TYPE_FIELD) then
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
Duel.RaiseEvent(gc,4179255,te,0,tp,tp,Duel.GetCurrentChain())
Duel.RaiseEvent(tc,4179255,te,0,tp,tp,Duel.GetCurrentChain())
else
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end
te:UseCountLimit(tp,1,true)
cm.ActivateCard(tc,tp,e)
cm.ActivateCard(tc,tp)
if not (tc:IsType(TYPE_CONTINUOUS) or tc:IsType(TYPE_FIELD) or tc:IsType(TYPE_EQUIP)) then
Duel.SendtoGrave(tc,REASON_RULE)
end
else
cm._send_to_grave(c,a,...)
cm_send_to_grave(c,a,...)
if aux.GetValueType(c)=="Card" then
sol=1
elseif aux.GetValueType(c)=="Group" then
......@@ -86,4 +86,39 @@ if not cm.lsy_change_operation2 then
end
return sol
end
end
function cm.ActivateCard(c,tp)
--local oe=oe
local e=c:GetActivateEffect()
local tp=e:GetHandlerPlayer()
local cos,tg,op=e:GetCost(),e:GetTarget(),e:GetOperation()
if e and (not cos or cos(e,tp,eg,ep,ev,re,r,rp,0)) and (not tg or tg(e,tp,eg,ep,ev,re,r,rp,0)) then
--oe:SetProperty(e:GetProperty())
local code=c:GetOriginalCode()
Duel.Hint(HINT_CARD,tp,code)
Duel.Hint(HINT_CARD,1-tp,code)
e:UseCountLimit(tp,1,true)
c:CreateEffectRelation(e)
if cos then cos(e,p,eg,ep,ev,re,r,rp,1) end
if tg then tg(e,tp,eg,ep,ev,re,r,rp,1) end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if g and #g~=0 then
local tg=g:GetFirst()
while tg do
tg:CreateEffectRelation(e)
tg=g:GetNext()
end
end
if op then op(e,tp,eg,ep,ev,re,r,rp) end
c:ReleaseEffectRelation(e)
if g then
tg=g:GetFirst()
while tg do
tg:ReleaseEffectRelation(e)
tg=g:GetNext()
end
end
end
end
\ No newline at end of file
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