Commit 233bce31 authored by 聖園ミカ's avatar 聖園ミカ 🐟

man!

parent 579256ff
No preview for this file type
expansions/pics/12877055.jpg

124 KB | W: | H:

expansions/pics/12877055.jpg

125 KB | W: | H:

expansions/pics/12877055.jpg
expansions/pics/12877055.jpg
expansions/pics/12877055.jpg
expansions/pics/12877055.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -125,7 +125,8 @@ function s.gspop(e,tp,eg,ep,ev,re,r,rp)
if tc then
if not Duel.Equip(tp,tc,c) then return end
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT+EFFECT_FLAG_OWNER_RELATE)
e1:SetProperty(EFFECT_FLAG_OWNER_RELATE)
--e1:SetProperty(EFFECT_FLAG_COPY_INHERIT+EFFECT_FLAG_OWNER_RELATE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
......
......@@ -19,13 +19,57 @@ function cm.initial_effect(c)
c:RegisterEffect(e1)
if not cm.check then
cm.check=true
mg=Duel.GetFusionMaterial
Duel.GetFusionMaterial=function(p)
local g=Duel.GetMatchingGroup(function(c)return c:GetFlagEffect(m)>0 end,p,0,LOCATION_MZONE,nil)
return Group.__add(mg(p),g)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetOperation(cm.chainop)
Duel.RegisterEffect(e1,0)
local f1=Card.CheckFusionMaterial
function Card.CheckFusionMaterial(card,Group_fus,Card_g,int_chkf,not_mat)
local exg=Group.CreateGroup()
exg=Duel.GetMatchingGroup(cm.filter0,int_chkf,0,LOCATION_MZONE,nil,card)
exg=Group.__bxor(exg,Group_fus):Filter(Card.IsLocation,nil,LOCATION_MZONE)
if exg:GetCount()>0 then
if Duel.GetFlagEffect(0,m)~=0 and Duel.GetFlagEffect(0,m+50)==0 then
Duel.RegisterFlagEffect(0,m+50,RESET_CHAIN,0,1)
local e1=Effect.CreateEffect(card)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetOperation(cm.resetop)
e1:SetReset(RESET_EVENT+RESET_CHAIN)
Duel.RegisterEffect(e1,0)
local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED)
Duel.RegisterEffect(e2,0)
end
local hg=Group.__add(exg,Group_fus)
return f1(card,hg,Card_g,int_chkf,not_mat)
end
return f1(card,Group_fus,Card_g,int_chkf,not_mat)
end
local f2=Duel.SelectFusionMaterial
function Duel.SelectFusionMaterial(tp,card,mg,gc_nil,chkf)
if Duel.GetFlagEffect(0,m+50)~=0 then
exg=Duel.GetMatchingGroup(cm.filter0,int_chkf,LOCATION_MZONE,0,nil,card)
if exg:GetCount()>0 then
mg:Merge(exg)
end
end
Duel.ResetFlagEffect(0,m+50)
return f2(tp,card,mg,gc_nil,chkf)
end
end
end
function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
function cm.resetop(e,tp,eg,ep,ev,re,r,rp)
Duel.ResetFlagEffect(0,m+50)
e:Reset()
end
function cm.filter0(c,fc)
return c:GetFlagEffect(m)>0 and c:IsCanBeFusionMaterial(fc)
end
function cm.thfilter(c)
return c:IsCode(53727001) and c:IsAbleToHand()
end
......@@ -34,13 +78,13 @@ function cm.slfilter(c)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local b1=Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,m)==0
local b2=Duel.IsExistingMatchingCard(cm.slfilter,tp,0,LOCATION_MZONE,1,nil) and Duel.GetFlagEffect(tp,m+33)==0
local b1=Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,m+25)==0
local b2=Duel.IsExistingMatchingCard(cm.slfilter,tp,0,LOCATION_MZONE,1,nil) and Duel.GetFlagEffect(tp,m+75)==0
if chk==0 then return b1 or b2 end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,m)==0
local b2=Duel.IsExistingMatchingCard(cm.slfilter,tp,0,LOCATION_MZONE,1,nil) and Duel.GetFlagEffect(tp,m+33)==0
local b1=Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) and Duel.GetFlagEffect(tp,m+25)==0
local b2=Duel.IsExistingMatchingCard(cm.slfilter,tp,0,LOCATION_MZONE,1,nil) and Duel.GetFlagEffect(tp,m+75)==0
local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2)) elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(m,1)) elseif b2 then op=Duel.SelectOption(tp,aux.Stringid(m,2))+1 else return end
if op==0 then
......@@ -48,12 +92,12 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,m+25,RESET_PHASE+PHASE_END,0,1)
else
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SELF)
local tc=Duel.SelectMatchingCard(1-tp,cm.slfilter,1-tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
Duel.HintSelection(Group.FromCards(tc))
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,m+33,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,m+75,RESET_PHASE+PHASE_END,0,1)
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