Commit 39025afd authored by wind2009's avatar wind2009

Fix 原質の炉心溶解

処理時に、『自分のデッキの上からカードを6枚めくり』の処理を行い、『その中から「原质炉」カード1枚を選んで手札に加える』処理を行うことができます。『残りを好きな順番でデッキの上に戻す』処理を行い、デッキの上に戻した場合、その後、『自分フィールドのランク3のXモンスターがX素材としているカード1枚を手札に加える』処理を行うことができます。
parent 459dc474
Pipeline #30835 passed with stages
in 2 minutes and 51 seconds
...@@ -40,9 +40,12 @@ function s.xyzfilter(c) ...@@ -40,9 +40,12 @@ function s.xyzfilter(c)
return c:IsFaceup() and c:IsRank(3) return c:IsFaceup() and c:IsRank(3)
end end
function s.thop(e,tp,eg,ep,ev,re,r,rp) function s.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<6 then return end local dc=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)
Duel.ConfirmDecktop(tp,6) if dc==0 then return end
local g=Duel.GetDecktopGroup(tp,6) if dc>6 then dc=6 end
Duel.ConfirmDecktop(tp,dc)
local g=Duel.GetDecktopGroup(tp,dc)
local sd=true
if g:IsExists(s.thfilter,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then if g:IsExists(s.thfilter,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,s.thfilter,1,1,nil) local sg=g:FilterSelect(tp,s.thfilter,1,1,nil)
...@@ -50,30 +53,36 @@ function s.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -50,30 +53,36 @@ function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(sg,nil,REASON_EFFECT) Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg) Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
Duel.SortDecktop(tp,tp,5) if dc>1 then
else Duel.SortDecktop(tp,tp,6) end Duel.SortDecktop(tp,tp,dc-1)
local rg=Group.CreateGroup() else
local xg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_MZONE,0,nil) sd=false
if xg:GetCount()<1 then return end
for tc in aux.Next(xg) do
local hg=tc:GetOverlayGroup()
if hg:GetCount()>0 then
rg:Merge(hg)
end end
end else Duel.SortDecktop(tp,tp,dc) end
if rg:FilterCount(Card.IsAbleToHand,nil)>0 and Duel.SelectYesNo(tp,aux.Stringid(id,3)) then if sd then
Duel.BreakEffect() local rg=Group.CreateGroup()
local thg=rg:FilterSelect(tp,Card.IsAbleToHand,1,1,nil) local xg=Duel.GetMatchingGroup(s.xyzfilter,tp,LOCATION_MZONE,0,nil)
Duel.SendtoHand(thg,nil,REASON_EFFECT) if xg:GetCount()<1 then return end
local sg=thg:Filter(Card.IsControler,nil,tp) for tc in aux.Next(xg) do
if sg:GetCount()>0 then local hg=tc:GetOverlayGroup()
Duel.ConfirmCards(1-tp,sg) if hg:GetCount()>0 then
Duel.ShuffleHand(tp) rg:Merge(hg)
end
end end
local og=thg:Filter(Card.IsControler,nil,1-tp) if rg:FilterCount(Card.IsAbleToHand,nil)>0 and Duel.SelectYesNo(tp,aux.Stringid(id,3)) then
if og:GetCount()>0 then Duel.BreakEffect()
Duel.ConfirmCards(tp,og) local thg=rg:FilterSelect(tp,Card.IsAbleToHand,1,1,nil)
Duel.ShuffleHand(1-tp) Duel.SendtoHand(thg,nil,REASON_EFFECT)
local sg=thg:Filter(Card.IsControler,nil,tp)
if sg:GetCount()>0 then
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
end
local og=thg:Filter(Card.IsControler,nil,1-tp)
if og:GetCount()>0 then
Duel.ConfirmCards(tp,og)
Duel.ShuffleHand(1-tp)
end
end end
end end
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