Commit 54310e8d authored by Nemo Ma's avatar Nemo Ma

add

parent 86b75089
No preview for this file type
......@@ -3,5 +3,100 @@ local m=33700354
local cm=_G["c"..m]
xpcall(function() require("expansions/script/c37564765") end,function() require("script/c37564765") end)
function cm.initial_effect(c)
aux.AddXyzProcedureLevelFree(c,nil,cm.gcheck,2,63)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_TOSS_DICE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.dicecon)
e2:SetOperation(cm.diceop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_TOSS_COIN)
e3:SetOperation(cm.coinop)
c:RegisterEffect(e3)
end
function cm.gcheck(g)
return g:GetClassCount(Card.GetCode)==1
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local op=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))
if op==0 then
local coinop=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
_TossCoin=Duel.TossCoin
function Duel.TossCoin(player,count)
local boolflg=false
local result = {_TossCoin(player,count)}
local result_ret={}
for i=0,count do
if boolflg==false then
table.insert(result_ret,coinop)
else
table.insert(result_ret,result[i])
end
end
Duel.TossCoin=_TossCoin
return table.unpack(result_ret)
end
else
local diceop=Duel.AnnounceNumber(tp,1,2,3,4,5,6)
_TossDice=Duel.TossDice
function Duel.TossDice(player,count,count2)
local boolflg=true
local result = {_TossDice(player,count,count2)}
local result_ret={}
local sum=count
if count2 then
sum=sum+count2
end
for i=0,sum do
if boolflg == true then
table.insert(result_ret,diceop)
boolflg=false
else
table.insert(result_ret,result[i])
end
end
Duel.TossDice=_TossDice
return table.unpack(result_ret)
end
end
end
function cm.dicecon(e,tp,eg,ep,ev,re,r,rp)
return rp==tp
end
function cm.diceop(e,tp,eg,ep,ev,re,r,rp)
local flag=0
local dc={Duel.GetDiceResult()}
for _,v in ipairs(dc) do
if v==6 then
flag=flag+1
end
end
Duel.Recover(tp,flag*2000,REASON_EFFECT)
end
function cm.coinop(e,tp,eg,ep,ev,re,r,rp)
local flag=0
local dc={Duel.GetCoinResult()}
for _,v in ipairs(dc) do
if v==1 then
flag=flag+1
end
end
Duel.Recover(tp,flag*2000,REASON_EFFECT)
end
\ No newline at end of file
--Maize ~自我重生的树精~
local m=33700960
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2)
c:EnableReviveLimit()
--negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DISABLE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetCountLimit(1)
e1:SetCondition(cm.discon)
e1:SetTarget(cm.distg)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_POSITION)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetHintTiming(TIMING_BATTLE_PHASE,TIMINGS_CHECK_MONSTER+TIMING_BATTLE_PHASE)
e2:SetCountLimit(1)
e2:SetCondition(cm.pscon)
e2:SetTarget(cm.pstg)
e2:SetOperation(cm.psop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.imcon)
e3:SetValue(cm.efilter)
c:RegisterEffect(e3)
end
function cm.lkfilter(c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_EARTH)
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetLinkedGroup():IsExists(cm.lkfilter,1,nil)
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(1-tp) and chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if ((tc:IsFaceup() and not tc:IsDisabled()) or tc:IsType(TYPE_TRAPMONSTER)) and tc:IsRelateToEffect(e) then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
if tc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
end
end
end
function cm.lkfilter1(c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_WATER)
end
function cm.pscon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetLinkedGroup():IsExists(cm.lkfilter1,1,nil)
end
function cm.filter(c)
return c:IsFaceup() and c:IsCanTurnSet()
end
function cm.pstg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,cm.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,1,0,0)
end
function cm.psop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsOnField() and tc:IsFaceup() then
if tc:IsType(TYPE_MONSTER) then
if Duel.ChangePosition(tc,POS_FACEDOWN_DEFENSE)>0 then
Duel.BreakEffect()
Duel.ChangePosition(tc,POS_FACEUP_ATTACK)
end
else
Duel.ChangePosition(rc,POS_FACEDOWN)
Duel.RaiseEvent(rc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
end
end
end
function cm.lkfilter2(c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_LIGHT)
end
function cm.imcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetLinkedGroup():IsExists(cm.lkfilter2,1,nil)
end
function cm.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
......@@ -91,7 +91,13 @@ function rsss.sscon(con)
end
function rsss.ssop(e,tp,eg,ep,ev,re,r,rp,c)
if c:IsLocation(LOCATION_GRAVE) then
local e1=rsef.SV_REDIRECT(c,"leave",LOCATION_REMOVED,nil,rsreset.est-RESET_TOFIELD)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
e1:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e1,true)
end
end
function rsss.MatFunction(c,fun)
......
......@@ -26,6 +26,7 @@ function s.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP + EFFECT_FLAG_DELAY)
e2:SetCondition(function(e) return e:GetHandler():GetFlagEffect(id)>0 end)
e2:SetOperation(s.negop)
c:RegisterEffect(e2)
--special summon other
......@@ -50,19 +51,19 @@ function s.spfilter(c)
return c:IsSetCard(0x144e) and c:IsType(TYPE_MONSTER) and c:IsAbleToRemoveAsCost()
end
--function s.MZFilter(c, tp)
-- return c:IsLocation(LOCATION_MZONE) and c:GetSequence() < 5 and c:IsControler(tp)
-- return c:IsLocation(LOCATION_MZONE) and c:GetSequence() < 5 and c:IsControler(tp)
--end
--function s.ChkfMMZ(sumcount)
-- return function(sg, e, tp, mg)
-- return sg:FilterCount(s.MZFilter, nil, tp) + Duel.GetLocationCount(tp, LOCATION_MZONE) >= sumcount
-- end
-- return function(sg, e, tp, mg)
-- return sg:FilterCount(s.MZFilter, nil, tp) + Duel.GetLocationCount(tp, LOCATION_MZONE) >= sumcount
-- end
--end
function s.spcost(e, tp, eg, ep, ev, re, r, rp, chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,2,nil) end
-- if chk == 0 then
-- return Duel.GetLocationCount(tp, LOCATION_MZONE) > -2 and #rg > 1 and
-- rg:CheckSubGroup(s.ChkfMMZ(1), 2, 2, tp)
-- end
-- if chk == 0 then
-- return Duel.GetLocationCount(tp, LOCATION_MZONE) > -2 and #rg > 1 and
-- rg:CheckSubGroup(s.ChkfMMZ(1), 2, 2, tp)
-- end
local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,2,2,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
......@@ -77,7 +78,7 @@ function s.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) and Duel.GetLocationCountFromEx(tp)>0 and Duel.SpecialSummon(c, 1, tp, tp, true, true, POS_FACEUP) ~= 0 then
c:CompleteProcedure()
-- c:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD, 0, 0)
c:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD, 0, 0)
end
end
function s.negop(e, tp, eg, ep, ev, re, r, rp)
......
......@@ -2,7 +2,6 @@
function c33701329.initial_effect(c)
--SSet
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
......
......@@ -18,8 +18,8 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.dmtg)
e2:SetOperation(cm.dmop)
e2:SetTarget(cm.damtg)
e2:SetOperation(cm.damop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
......
......@@ -27,6 +27,9 @@ function cm.initial_effect(c)
c:RegisterEffect(e3)
end
function cm.ovfilter(c)
return c:IsFaceup() and not c:IsCode(m) and c:GetOverlayCount()==0 and c:IsType(TYPE_XYZ)
end
function cm.atkval(e,c)
return c:GetOverlayCount()*500
end
......
......@@ -91,8 +91,7 @@ function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(cm.spfilter,c:GetControler(),LOCATION_EXTRA,0,c,sc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local sg=g:Select(tp,5,5,c)
c:SetMaterial(g)
Duel.Remove(sg,POS_FACEDOWN,REASON_MATERIAL+REASON_LINK)
Duel.Remove(sg,POS_FACEDOWN,REASON_COST)
end
function cm.indtg(e,c)
return e:GetHandler():GetLinkedGroup():IsContains(c)
......
--踏破新世界 ~开路之卷~
local m=33701440
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
local e8=e2:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp)
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
return eg:IsExists(cm.cfilter,1,nil,1-tp) and #g>0
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
if #g==0 then return end
Duel.Hint(HINT_CARD,0,m)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(500)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_DEFENSE)
tc:RegisterEffect(e8)
tc=g:GetNext()
end
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
\ No newline at end of file
--踏破新世界 ~铸甲之卷~
local m=33701441
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
local e8=e2:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp)
end
function cm.tf(c)
return cm.NewVenture(c) and c:IsAbleToHand()
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tf),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil)
local b1=#g>0
local b2=Duel.CheckLPCost(tp,500) and Duel.IsPlayerCanDraw(tp,1)
return eg:IsExists(cm.cfilter,1,nil,1-tp) and (b1 or b2)
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tf),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil)
local b1=#g>0
local b2=Duel.CheckLPCost(tp,500) and Duel.IsPlayerCanDraw(tp,1)
if b1 or b2 then
Duel.Hint(HINT_CARD,0,m)
local off=1
local ops={}
local opval={}
if b1 then
ops[off]=aux.Stringid(m,0)
opval[off-1]=1
off=off+1
end
if b2 then
ops[off]=aux.Stringid(m,1)
opval[off-1]=2
off=off+1
end
ops[off]=aux.Stringid(m,2)
opval[off-1]=3
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPTION)
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.tf),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
elseif sel==2 then
Duel.PayLPCost(tp,500)
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
\ No newline at end of file
--踏破新世界 ~巡天之卷~
local m=33701442
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
local e8=e2:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsFaceup()
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,1-tp)
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local lg=eg:Filter(cm.cfilter,nil,1-tp)
local rnum=lg:GetSum(Card.GetAttack)
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) and rnum>0 then
Duel.Hint(HINT_CARD,0,m)
Duel.Recover(tp,rnum,REASON_EFFECT)
end
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
--踏破新世界 ~平海之卷~
local m=33701443
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_TO_HAND)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsControler(tp) and c:IsPreviousLocation(LOCATION_DECK)
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND+LOCATION_ONFIELD,nil)
local b1= Duel.IsPlayerCanRemove(1-tp) and #g>0
and g:IsExists(Card.IsAbleToRemove,1,nil,1-tp,POS_FACEUP,REASON_RULE)
return eg:IsExists(cm.cfilter,1,nil,1-tp) and b1
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND+LOCATION_ONFIELD,nil)
local b1= Duel.IsPlayerCanRemove(1-tp) and #g>0
and g:IsExists(Card.IsAbleToRemove,1,nil,1-tp,POS_FACEUP,REASON_RULE)
if not b1 then return end
Duel.Hint(HINT_CARD,0,m)
local rg=g:Filter(Card.IsAbleToRemove,nil,1-tp,POS_FACEUP,REASON_RULE)
local sg=rg:RandomSelect(1-tp,1)
Duel.HintSelection(sg)
Duel.Remove(sg,POS_FACEUP,REASON_RULE)
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
--昂扬的大象承载着希望
local m=33701444
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e01=Effect.CreateEffect(c)
e01:SetDescription(aux.Stringid(m,0))
e01:SetCategory(CATEGORY_SPECIAL_SUMMON)
e01:SetType(EFFECT_TYPE_QUICK_O)
e01:SetCode(EVENT_FREE_CHAIN)
e01:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e01:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
e01:SetCondition(cm.spcon)
e01:SetTarget(cm.sptg)
e01:SetOperation(cm.spop)
c:RegisterEffect(e01)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE)
e3:SetOperation(cm.chainop)
c:RegisterEffect(e3)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAIN_NEGATED)
ge1:SetOperation(cm.regop)
ge1:SetLabelObject(ge3)
Duel.RegisterEffect(ge1,0)
local ge2=ge1:Clone()
ge2:SetCode(EVENT_CHAIN_DISABLED)
ge2:SetLabelObject(ge3)
Duel.RegisterEffect(ge2,0)
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_ADJUST)
ge3:SetOperation(cm.adjustop)
Duel.RegisterEffect(ge3,0)
end
end
--all
function cm.f(c)
return c:IsFaceup() and c:IsDisabled()
and c:GetFlagEffect(m+m)==0
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local de,sp=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER)
if de:GetHandlerPlayer()==sp then
Duel.RegisterFlagEffect(sp,m,RESET_PHASE+PHASE_END,0,1)
end
end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.f,e:GetHandlerPlayer(),LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
if #g>0 then
local tc=g:GetFirst()
while tc do
if tc:GetFlagEffect(m+m)==0 then
local p=tc:GetControler()
Duel.RegisterFlagEffect(p,m+m,RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(m+m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
tc=g:GetNext()
end
end
end
--Effect 1
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local ct1=Duel.GetFlagEffect(e:GetHandlerPlayer(),m)
local ct2=Duel.GetFlagEffect(e:GetHandlerPlayer(),m+m)
return ct1>=3 or (ct1+ct2)>=4 or ct2>=3
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+m)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(m+m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
if not b1 or b2==0 then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
--Effect 3
function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if re and rc:IsControler(e:GetHandlerPlayer()) and ep==tp then
Duel.SetChainLimit(cm.chainlm)
end
end
function cm.chainlm(e,rp,tp)
return tp==rp
end
--闪耀的孔雀摒除了沮丧
local m=33701445
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e01=Effect.CreateEffect(c)
e01:SetCategory(CATEGORY_SPECIAL_SUMMON)
e01:SetType(EFFECT_TYPE_QUICK_O)
e01:SetCode(EVENT_FREE_CHAIN)
e01:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e01:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
e01:SetCondition(cm.spcon)
e01:SetTarget(cm.sptg)
e01:SetOperation(cm.spop)
c:RegisterEffect(e01)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetValue(1)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetValue(1)
c:RegisterEffect(e3)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DESTROYED)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
--all
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
local tp1=tc:GetPreviousControler()
Duel.RegisterFlagEffect(tp1,m,RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end
--Effect 1
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,m)>=3
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+m)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(m+m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
if not b1 or b2==0 then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
--Effect 3
--悠闲的河马吞噬了烦恼
local m=33701446
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e01=Effect.CreateEffect(c)
e01:SetCategory(CATEGORY_SPECIAL_SUMMON)
e01:SetType(EFFECT_TYPE_QUICK_O)
e01:SetCode(EVENT_FREE_CHAIN)
e01:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e01:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
e01:SetCondition(cm.spcon)
e01:SetTarget(cm.sptg)
e01:SetOperation(cm.spop)
c:RegisterEffect(e01)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_REVERSE_DAMAGE)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetValue(cm.rev)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
cm[0]=0
cm[1]=0
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DAMAGE)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_PHASE_START+PHASE_DRAW)
ge3:SetOperation(cm.clear)
Duel.RegisterEffect(ge3,0)
end
end
--all
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if ep==0 and (bit.band(r,REASON_BATTLE)~=0 or (bit.band(r,REASON_EFFECT)~=0 and rp~=0)) then
cm[0]=cm[0]+ev
elseif ep~=0 and (bit.band(r,REASON_BATTLE)~=0 or (bit.band(r,REASON_EFFECT)~=0 and rp==0)) then
cm[1]=cm[1]+ev
end
end
function cm.clear(e,tp,eg,ep,ev,re,r,rp)
cm[0]=0
cm[1]=0
end
--Effect 1
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return cm[e:GetHandlerPlayer()]>=4000
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+m)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(m+m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
if not b1 or b2==0 then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
--Effect 3
function cm.rev(e,re,r,rp,rc)
local tp=e:GetHandlerPlayer()
return bit.band(r,REASON_EFFECT)~=0 or bit.band(r,REASON_BATTLE)~=0
end
--翱翔的老鹰引领着梦想
local m=33701447
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e02=Effect.CreateEffect(c)
e02:SetDescription(aux.Stringid(m,3))
e02:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH)
e02:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e02:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e02:SetCode(EVENT_PHASE+PHASE_STANDBY)
e02:SetCountLimit(1)
e02:SetCondition(cm.spcon)
e02:SetTarget(cm.sptg)
e02:SetOperation(cm.spop)
c:RegisterEffect(e02)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_FIELD)
e12:SetCode(EFFECT_DRAW_COUNT)
e12:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e12:SetRange(LOCATION_MZONE)
e12:SetTargetRange(1,0)
e12:SetValue(2)
c:RegisterEffect(e12)
end
--Effect 1
function cm.spcon(e)
local tp=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=tp and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)==0
end
function cm.sto(c,tp)
if not c:IsCode(m+1) then return false end
local b1=c:IsAbleToHand()
local b2=c:IsType(TYPE_FIELD)
and c:CheckUniqueOnField(tp) and not c:IsForbidden()
return b1 or b2
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.sto),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.sto),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp):GetFirst()
if tc then
local b1=tc:IsType(TYPE_FIELD) and tc:CheckUniqueOnField(tp) and not tc:IsForbidden()
if b1 and (not tc:IsAbleToHand() or Duel.SelectOption(tp,1190,aux.Stringid(m,1))==1) then
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if fc then
Duel.SendtoGrave(fc,REASON_RULE)
Duel.BreakEffect()
end
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
else
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
end
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
\ No newline at end of file
--那电光普照的未来天堂
local m=33701448
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x46e,LOCATION_FZONE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,2))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_FZONE)
e2:SetCondition(cm.ctcon1)
e2:SetOperation(cm.ctop1)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_NEGATED)
e3:SetRange(LOCATION_FZONE)
e3:SetCondition(cm.ctcon2)
e3:SetOperation(cm.ctop2)
c:RegisterEffect(e3)
--Effect 3 buff+
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_INDESTRUCTABLE)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e4:SetRange(LOCATION_FZONE)
e4:SetTargetRange(LOCATION_ONFIELD,0)
e4:SetCondition(cm.bfcon)
e4:SetTarget(cm.infilter)
e4:SetValue(1)
e4:SetLabel(3)
c:RegisterEffect(e4)
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_FIELD)
e12:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_SET_AVAILABLE)
e12:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e12:SetRange(LOCATION_FZONE)
e12:SetTargetRange(LOCATION_ONFIELD,0)
e12:SetCondition(cm.bfcon)
e12:SetTarget(cm.infilter)
e12:SetValue(aux.tgoval)
e12:SetLabel(5)
c:RegisterEffect(e12)
local e14=Effect.CreateEffect(c)
e14:SetType(EFFECT_TYPE_FIELD)
e14:SetCode(EFFECT_IMMUNE_EFFECT)
e14:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e14:SetRange(LOCATION_FZONE)
e14:SetTargetRange(LOCATION_ONFIELD,0)
e14:SetCondition(cm.bfcon)
e14:SetTarget(cm.infilter)
e14:SetValue(cm.efilter)
e14:SetLabel(7)
c:RegisterEffect(e14)
local e15=Effect.CreateEffect(c)
e15:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e15:SetRange(LOCATION_FZONE)
e15:SetCode(EVENT_PHASE+PHASE_STANDBY)
e15:SetCountLimit(1)
e15:SetCondition(cm.drcon)
e15:SetOperation(cm.drop)
c:RegisterEffect(e15)
--Effect 4
local e34=Effect.CreateEffect(c)
e34:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e34:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e34:SetCode(EFFECT_DESTROY_REPLACE)
e34:SetRange(LOCATION_FZONE)
e34:SetTarget(cm.reptg)
c:RegisterEffect(e34)
local e36=Effect.CreateEffect(c)
e36:SetType(EFFECT_TYPE_SINGLE)
e36:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e36:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e36:SetCondition(cm.rmcon)
e36:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e36)
end
--Effect 1
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local ct=1
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_REVERSE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetValue(cm.rev)
if Duel.GetTurnPlayer()==e:GetHandlerPlayer() then
ct=2
end
e1:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,ct)
Duel.RegisterEffect(e1,tp)
end
function cm.rev(e,re,r,rp,rc)
return bit.band(r,REASON_EFFECT)~=0 or bit.band(r,REASON_BATTLE)~=0
end
--Effect 2
function cm.cfilter(c,tp)
return c:GetReasonPlayer()==1-tp
and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_MZONE)
end
function cm.ctcon1(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,tp)
end
function cm.ctop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=eg:FilterCount(cm.cfilter,nil,tp)
if g>0 then
c:AddCounter(0x46e,g)
end
end
function cm.ctcon2(e,tp,eg,ep,ev,re,r,rp)
local de,dp=Duel.GetChainInfo(ev,CHAININFO_DISABLE_REASON,CHAININFO_DISABLE_PLAYER)
return de and dp~=tp and rp==tp
end
function cm.ctop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:AddCounter(0x46e,1)
end
--Effect 3 buff+
function cm.bfcon(e)
local c=e:GetHandler()
return c:GetCounter(0x46e)>=e:GetLabel()
end
function cm.infilter(e,c)
return c~=e:GetHandler()
end
function cm.efilter(e,re)
return re:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and c:GetCounter(0x46e)>=10
and Duel.IsPlayerCanDraw(p,1)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=e:GetHandlerPlayer()
if Duel.SelectYesNo(p,aux.Stringid(m,0)) then
Duel.Hint(HINT_CARD,0,m)
Duel.Draw(p,1,REASON_EFFECT)
end
end
--Effect 4
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46e)
if chk==0 then return not c:IsReason(REASON_REPLACE)
and c:IsCanRemoveCounter(tp,0x46e,7,REASON_EFFECT) end
c:AddCounter(0x46e,ct)
c:RemoveCounter(tp,0x46e,14,REASON_EFFECT+REASON_REPLACE)
return true
end
function cm.rmcon(e)
local c=e:GetHandler()
return c:IsFaceup() and c:IsLocation(LOCATION_FZONE)
and c:IsReason(REASON_DESTROY)
end
--纯洁之魂 - 白野
local m=33701449
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetValue(1)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e4)
local e13=Effect.CreateEffect(c)
e13:SetType(EFFECT_TYPE_FIELD)
e13:SetRange(LOCATION_MZONE)
e13:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e13:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e13:SetTargetRange(1,0)
e13:SetTarget(cm.sumlimit)
c:RegisterEffect(e13)
--Effect 2
local e01=Effect.CreateEffect(c)
e01:SetType(EFFECT_TYPE_SINGLE)
e01:SetCode(EFFECT_UPDATE_ATTACK)
e01:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e01:SetRange(LOCATION_MZONE)
e01:SetValue(cm.atkval)
c:RegisterEffect(e01)
--Effect 3
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(cm.tkcon)
e7:SetValue(aux.imval1)
c:RegisterEffect(e7)
local e8=e7:Clone()
e8:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e8:SetValue(aux.tgoval)
c:RegisterEffect(e8)
--Effect 4
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCondition(cm.imcon)
e1:SetValue(0)
c:RegisterEffect(e1)
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkType,2,nil,TYPE_TOKEN)
end
--Effect 1
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return not c:IsType(TYPE_TOKEN)
end
--Effect 2
function cm.atkval(e,c)
local g=e:GetHandler():GetLinkedGroup():FilterCount(Card.IsType,nil,TYPE_TOKEN)
return g*2000
end
--Effect 3
function cm.tkcon(e)
return Duel.IsExistingMatchingCard(Card.IsType,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil,TYPE_TOKEN)
end
--Effect 4
function cm.imcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==1
end
\ No newline at end of file
--启明之魂 - 赤街
local m=33701450
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x46f)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MATERIAL_CHECK)
e1:SetValue(cm.valcheck)
c:RegisterEffect(e1)
local e02=Effect.CreateEffect(c)
e02:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e02:SetCode(EVENT_SPSUMMON_SUCCESS)
e02:SetCondition(cm.regcon)
e02:SetOperation(cm.regop)
e02:SetLabelObject(e1)
c:RegisterEffect(e02)
--Effect 2
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(m,0))
e7:SetCategory(CATEGORY_DRAW)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCode(EVENT_DRAW)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(cm.con1)
e7:SetTarget(cm.tg1)
e7:SetOperation(cm.op1)
c:RegisterEffect(e7)
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(m,1))
e12:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e12:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e12:SetProperty(EFFECT_FLAG_DELAY)
e12:SetCode(EVENT_TO_HAND)
e12:SetRange(LOCATION_MZONE)
e12:SetCountLimit(1)
e12:SetCondition(cm.con2)
e12:SetTarget(cm.tg2)
e12:SetOperation(cm.op2)
c:RegisterEffect(e12)
local e11=Effect.CreateEffect(c)
e11:SetDescription(aux.Stringid(m,2))
e11:SetCategory(CATEGORY_DESTROY)
e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e11:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e11:SetCode(EVENT_DESTROYED)
e11:SetRange(LOCATION_MZONE)
e11:SetCondition(cm.con3)
e11:SetTarget(cm.tg3)
e11:SetOperation(cm.op3)
c:RegisterEffect(e11)
--Effect 3
local e32=Effect.CreateEffect(c)
e32:SetCategory(CATEGORY_TOGRAVE)
e32:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e32:SetCode(EVENT_LEAVE_FIELD)
e32:SetProperty(EFFECT_FLAG_DELAY)
e32:SetCondition(cm.rlcon)
e32:SetCost(cm.rlcost)
e32:SetTarget(cm.rltg)
e32:SetOperation(cm.rlop)
c:RegisterEffect(e32)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_LEAVE_FIELD_P)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetOperation(cm.fdop)
e5:SetLabelObject(e32)
c:RegisterEffect(e5)
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkAttribute,2,nil,ATTRIBUTE_FIRE)
end
--Effect 1
function cm.valcheck(e,c)
local g=c:GetMaterialCount()
e:SetLabel(g)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
and e:GetLabelObject():GetLabel()~=0
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local vt=e:GetLabelObject():GetLabel()
local c=e:GetHandler()
c:AddCounter(0x46f,vt)
end
--Effect 2
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
local b2=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
return b1 and b2 and ep~=tp
end
function cm.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
if chk==0 then return b1 and Duel.IsPlayerCanDraw(tp,1) end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function cm.cf(c,tp)
return not c:IsReason(REASON_DRAW)
and c:IsControler(1-tp)
and c:IsPreviousLocation(LOCATION_DECK+LOCATION_GRAVE)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
local b2=Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)>Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)
return b1 and b2 and eg:IsExists(cm.cf,1,nil,tp)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
if chk==0 then return b1 and Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(Card.IsAbleToHand),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function cm.cfilter(c,tp,rp)
return c:IsPreviousControler(tp)
and c:IsPreviousLocation(LOCATION_ONFIELD)
and c:IsReason(REASON_DESTROY)
and c:IsReason(REASON_EFFECT)
and rp==1-tp
end
function cm.con3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
local b2=Duel.GetLP(tp)<Duel.GetLP(1-tp)
return b1 and b2 and eg:IsExists(cm.cfilter,1,nil,tp,rp)
end
function cm.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
if chk==0 then return b1 and Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
if #g>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
--Effect 3
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
e:GetLabelObject():SetLabel(ct)
end
function cm.rlcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and e:GetLabel()>0
end
function cm.rlcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
function cm.rtg(c,tp)
return Duel.IsPlayerCanSendtoGrave(1-tp,c)
end
function cm.rltg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabel()
local g=Duel.GetMatchingGroup(cm.rtg,tp,0,LOCATION_ONFIELD,nil,tp)
if chk==0 then return ct>0 and #g>=ct end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,ct,0,0)
end
function cm.rlop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
local g=Duel.GetMatchingGroup(cm.rtg,tp,0,LOCATION_ONFIELD,nil,tp)
if ct>0 and #g>=ct then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_TOGRAVE)
local sg=g:FilterSelect(1-tp,cm.rtg,ct,ct,nil,tp)
Duel.HintSelection(sg)
Duel.SendtoGrave(sg,REASON_RULE)
end
end
--渴求之魂 - 碧海
local m=33701451
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_DISABLE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.lpcon)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
c:RegisterEffect(e2)
--Effect 2
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(m,0))
e12:SetCategory(CATEGORY_RECOVER+CATEGORY_DRAW)
e12:SetType(EFFECT_TYPE_QUICK_O)
e12:SetCode(EVENT_FREE_CHAIN)
e12:SetRange(LOCATION_MZONE)
e12:SetHintTiming(TIMING_BATTLE_START+TIMING_BATTLE_END)
e12:SetCountLimit(1)
e12:SetCondition(cm.descon)
e12:SetTarget(cm.destg)
e12:SetOperation(cm.desop)
c:RegisterEffect(e12)
--Effect 3
local e21=Effect.CreateEffect(c)
e21:SetDescription(aux.Stringid(m,1))
e21:SetType(EFFECT_TYPE_QUICK_O)
e21:SetCode(EVENT_CHAINING)
e21:SetRange(LOCATION_MZONE)
e21:SetCountLimit(1,m)
e21:SetCondition(cm.chcon)
e21:SetTarget(cm.chtg)
e21:SetOperation(cm.chop)
c:RegisterEffect(e21)
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkType,1,nil,TYPE_XYZ)
end
--Effect 1
function cm.lpcon(e)
local lp=Duel.GetLP(e:GetHandlerPlayer())
return lp<=12000
end
--Effect 2
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=e:GetHandler():GetLinkedGroup():Filter(Card.IsFaceup,nil)
local atk=g:GetSum(Card.GetAttack)
if chk==0 then return atk>0 end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,atk)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=c:GetLinkedGroup():Filter(Card.IsFaceup,nil)
local atk=g:GetSum(Card.GetAttack)
if atk>0 and c:IsRelateToEffect(e) then
if Duel.Recover(tp,atk,REASON_EFFECT)~=0
and Duel.IsPlayerCanDraw(1-tp,2)
and Duel.SelectYesNo(1-tp,aux.Stringid(m,2)) then
Duel.BreakEffect()
local def=g:GetSum(Card.GetDefense)
if Duel.Draw(1-tp,2,REASON_EFFECT)~=0
and def>0 then
Duel.BreakEffect()
Duel.Recover(tp,def,REASON_EFFECT)
end
end
end
end
--Effect 3
function cm.chcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp
end
function cm.chtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,2000)
end
function cm.chop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Damage(tp,2000,REASON_EFFECT)<=0 then return end
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
Duel.ChangeChainOperation(ev,cm.repop)
end
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.Recover(tp,2000,REASON_EFFECT)
end
--孤寂之魂 - 夜城
local m=33701452
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
c:EnableReviveLimit()
--cannot special summon
local e0=Effect.CreateEffect(c)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(aux.FALSE)
c:RegisterEffect(e0)
--Effect 1
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_EXTRA)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetCondition(cm.spcon)
e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,3))
e1:SetCategory(CATEGORY_GRAVE_SPSUMMON+CATEGORY_DRAW+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e1:SetCountLimit(1)
e1:SetCondition(cm.con)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
end
--Effect 1
function cm.ckcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function cm.cfilter(c,tp,sc)
return c:IsSetCard(0x144e) and c:IsType(TYPE_MONSTER)
and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup())
and c:IsAbleToRemoveAsCost()
and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
and Duel.GetActivityCount(tp,ACTIVITY_SPSUMMON)==0
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,3,nil,tp,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,3,3,nil,tp,e:GetHandler())
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsCanBeSpecialSummoned(e,0,tp,true,false) and c:IsLocation(LOCATION_EXTRA) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
and c:IsLocation(LOCATION_EXTRA) then
if Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)==0 then return end
c:CompleteProcedure()
end
end
--Effect 2
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local b1=not Duel.IsPlayerAffectedByEffect(tp,EFFECT_SKIP_M1)
local b2=not Duel.IsPlayerAffectedByEffect(tp,EFFECT_SKIP_BP)
and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_CANNOT_BP)
local b3=not Duel.IsPlayerAffectedByEffect(tp,EFFECT_SKIP_M2)
if chk==0 then return b1 or b2 or b3 end
if b1 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_M1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
if b2 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_BP)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
if b3 and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_M2)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
if c:GetFlagEffect(m)>0 then return false end
local off=1
local ops={}
local opval={}
if b1 then
ops[off]=aux.Stringid(m,0)
opval[off-1]=1
off=off+1
end
if b2 then
ops[off]=aux.Stringid(m,1)
opval[off-1]=2
off=off+1
end
if b3 then
ops[off]=aux.Stringid(m,2)
opval[off-1]=3
off=off+1
end
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
if sel==1 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_M1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
elseif sel==2 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_BP)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
elseif sel==3 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_M2)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetFlagEffect(m)
Debug.Message(ct)
if ct>0 then
Duel.Hint(HINT_CARD,0,m)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(ct)
e1:SetCondition(cm.thcon)
e1:SetOperation(cm.thop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function cm.sp(c,e,tp)
return c:IsType(TYPE_MONSTER)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
local b1= ct>=1 and Duel.IsPlayerCanDraw(tp,1)
local b2= ct>=2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.sp),tp,LOCATION_GRAVE,0,1,nil,e,tp)
local b3= ct>=3
return b1 or b2 or b3
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local c=e:GetHandler()
local ct=e:GetLabel()
local b1= ct>=1 and Duel.IsPlayerCanDraw(tp,1)
local b2= ct>=2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.sp),tp,LOCATION_GRAVE,0,1,nil,e,tp)
local b3= ct>=3
if b1 then
Duel.Draw(tp,1,REASON_EFFECT)
end
if b2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.sp),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
if b3 then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetTargetRange(0,1)
e3:SetValue(cm.aclimit2)
e3:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
Duel.RegisterEffect(e3,tp)
end
c:ResetFlagEffect(m)
end
function cm.aclimit2(e,re,tp)
return re:GetActivateLocation()==LOCATION_HAND
end
\ No newline at end of file
--破灭之魂 - 靛墟
local m=33701453
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(m,0))
e12:SetCategory(CATEGORY_DAMAGE+CATEGORY_DESTROY)
e12:SetType(EFFECT_TYPE_QUICK_O)
e12:SetCode(EVENT_FREE_CHAIN)
e12:SetRange(LOCATION_MZONE)
e12:SetHintTiming(TIMING_BATTLE_START+TIMING_BATTLE_END)
e12:SetCountLimit(1,m)
e12:SetCondition(cm.descon)
e12:SetTarget(cm.destg)
e12:SetOperation(cm.desop)
c:RegisterEffect(e12)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DESTROYED)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
--all
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
local tp1=tc:GetPreviousControler()
Duel.RegisterFlagEffect(tp1,m,RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkRace,1,nil,RACE_DRAGON)
end
--Effect 1
function cm.descon(e)
local tp=e:GetHandlerPlayer()
local ct1=Duel.GetFlagEffect(tp,m)
local ct2=Duel.GetFlagEffect(1-tp,m)
return ct1>0 or ct2>0
end
function cm.check(c,atk)
return c:GetAttack()<atk and c:IsType(TYPE_MONSTER)
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=e:GetHandler():GetLinkedGroup()
if chk==0 then return #g>0 end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=c:GetLinkedGroup()
if c:IsRelateToEffect(e)
and #g>0
and Duel.Destroy(g,REASON_EFFECT)>0 then
local atk=Duel.GetOperatedGroup():GetSum(Card.GetAttack)
if atk==0 then return end
if Duel.SelectYesNo(1-tp,aux.Stringid(m,0)) then
local kg=Duel.GetFieldGroup(tp,0,LOCATION_DECK)
Duel.ConfirmCards(tp,kg)
if kg:IsExists(cm.check,1,nil,atk) then
local xg=Group.CreateGroup()
local mg=Duel.GetMatchingGroup(cm.check,tp,0,LOCATION_DECK,nil,atk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dc=mg:Select(tp,1,1,nil):GetFirst()
if dc then
xg:AddCard(dc)
mg:RemoveCard(dc)
atk=atk-dc:GetAttack()
local chk=true
while chk do
if atk>0 and mg:IsExists(cm.check,1,nil,atk)
and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tc=mg:FilterSelect(tp,cm.check,1,1,nil,atk):GetFirst()
xg:AddCard(tc)
mg:RemoveCard(tc)
atk=atk-tc:GetAttack()
else
chk=false
end
end
Duel.Destroy(xg,REASON_EFFECT)
end
Duel.ShuffleDeck(1-tp)
else
Duel.ShuffleDeck(1-tp)
end
else
Duel.Damage(1-tp,atk,REASON_EFFECT)
end
end
end
--远航之魂 - 璞玉
local m=33701454
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,cm.mfilter,2,4)
c:EnableReviveLimit()
--extra material
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_EXTRA_LINK_MATERIAL)
e1:SetRange(LOCATION_EXTRA)
e1:SetTargetRange(LOCATION_SZONE+LOCATION_FZONE,0)
e1:SetValue(cm.matval)
c:RegisterEffect(e1)
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
--Effect 2
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_TOGRAVE+CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetCode(EVENT_DESTROYED)
e6:SetTarget(cm.sptg)
e6:SetOperation(cm.spop)
c:RegisterEffect(e6)
end
--link summon
function cm.mfilter(c)
local b1=c:GetOriginalType()&TYPE_SPELL+TYPE_TRAP~=0 and c:IsLocation(LOCATION_MZONE)
local b2=c:GetOriginalType()&TYPE_MONSTER~=0 and c:IsLocation(LOCATION_SZONE+LOCATION_FZONE)
return b1 or b2
end
--extra material
function cm.matval(e,lc,mg,c,tp)
if e:GetHandler()~=lc then return false,nil end
return true,true
end
--Effect 1
function cm.f(c)
return c:GetOriginalType()&TYPE_MONSTER~=0
end
function cm.cf(c)
return not c:IsForbidden()
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local zone=bit.band(c:GetLinkedZone(tp),0x1f)
local g=Duel.GetMatchingGroup(cm.f,tp,LOCATION_SZONE,0,nil)
local mg=c:GetLinkedGroup():Filter(cm.cf,nil)
local b1=Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and #mg>0
and Duel.IsPlayerCanDraw(tp,1)
local b2=#g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0,zone)>0 and Duel.IsPlayerCanDraw(tp,1)
if chk==0 then return b1 or b2 end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local zone=bit.band(c:GetLinkedZone(tp),0x1f)
local g=Duel.GetMatchingGroup(cm.f,tp,LOCATION_SZONE,0,nil)
local mg=c:GetLinkedGroup():Filter(cm.cf,nil)
local b1=Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and #mg>0
and Duel.IsPlayerCanDraw(tp,1)
local b2=#g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0,zone)>0 and Duel.IsPlayerCanDraw(tp,1)
local opt=0
if b1 and b2 then
opt=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))+1
elseif b1 then opt=1
elseif b2 then opt=2
end
if opt==1 then
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=mg:Select(tp,1,1,nil):GetFirst()
if tc and not tc:IsImmuneToEffect(e) then
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
elseif opt==2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local tc=g:Select(tp,1,1,nil):GetFirst()
local flag=bit.bxor(zone,0xff)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,flag)
if Duel.MoveToField(tc,tp,tp,LOCATION_MZONE,POS_FACEUP,true,s) then
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
--Effect 2
function cm.tf(c)
return c:IsFaceup() and c:IsAbleToGrave()
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.tf,tp,LOCATION_SZONE,0,nil)
if chk==0 then return #g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_SZONE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=Duel.GetMatchingGroup(cm.tf,tp,LOCATION_SZONE,0,nil)
if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tc=g:Select(tp,1,1,nil):GetFirst()
if tc and Duel.SendtoGrave(tc,REASON_EFFECT)>0
and b1 and b2 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
end
--瑞佳 永恒之扉
local m=33701455
local cm=_G["c"..m]
function cm.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MATERIAL_CHECK)
e1:SetValue(cm.valcheck)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.regcon)
e2:SetOperation(cm.regop)
e2:SetLabelObject(e1)
c:RegisterEffect(e2)
end
--Effect 1
function cm.valcheck(e,c)
local g=c:GetMaterial():FilterCount(Card.IsType,nil,TYPE_TOKEN)
e:SetLabel(g)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
and e:GetLabelObject():GetLabel()~=0
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local vt=e:GetLabelObject():GetLabel()
local c=e:GetHandler()
c:RegisterFlagEffect(m+m*2,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,vt-1))
if vt>=1 then
local e02=Effect.CreateEffect(c)
e02:SetType(EFFECT_TYPE_SINGLE)
e02:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e02:SetValue(cm.indes)
e02:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e02)
end
if vt>=2 then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetValue(cm.efilter)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e2)
end
if vt>=3 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,4))
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetHintTiming(TIMING_DAMAGE_STEP,TIMINGS_CHECK_MONSTER+TIMING_DAMAGE_STEP)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.rntg)
e1:SetOperation(cm.rnop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
if vt>=4 then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
e3:SetTarget(cm.sumlimit)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e3)
end
end
function cm.indes(e,c)
return not c:IsType(TYPE_TOKEN)
end
function cm.efilter(e,te)
return te:IsActiveType(TYPE_MONSTER) and te:GetOwner()~=e:GetOwner()
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return not c:IsType(TYPE_TOKEN)
end
function cm.rf(c)
return c:IsType(TYPE_MONSTER)
and c:IsAbleToRemove()
and (c:GetAttack()>0 or c:GetDefense()>0)
end
function cm.rntg(e,tp,eg,ep,ev,re,r,rp,chk)
local g1=Duel.GetMatchingGroup(cm.rf,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
local g2=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_MZONE,0,nil,TYPE_TOKEN)
if chk==0 then return #g1>0 and #g2>0 end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g1,1,0,0)
end
function cm.rnop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g1=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.rf),tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
local g2=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_MZONE,0,nil,TYPE_TOKEN)
if #g1==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local rg=g1:Select(tp,1,1,nil)
local rc=rg:GetFirst()
Duel.HintSelection(rg)
if rc and Duel.Remove(rc,POS_FACEUP,REASON_EFFECT)>0
and rc:IsLocation(LOCATION_REMOVED)
and #g2>0 then
local atk=rc:GetAttack()
local def=rc:GetDefense()
if atk>0 or def>0 then
local tc=g2:GetFirst()
while tc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(def)
tc:RegisterEffect(e2)
tc=g2:GetNext()
end
end
end
end
......@@ -2,7 +2,8 @@
local m=33701600
local cm=_G["c"..m]
function cm.initial_effect(c)
--Ritual Summon
aux.AddCodeList(c,33701601)
--Ritual Summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES+CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
......
--联动融合
local m=33703018
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES+CATEGORY_DAMAGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,LOCATION_EXTRA,0):Filter(Card.IsType,nil,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ)
if chk==0 then return #g>0 end
end
function cm.f1(c)
return not c:IsForbidden()
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetFieldGroup(tp,LOCATION_EXTRA,0)
local g1=Duel.GetFieldGroup(1-tp,LOCATION_EXTRA,0)
local lose=false
local close=false
if g:FilterCount(Card.IsType,nil,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ)>0 then
local tgp=1-tp
local chkf=1-tp
Duel.ConfirmCards(1-tp,g)
Duel.Hint(HINT_SELECTMSG,tgp,HINTMSG_OPERATECARD)
local setg=g:FilterSelect(tgp,Card.IsType,1,1,nil,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ)
if #setg==0 then return false end
local tc=setg:GetFirst()
Duel.Hint(HINT_CARD,0,tc:GetOriginalCodeRule())
local min,max=aux.GetMaterialListCount(tc)
local cong=Duel.GetMatchingGroup(Card.IsType,tgp,LOCATION_DECK,0,nil,TYPE_MONSTER)
local maxfs=false
if #cong==0 then return false end
if tc:IsType(TYPE_FUSION) and tc:CheckFusionMaterial(cong,nil,chkf) and max>0 and max>10 and Duel.SelectYesNo(tgp,aux.Stringid(m,1)) then
Duel.SendtoGrave(tc,REASON_RULE)
Duel.SendtoDeck(tc,tgp,SEQ_DECKSHUFFLE,REASON_RULE)
mg=Duel.SelectFusionMaterial(1-tp,tc,cong,nil,chkf)
maxfs=true
else
Duel.Hint(HINT_SELECTMSG,tgp,HINTMSG_CONFIRM)
mg=cong:FilterSelect(tgp,cm.f1,1,#cong,nil)
end
Duel.ConfirmCards(tp,mg)
if maxfs~=false then
Duel.SendtoGrave(tc,REASON_RULE)
Duel.SendtoDeck(tc,tc:GetOwner(),SEQ_DECKSHUFFLE,REASON_RULE)
end
Duel.ShuffleExtra(tp)
--
local mctchk=min>0 and max>0 and #mg==min
local xmctchk=min>0 and max>0 and #mg>min and max>10
local spsum=Duel.GetLocationCountFromEx(tgp,tgp,nil,tc)>0 and tc:IsCanBeSpecialSummoned(e,0,tgp,false,false)
local fschk=tc:IsType(TYPE_FUSION) and spsum and tc:CheckFusionMaterial(mg,nil,chkf)
local sychk=spsum and tc:IsSynchroSummonable(nil,mg,#mg-1,#mg-1)
local xchk=spsum and tc:IsXyzSummonable(mg,#mg,#mg)
local chk1=mg:FilterCount(Card.IsAbleToGrave,nil)==#mg
if fschk and xmctchk and maxfs~=false and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
lose=true
end
if fschk and mctchk and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
lose=true
end
if sychk and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
lose=true
end
if xchk and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
lose=true
end
end
if lose==true and #g1>0 then
Duel.BreakEffect()
local tgp=tp
local chkf=tp
Duel.ConfirmCards(tp,g1)
Duel.Hint(HINT_SELECTMSG,tgp,HINTMSG_OPERATECARD)
local setg=g1:FilterSelect(tgp,Card.IsType,1,1,nil,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ)
if #setg==0 then return false end
local tc=setg:GetFirst()
Duel.Hint(HINT_CARD,0,tc:GetOriginalCodeRule())
local min,max=aux.GetMaterialListCount(tc)
local cong=Duel.GetMatchingGroup(Card.IsType,tgp,LOCATION_DECK,0,nil,TYPE_MONSTER)
local maxfs=false
if #cong==0 then return false end
if tc:IsType(TYPE_FUSION) and tc:CheckFusionMaterial(cong,nil,chkf) and max>0 and max>10 and Duel.SelectYesNo(tgp,aux.Stringid(m,1)) then
Duel.SendtoGrave(tc,REASON_RULE)
Duel.SendtoDeck(tc,tp,SEQ_DECKSHUFFLE,REASON_RULE)
mg=Duel.SelectFusionMaterial(tp,tc,cong,nil,chkf)
maxfs=true
else
Duel.Hint(HINT_SELECTMSG,tgp,HINTMSG_CONFIRM)
mg=cong:FilterSelect(tgp,cm.f1,1,#cong,nil)
end
Duel.ConfirmCards(1-tp,mg)
if maxfs~=false then
Duel.SendtoGrave(tc,REASON_RULE)
Duel.SendtoDeck(tc,tc:GetOwner(),SEQ_DECKSHUFFLE,REASON_RULE)
end
Duel.ShuffleExtra(1-tp)
--
local mctchk=min>0 and max>0 and #mg==min
local xmctchk=min>0 and max>0 and #mg>min and max>10
local spsum=Duel.GetLocationCountFromEx(tgp,tgp,nil,tc)>0 and tc:IsCanBeSpecialSummoned(e,0,tgp,false,false)
local fschk=tc:IsType(TYPE_FUSION) and spsum and tc:CheckFusionMaterial(mg,nil,chkf)
local sychk=spsum and tc:IsSynchroSummonable(nil,mg,#mg-1,#mg-1)
local xchk=spsum and tc:IsXyzSummonable(mg,#mg,#mg)
local chk1=mg:FilterCount(Card.IsAbleToGrave,nil)==#mg
if fschk and xmctchk and maxfs~=false and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
close=true
end
if fschk and mctchk and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
close=true
end
if sychk and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
close=true
end
if xchk and chk1 and Duel.SelectYesNo(tgp,aux.Stringid(m,0)) then
Duel.BreakEffect()
if Duel.SendtoGrave(mg,REASON_EFFECT)==0 then return false end
Duel.SpecialSummon(tc,0,tgp,tgp,false,false,POS_FACEUP)
close=true
end
end
if close==false and lose==false then
Duel.Damage(1-tp,1000,REASON_EFFECT,true)
Duel.Damage(tp,1000,REASON_EFFECT,true)
Duel.RDComplete()
elseif lose==true and close==false then
Duel.Damage(tp,1000,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -66,7 +66,8 @@ function cm.initial_effect(c)
e5:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e5:SetRange(LOCATION_FZONE)
e5:SetTargetRange(1,1)
e5:SetValue(cm.drval)
e5:SetCondition(cm.drcon)
e5:SetValue(2)
c:RegisterEffect(e5)
--recover
local e6=Effect.CreateEffect(c)
......@@ -142,15 +143,8 @@ function cm.sumval(e,c)
local sp=cm.GetNorthPlayer(e:GetHandler(),e:GetHandlerPlayer())
return c:IsControler(sp)
end
function cm.drval(e)
local tp=Duel.GetTurnPlayer()
local sp=cm.GetNorthPlayer(e:GetHandler(),e:GetHandlerPlayer())
local dr=Duel.GetDrawCount(tp)
if tp==1-sp then
return 2
else
return dr
end
function cm.drcon(e)
return Duel.GetTurnPlayer()==1-cm.GetNorthPlayer(e:GetHandler(),e:GetHandlerPlayer())
end
function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
local sp=cm.GetNorthPlayer(e:GetHandler(),tp)
......
--Lily White ~ 白雪飞舞的街道
local m=33711115
local cm=_G["c"..m]
local CTR_PETAL = 0x234
function cm.initial_effect(c)
c:EnableCounterPermit(0x234)
c:EnableReviveLimit()
--synchro summon
aux.AddSynchroProcedure(c,aux.Tuner(nil),aux.NonTuner(Card.IsType,TYPE_TOKEN),1)
--add counter
local e1 = Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m, 0))
e1:SetCategory(CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(cm.cttg)
e1:SetOperation(cm.ctop)
c:RegisterEffect(e1)
--ADD COUNTER
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCost(cm.bmcost)
e2:SetTarget(cm.bmtg)
e2:SetOperation(cm.bmop)
c:RegisterEffect(e2)
--indes
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.idcon)
e3:SetValue(aux.indoval)
c:RegisterEffect(e3)
--negate
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,3))
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EVENT_ATTACK_ANNOUNCE)
e4:SetCondition(cm.condition)
e4:SetCost(cm.cost)
e4:SetOperation(cm.neop)
c:RegisterEffect(e4)
--atkchange
local e10=Effect.CreateEffect(c)
e10:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOEXTRA)
e10:SetDescription(aux.Stringid(m,4))
e10:SetType(EFFECT_TYPE_QUICK_O)
e10:SetCode(EVENT_FREE_CHAIN)
e10:SetRange(LOCATION_MZONE)
e10:SetCost(cm.rccost)
e10:SetTarget(cm.rctg)
e10:SetOperation(cm.rcop)
c:RegisterEffect(e10)
end
function cm.cttg(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then
return true
end
Duel.SetOperationInfo(0, CATEGORY_COUNTER, nil, 2, 0, CTR_PETAL)
end
function cm.ctop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) then
c:AddCounter(CTR_PETAL, 2)
end
end
function cm.idcon(e)
return Duel.GetMatchingGroupCount(Card.IsType,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,nil,TYPE_TOKEN)>0
end
function cm.bmcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,Card.IsType,1,nil,TYPE_TOKEN) end
local g=Duel.SelectReleaseGroup(tp,Card.IsType,1,1,nil,TYPE_TOKEN)
Duel.Release(g,REASON_COST)
end
function cm.bmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanAddCounter(tp,CTR_PETAL,1,e:GetHandler()) end
end
function cm.bmop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) or not e:GetHandler():IsFaceup() then return end
e:GetHandler():AddCounter(CTR_PETAL,1)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function cm.cfilter(c)
return c:IsType(TYPE_SPIRIT) and c:IsAbleToRemoveAsCost()
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,LOCATION_ONFIELD,LOCATION_ONFIELD,CTR_PETAL,1,REASON_COST) end
Duel.RemoveCounter(tp,LOCATION_ONFIELD,LOCATION_ONFIELD,CTR_PETAL,1,REASON_COST)
end
function cm.neop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateAttack()
end
function cm.rccost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,LOCATION_ONFIELD,LOCATION_ONFIELD,CTR_PETAL,4,REASON_COST) end
Duel.RemoveCounter(tp,LOCATION_ONFIELD,LOCATION_ONFIELD,CTR_PETAL,4,REASON_COST)
end
function cm.rctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToExtra() and Duel.IsExistingMatchingCard(cm.check,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.check(c,e,tp)
return Duel.GetLocationCountFromEx(tp,tp,e:GetHandler(),c)>0 and c:IsCode(33711114) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end
function cm.rcop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SendtoDeck(c,nil,2,REASON_EFFECT)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.check,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.BreakEffect()
Duel.SpecialSummon(g,0,tp,tp,true,false,POS_FACEUP)
end
end
end
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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