Commit 40062d0e authored by Huangnan's avatar Huangnan

fix

parent 6396687f
No preview for this file type
expansions/pics/12400030.jpg

82.7 KB | W: | H:

expansions/pics/12400030.jpg

87.1 KB | W: | H:

expansions/pics/12400030.jpg
expansions/pics/12400030.jpg
expansions/pics/12400030.jpg
expansions/pics/12400030.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/12400103.jpg

89.6 KB | W: | H:

expansions/pics/12400103.jpg

88.3 KB | W: | H:

expansions/pics/12400103.jpg
expansions/pics/12400103.jpg
expansions/pics/12400103.jpg
expansions/pics/12400103.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/12400113.jpg

172 KB | W: | H:

expansions/pics/12400113.jpg

89.6 KB | W: | H:

expansions/pics/12400113.jpg
expansions/pics/12400113.jpg
expansions/pics/12400113.jpg
expansions/pics/12400113.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/16400635.jpg

59.5 KB | W: | H:

expansions/pics/16400635.jpg

81.4 KB | W: | H:

expansions/pics/16400635.jpg
expansions/pics/16400635.jpg
expansions/pics/16400635.jpg
expansions/pics/16400635.jpg
  • 2-up
  • Swipe
  • Onion skin
...@@ -35,13 +35,14 @@ function s.initial_effect(c) ...@@ -35,13 +35,14 @@ function s.initial_effect(c)
end end
function s.spcon(e,c) function s.spcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.GetFlagEffect(tp,id)>=8 local tp=e:GetHandlerPlayer()
return Duel.GetFlagEffect(tp,id)>=8 and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
end end
function s.spcfilter(c,tp) function s.spcfilter(c,tp)
return c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_ONFIELD) return c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_MZONE)
end end
function s.checkop(e,tp,eg,ep,ev,re,r,rp) function s.checkop(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(s.spcfilter,1,nil,0) then if eg:IsExists(s.spcfilter,1,nil,0) then
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1)
end end
end end
......
...@@ -21,10 +21,10 @@ function c15200013.initial_effect(c) ...@@ -21,10 +21,10 @@ function c15200013.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW) e3:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW)
e3:SetDescription(aux.Stringid(15200013,2)) e3:SetDescription(aux.Stringid(15200013,1))
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_GRAVE) e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(1,c15200013+100) e3:SetCountLimit(1,152000134)
e3:SetTarget(c15200013.tdtg) e3:SetTarget(c15200013.tdtg)
e3:SetOperation(c15200013.tdop) e3:SetOperation(c15200013.tdop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
...@@ -99,10 +99,10 @@ function c15200013.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -99,10 +99,10 @@ function c15200013.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c15200013.filter4(c) function c15200013.filter4(c)
return (c:IsLocation(LOCATION_MZONE) or c:IsFaceup()) and c:IsCanBeFusionMaterial() and c:IsAbleToDeck() return c:IsType(TYPE_MONSTER) and (c:IsLocation(LOCATION_REMOVED) or c:IsFaceup()) and c:IsCanBeFusionMaterial() and c:IsAbleToDeck()
end end
function c15200013.filter5(c,e) function c15200013.filter5(c,e)
return (c:IsLocation(LOCATION_MZONE) or c:IsFaceup()) and c:IsCanBeFusionMaterial() and c:IsAbleToDeck() and not c:IsImmuneToEffect(e) return c:IsType(TYPE_MONSTER) and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:IsCanBeFusionMaterial() and c:IsAbleToDeck() and not c:IsImmuneToEffect(e)
end end
function c15200013.filter6(c,e,tp,m,f,chkf) function c15200013.filter6(c,e,tp,m,f,chkf)
if not (c:IsType(TYPE_FUSION) and c:IsSetCard(0x680)) and (not f or f(c)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) then return false end if not (c:IsType(TYPE_FUSION) and c:IsSetCard(0x680)) and (not f or f(c)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) then return false end
...@@ -136,6 +136,7 @@ function c15200013.target1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -136,6 +136,7 @@ function c15200013.target1(e,tp,eg,ep,ev,re,r,rp,chk)
return res return res
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_GRAVE+LOCATION_REMOVED )
end end
function c15200013.activate1(e,tp,eg,ep,ev,re,r,rp) function c15200013.activate1(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp local chkf=tp
...@@ -189,4 +190,5 @@ function c15200013.tdop(e,tp,eg,ep,ev,re,r,rp) ...@@ -189,4 +190,5 @@ function c15200013.tdop(e,tp,eg,ep,ev,re,r,rp)
Duel.ShuffleDeck(tp) Duel.ShuffleDeck(tp)
Duel.BreakEffect() Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
\ No newline at end of file end
\ No newline at end of file
...@@ -3,7 +3,7 @@ local s,id=GetID() ...@@ -3,7 +3,7 @@ local s,id=GetID()
function s.initial_effect(c) function s.initial_effect(c)
-- Fusion Procedure: "Virtual Witch Phenomenon Hanafuda" + 1 "Shin-Tsubaki" monster -- Fusion Procedure: "Virtual Witch Phenomenon Hanafuda" + 1 "Shin-Tsubaki" monster
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcCode2(c,15200007,aux.FilterBoolFunction(Card.IsSetCard,0x680),true) aux.AddFusionProcCode2(c,15200007,aux.FilterBoolFunction(Card.IsFusionSetCard,0x680),true)
-- Effect ①: Negate opponent's monster effects during battle phase --disable -- Effect ①: Negate opponent's monster effects during battle phase --disable
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
...@@ -30,6 +30,13 @@ function s.initial_effect(c) ...@@ -30,6 +30,13 @@ function s.initial_effect(c)
e3:SetTarget(s.drtg) e3:SetTarget(s.drtg)
e3:SetOperation(s.drop) e3:SetOperation(s.drop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetCode(EFFECT_SPSUMMON_CONDITION)
e4:SetValue(aux.fuslimit)
c:RegisterEffect(e4)
end end
-- Effect ①: Negate opponent's monster effects during battle phase -- Effect ①: Negate opponent's monster effects during battle phase
......
...@@ -3,7 +3,7 @@ local s,id=GetID() ...@@ -3,7 +3,7 @@ local s,id=GetID()
function s.initial_effect(c) function s.initial_effect(c)
-- Fusion Procedure: 5 "Shin-Tsubaki" monsters -- Fusion Procedure: 5 "Shin-Tsubaki" monsters
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsSetCard,0x680),5,true) aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsFusionSetCard,0x680),5,true)
-- Effect ①: Negate the activation of a card effect and remove 1 "Shin-Tsubaki" card from the GY -- Effect ①: Negate the activation of a card effect and remove 1 "Shin-Tsubaki" card from the GY
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
...@@ -28,6 +28,13 @@ function s.initial_effect(c) ...@@ -28,6 +28,13 @@ function s.initial_effect(c)
e2:SetTarget(s.tgtg) e2:SetTarget(s.tgtg)
e2:SetOperation(s.tgop) e2:SetOperation(s.tgop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SPSUMMON_CONDITION)
e3:SetValue(aux.fuslimit)
c:RegisterEffect(e3)
--draw
end end
-- Effect ①: Negate the activation of a card effect and remove 1 "Shin-Tsubaki" card from the GY -- Effect ①: Negate the activation of a card effect and remove 1 "Shin-Tsubaki" card from the GY
......
...@@ -106,7 +106,7 @@ function s.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -106,7 +106,7 @@ function s.adjustop(e,tp,eg,ep,ev,re,r,rp)
if not tc:IsControlerCanBeChanged(true) then if not tc:IsControlerCanBeChanged(true) then
sg:AddCard(tc) sg:AddCard(tc)
else else
Duel.GetControl(tc,tp) Duel.GetControl(tc,1-p)
end end
end end
end end
......
...@@ -89,7 +89,7 @@ function c16310065.thcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -89,7 +89,7 @@ function c16310065.thcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c16310065.sfilter,1,nil,tp) and not eg:IsContains(e:GetHandler()) return eg:IsExists(c16310065.sfilter,1,nil,tp) and not eg:IsContains(e:GetHandler())
end end
function c16310065.thfilter(c) function c16310065.thfilter(c)
return c:IsSetCard(0x3dc6) and c:IsFaceupEx() and c:IsAbleToHand() return c:IsSetCard(0x3dc6) and c:IsType(0x1) and c:IsFaceupEx() and c:IsAbleToHand()
end end
function c16310065.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c16310065.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_REMOVED) and chkc:IsControler(tp) and c16310065.thfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_REMOVED) and chkc:IsControler(tp) and c16310065.thfilter(chkc) end
......
...@@ -79,7 +79,7 @@ function c16400645.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -79,7 +79,7 @@ function c16400645.activate(e,tp,eg,ep,ev,re,r,rp)
tc:SetMaterial(mat1) tc:SetMaterial(mat1)
Duel.Remove(mat1,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION) Duel.Remove(mat1,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect() Duel.BreakEffect()
if Duel.SpecialSummonStep(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP) then if Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)>0 then
local fid=e:GetHandler():GetFieldID() local fid=e:GetHandler():GetFieldID()
tc:RegisterFlagEffect(16400645,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid) tc:RegisterFlagEffect(16400645,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
......
...@@ -19,7 +19,7 @@ function id.initial_effect(c) ...@@ -19,7 +19,7 @@ function id.initial_effect(c)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e2:SetCountLimit(1,id+1) e2:SetCountLimit(1,id)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCondition(id.con2) e2:SetCondition(id.con2)
e2:SetTarget(id.tg2) e2:SetTarget(id.tg2)
...@@ -64,4 +64,4 @@ function id.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,4 +64,4 @@ function id.op2(e,tp,eg,ep,ev,re,r,rp)
local sg=g:Select(tp,1,1,nil) local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),c) Duel.SynchroSummon(tp,sg:GetFirst(),c)
end end
end end
\ No newline at end of file
...@@ -20,7 +20,7 @@ function cm.initial_effect(c) ...@@ -20,7 +20,7 @@ function cm.initial_effect(c)
e3:SetCode(EVENT_DESTROYED) e3:SetCode(EVENT_DESTROYED)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,m+1) e3:SetCountLimit(1,m+1)
e3:SetCondition(cm.dscon) e3:SetCondition(cm.con2)
e3:SetTarget(cm.dstg) e3:SetTarget(cm.dstg)
e3:SetOperation(cm.dsop) e3:SetOperation(cm.dsop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
......
...@@ -96,8 +96,8 @@ function cm.rmcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -96,8 +96,8 @@ function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.rmtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_GRAVE,0,1,nil,TYPE_MONSTER) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,1,nil) end
local g=Duel.SelectMatchingCard(tp,Card.IsType,tp,LOCATION_GRAVE,0,1,3,nil,TYPE_MONSTER) local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,1,3,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,1-tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,1-tp,LOCATION_GRAVE)
end end
......
...@@ -93,6 +93,7 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -93,6 +93,7 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_TO_GRAVE_REDIRECT) e1:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetRange(LOCATION_FZONE) e1:SetRange(LOCATION_FZONE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetTargetRange(0,LOCATION_DECK) e1:SetTargetRange(0,LOCATION_DECK)
e1:SetLabelObject(ttt) e1:SetLabelObject(ttt)
e1:SetTarget(cm.rmtarget) e1:SetTarget(cm.rmtarget)
...@@ -102,6 +103,7 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp) ...@@ -102,6 +103,7 @@ function cm.op2(e,tp,eg,ep,ev,re,r,rp)
e0:SetType(EFFECT_TYPE_FIELD) e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(81674782) e0:SetCode(81674782)
e0:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE) e0:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetRange(LOCATION_FZONE) e0:SetRange(LOCATION_FZONE)
e0:SetTargetRange(0,0xff) e0:SetTargetRange(0,0xff)
e0:SetTarget(aux.TRUE) e0:SetTarget(aux.TRUE)
......
...@@ -67,6 +67,7 @@ function cm.cost1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -67,6 +67,7 @@ function cm.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
return tg:CheckSubGroup(cm.check,3,3,tp) end return tg:CheckSubGroup(cm.check,3,3,tp) end
local sg5=tg:SelectSubGroup(tp,cm.check,false,3,3) local sg5=tg:SelectSubGroup(tp,cm.check,false,3,3)
Duel.SendtoGrave(sg5,REASON_COST) Duel.SendtoGrave(sg5,REASON_COST)
Duel.RaiseSingleEvent(c,EVENT_DETACH_MATERIAL,e,0,0,0,0)
sg5:KeepAlive() sg5:KeepAlive()
e:SetLabelObject(sg5) e:SetLabelObject(sg5)
local tc=sg5:GetFirst() local tc=sg5:GetFirst()
......
...@@ -44,6 +44,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -44,6 +44,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_REVERSE_DECK) return Duel.IsPlayerAffectedByEffect(1-tp,EFFECT_REVERSE_DECK)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetDecktopGroup(1-tp,1) local g=Duel.GetDecktopGroup(1-tp,1)
local gc=g:GetFirst() local gc=g:GetFirst()
local gg=gc:GetOriginalType() local gg=gc:GetOriginalType()
...@@ -51,6 +52,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -51,6 +52,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return og:GetCount()~=0 end if chk==0 then return og:GetCount()~=0 end
local sg6=og:Select(tp,1,1,nil) local sg6=og:Select(tp,1,1,nil)
Duel.SendtoGrave(sg6,REASON_COST) Duel.SendtoGrave(sg6,REASON_COST)
Duel.RaiseSingleEvent(c,EVENT_DETACH_MATERIAL,e,0,0,0,0)
local tc=sg6:GetFirst() local tc=sg6:GetFirst()
e:SetLabelObject(tc) e:SetLabelObject(tc)
tc:RegisterFlagEffect(22600200,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(22600200,RESET_EVENT+RESETS_STANDARD,0,0)
......
...@@ -43,6 +43,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,6 +43,7 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_DECK) return Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_DECK)
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetDecktopGroup(tp,1) local g=Duel.GetDecktopGroup(tp,1)
local gc=g:GetFirst() local gc=g:GetFirst()
local gg=gc:GetOriginalType() local gg=gc:GetOriginalType()
...@@ -50,6 +51,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -50,6 +51,7 @@ function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return og:GetCount()~=0 end if chk==0 then return og:GetCount()~=0 end
local sg6=og:Select(tp,1,1,nil) local sg6=og:Select(tp,1,1,nil)
Duel.SendtoGrave(sg6,REASON_COST) Duel.SendtoGrave(sg6,REASON_COST)
Duel.RaiseSingleEvent(c,EVENT_DETACH_MATERIAL,e,0,0,0,0)
local tc=sg6:GetFirst() local tc=sg6:GetFirst()
e:SetLabelObject(tc) e:SetLabelObject(tc)
tc:RegisterFlagEffect(22600200,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(22600200,RESET_EVENT+RESETS_STANDARD,0,0)
......
...@@ -54,6 +54,7 @@ function s.immop(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,6 +54,7 @@ function s.immop(e,tp,eg,ep,ev,re,r,rp)
local rc=c:GetReasonCard() local rc=c:GetReasonCard()
if not rc then return end if not rc then return end
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(s.efilter) e1:SetValue(s.efilter)
......
...@@ -45,12 +45,12 @@ function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -45,12 +45,12 @@ function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
end end
function s.costfilter(c,e,tp) function s.costfilter(c,e,tp)
return c:IsFaceup() and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,c,e,tp) return c:IsFaceup() and c:IsSetCard(0x9527) and c:IsType(TYPE_SYNCHRO) and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,c,e,tp)
end end
function s.spfilter(c,tc,e,tp) function s.spfilter(c,tc,e,tp)
return c:GetOriginalCodeRule()~=tc:GetOriginalCodeRule() return c:GetOriginalCodeRule()~=tc:GetOriginalCodeRule()
and c:GetLevel()==tc:GetLevel() and c:GetLevel()==tc:GetLevel()
and c:IsSetCard(0x3527) and c:IsSetCard(0x9527)
and c:IsType(TYPE_SYNCHRO) and c:IsType(TYPE_SYNCHRO)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false)
and Duel.GetLocationCountFromEx(tp,tp,tc,c)>0 and Duel.GetLocationCountFromEx(tp,tp,tc,c)>0
......
...@@ -74,6 +74,7 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -74,6 +74,7 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA+LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA+LOCATION_GRAVE)
end end
function s.spop(e,tp,eg,ep,ev,re,r,rp) function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local a=Duel.GetLocationCountFromEx(tp)>0 and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) local a=Duel.GetLocationCountFromEx(tp)>0 and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp)
local b=Duel.GetLocationCount(tp,LOCATION_MZONE)>0 local b=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp)
......
...@@ -20,7 +20,7 @@ function s.initial_effect(c) ...@@ -20,7 +20,7 @@ function s.initial_effect(c)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1)) e2:SetDescription(aux.Stringid(id,1))
e2:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_CAL)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetCountLimit(1,id+1) e2:SetCountLimit(1,id+1)
e2:SetCode(EVENT_TO_GRAVE) e2:SetCode(EVENT_TO_GRAVE)
......
...@@ -186,7 +186,7 @@ function cm.etg(e,c) ...@@ -186,7 +186,7 @@ function cm.etg(e,c)
return c~=e:GetHandler() and c:IsType(TYPE_XYZ) and c:IsFaceup() return c~=e:GetHandler() and c:IsType(TYPE_XYZ) and c:IsFaceup()
end end
function cm.efilter(e,te) function cm.efilter(e,te)
return te:GetOwner()~=e:GetOwner() return te:GetHandlerPlayer()~=e:GetHandlerPlayer()
end end
function cm.atlimit(e,c) function cm.atlimit(e,c)
return c~=e:GetHandler() and c:IsFaceup() return c~=e:GetHandler() and c:IsFaceup()
......
...@@ -61,7 +61,7 @@ end ...@@ -61,7 +61,7 @@ end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp) function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter0,nil) local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter0,nil)
local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE+LOCATION_DECK,LOCATION_GRAVE+LOCATION_DECK,nil) local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE+LOCATION_DECK,0,nil)
mg1:Merge(mg2) mg1:Merge(mg2)
local res=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf) local res=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
if not res then if not res then
...@@ -82,10 +82,8 @@ function cm.tkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -82,10 +82,8 @@ function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2)) local ct=Duel.SelectOption(tp,aux.Stringid(m,1),aux.Stringid(m,2))
if ct==0 then if ct==0 then
local chkf=tp local chkf=tp
local mg=Duel.GetFusionMaterial(1-tp):Filter(cm.filter1,nil,e)
local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter1,nil,e) local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter1,nil,e)
mg1:Merge(mg) local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE+LOCATION_DECK,0,nil)
local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
mg1:Merge(mg2) mg1:Merge(mg2)
local sg1=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) local sg1=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg3=nil local mg3=nil
...@@ -136,10 +134,8 @@ function cm.tkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -136,10 +134,8 @@ function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
end end
elseif a and not b then elseif a and not b then
local chkf=tp local chkf=tp
local mg=Duel.GetFusionMaterial(1-tp):Filter(cm.filter1,nil,e)
local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter1,nil,e) local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter1,nil,e)
mg1:Merge(mg) local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE+LOCATION_DECK,0,nil)
local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
mg1:Merge(mg2) mg1:Merge(mg2)
local sg1=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) local sg1=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg3=nil local mg3=nil
......
...@@ -119,7 +119,7 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -119,7 +119,7 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp)
end end
--to hand --to hand
function cm.thcfilter(c) function cm.thcfilter(c)
return c:IsFaceup() and c:IsSetCard(0x3ef1) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsFaceup() and c:IsSetCard(0xef1) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
function cm.thctg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thctg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_REMOVED) and chkc:IsControler(tp) and cm.thcfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_REMOVED) and chkc:IsControler(tp) and cm.thcfilter(chkc) end
......
...@@ -120,16 +120,16 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp) ...@@ -120,16 +120,16 @@ function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsContains(e:GetHandler()) and eg:IsExists(Card.IsControler,1,nil,1-tp) return not eg:IsContains(e:GetHandler()) and eg:IsExists(Card.IsControler,1,nil,1-tp)
end end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,0,LOCATION_MZONE,1,nil) end
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,0,LOCATION_MZONE,1,nil) end local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,0,LOCATION_MZONE,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end end
function cm.desop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
if tc:IsRelateToEffect(e) then local g=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SendtoHand(tc,nil,REASON_EFFECT) if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.SendtoHand(g,nil,REASON_EFFECT)
end end
end end
--indes --indes
......
...@@ -126,7 +126,7 @@ function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -126,7 +126,7 @@ function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsType(TYPE_MONSTER) and c:IsLevelBelow(4) and c:IsSetCard(0xef1) and c:IsCanBeSpecialSummoned(e,0,tp,true,true) return c:IsType(TYPE_MONSTER) and c:IsLevelBelow(4) and c:IsSetCard(0xef1) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
...@@ -139,7 +139,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -139,7 +139,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_DECK+LOCATION_EXTRA+LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if not tc then return end if not tc then return end
if Duel.SpecialSummonStep(tc,0,tp,tp,true,true,POS_FACEUP) then if Duel.SpecialSummonStep(tc,0,tp,tp,true,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_DISABLE)
......
...@@ -137,11 +137,12 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -137,11 +137,12 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
--pendulum set --pendulum set
function cm.pfilter(c,tp) function cm.pfilter(c,se)
return c:IsSummonPlayer(tp) and c:IsSummonType(SUMMON_TYPE_PENDULUM) return c:IsFaceup() and (se==nil or c:GetReasonEffect()~=se)
end end
function cm.pencon(e,tp,eg,ep,ev,re,r,rp) function cm.pencon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsFaceup() and eg:IsExists(cm.pfilter,2,nil,tp) local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.pfilter,2,nil,se)
end end
function cm.pentg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
......
...@@ -43,7 +43,7 @@ function cm.filter(c) ...@@ -43,7 +43,7 @@ function cm.filter(c)
and (c:IsType(TYPE_MONSTER) or c:IsLocation(LOCATION_PZONE)) and (c:IsType(TYPE_MONSTER) or c:IsLocation(LOCATION_PZONE))
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsSetCard(0xef1) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() return c:IsSetCard(0x6ef1) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE+LOCATION_PZONE+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_HAND,0,3,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE+LOCATION_PZONE+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_HAND,0,3,nil) 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