Commit 77ccdc7a authored by GuGu's avatar GuGu

Update c1153607.lua

parent aa11a180
Pipeline #40863 passed with stage
in 1 minute and 25 seconds
...@@ -5,6 +5,8 @@ function c1153607.initial_effect(c) ...@@ -5,6 +5,8 @@ function c1153607.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_EQUIP) e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e1:SetCost(c1153607.cost1)
e1:SetTarget(c1153607.tg1) e1:SetTarget(c1153607.tg1)
e1:SetOperation(c1153607.op1) e1:SetOperation(c1153607.op1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
...@@ -21,75 +23,114 @@ function c1153607.initial_effect(c) ...@@ -21,75 +23,114 @@ function c1153607.initial_effect(c)
-- --
end end
-- --
function c1153607.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local c=e:GetHandler()
local cid=Duel.GetChainInfo(0,CHAININFO_CHAIN_ID)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_REMAIN_FIELD)
e1:SetProperty(EFFECT_FLAG_OATH)
e1:SetReset(RESET_CHAIN)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_DISABLED)
e2:SetOperation(c1153607.tgop)
e2:SetLabel(cid)
e2:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e2,tp)
end
function c1153607.tgop(e,tp,eg,ep,ev,re,r,rp)
local cid=Duel.GetChainInfo(ev,CHAININFO_CHAIN_ID)
if cid~=e:GetLabel() then return end
if e:GetOwner():IsRelateToChain(ev) then
e:GetOwner():CancelToGrave(false)
end
end
function c1153607.tfilter1(c) function c1153607.tfilter1(c)
return c:IsSetCard(0x817) and c:IsLinkSummonable(nil) return c:IsSetCard(0x817) and c:IsLinkSummonable(nil)
end end
function c1153607.tg1(e,tp,eg,ep,ev,re,r,rp,chk) function c1153607.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c1153607.tfilter1,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return e:IsCostChecked() and Duel.IsExistingMatchingCard(c1153607.tfilter1,tp,LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
--
function c1153607.ofilter1(c)
return c:GetFlagEffect(1153607)>0
end
function c1153607.op1(e,tp,eg,ep,ev,re,r,rp) function c1153607.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,c1153607.tfilter1,tp,LOCATION_EXTRA,0,1,1,nil) local tg=Duel.SelectMatchingCard(tp,c1153607.tfilter1,tp,LOCATION_EXTRA,0,1,1,nil)
local tc=tg:GetFirst() local tc=tg:GetFirst()
Duel.RegisterFlagEffect(tp,1153607,0,0,0)
if tc then if tc then
if c:IsRelateToEffect(e) and c:IsFaceup() and not c:IsStatus(STATUS_LEAVE_CONFIRMED) then
local e1_1=Effect.CreateEffect(c)
e1_1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1_1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetOperation(c1153607.op1_1)
Duel.RegisterEffect(e1_1,tp)
end
local muxu_change_LinkSummon=Duel.LinkSummon
Duel.LinkSummon=function(pl,c,mg,lc,minc,maxc)
c:RegisterFlagEffect(1153607,0,0,0)
muxu_change_LinkSummon(pl,c,mg,lc,minc,maxc)
end
Duel.LinkSummon(tp,tc,nil) Duel.LinkSummon(tp,tc,nil)
local lg=Duel.GetMatchingGroup(c1153607.ofilter1,tp,LOCATION_MZONE,0,nil) Duel.LinkSummon=muxu_change_LinkSummon
end
end
function c1153607.ofilter1_1(c)
return c:GetFlagEffect(1153607)>0
end
function c1153607.op1_1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetOwner()
if not c:IsType(TYPE_EQUIP) then
local lg=Duel.GetMatchingGroup(c1153607.ofilter1_1,tp,LOCATION_MZONE,0,nil)
if lg:GetCount()>0 then if lg:GetCount()>0 then
local lc=lg:GetFirst() local lc=lg:GetFirst()
lc:ResetFlagEffect(1153607) lc:ResetFlagEffect(1153607)
local checknum=0 if Duel.Equip(tp,c,lc) then
if c:IsRelateToEffect(e) and c:IsFaceup() then local e1_2=Effect.CreateEffect(c)
if Duel.Equip(tp,c,lc) then e1_2:SetType(EFFECT_TYPE_SINGLE)
c:CancelToGrave() e1_2:SetCode(EFFECT_EQUIP_LIMIT)
checknum=1 e1_2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
local e1_1=Effect.CreateEffect(c) e1_2:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetType(EFFECT_TYPE_SINGLE) e1_2:SetValue(c1153607.val1_2)
e1_1:SetCode(EFFECT_EQUIP_LIMIT) e1_2:SetLabelObject(lc)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) c:RegisterEffect(e1_2,true)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD) local e1_3=Effect.CreateEffect(c)
e1_1:SetValue(c1153607.val1_1) e1_3:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetLabelObject(lc) e1_3:SetCode(EFFECT_CHANGE_TYPE)
c:RegisterEffect(e1_1,true) e1_3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
local e1_2=Effect.CreateEffect(c) e1_3:SetValue(TYPE_EQUIP+TYPE_TRAP)
e1_2:SetType(EFFECT_TYPE_SINGLE) e1_3:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_2:SetCode(EFFECT_CHANGE_TYPE) c:RegisterEffect(e1_3,true)
e1_2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) else
e1_2:SetValue(TYPE_EQUIP+TYPE_TRAP) c:CancelToGrave(false)
e1_2:SetReset(RESET_EVENT+RESETS_STANDARD) end
c:RegisterEffect(e1_2,true) local hg=lc:GetMaterial()
if hg:GetCount()>0 then
local ag=Group.CreateGroup()
local hc=hg:GetFirst()
while hc do
hc:ResetFlagEffect(1153607)
if hc:IsAbleToHand() and hc:IsLocation(LOCATION_GRAVE) then ag:AddCard(hc) end
hc=hg:GetNext()
end end
local hg=Duel.GetMatchingGroup(c1153607.ofilter1,tp,LOCATION_GRAVE,0,nil) if ag:GetCount()>0 then
if hg:GetCount()>0 then Duel.BreakEffect()
local ag=Group.CreateGroup() Duel.SendtoHand(ag,nil,REASON_EFFECT)
local hc=hg:GetFirst() Duel.ConfirmCards(1-tp,ag)
while hc do
hc:ResetFlagEffect(1153607)
if hc:IsAbleToHand() then ag:AddCard(hc) end
hc=hg:GetNext()
end
if ag:GetCount()>0 and checknum==1 then
Duel.BreakEffect()
Duel.SendtoHand(ag,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,ag)
end
end end
end end
end else
else
if not c:IsStatus(STATUS_LEAVE_CONFIRMED) then
c:CancelToGrave(false) c:CancelToGrave(false)
end end
else
c:CancelToGrave(false)
end end
Duel.ResetFlagEffect(tp,1153607) e:Reset()
end end
function c1153607.val1_1(e,c) function c1153607.val1_2(e,c)
return e:GetLabelObject()==c return e:GetLabelObject()==c
end end
-- --
......
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