Commit f15b2d4a authored by Tachibana's avatar Tachibana

eme

parent ede65d54
Pipeline #8502 passed with stages
in 26 minutes and 9 seconds
No preview for this file type
......@@ -12,7 +12,7 @@ function cm.initial_effect(c)
end
cm.dff=true
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetCurrentChain()==0
return Duel.GetTurnPlayer()==tp and Duel.GetCurrentChain()==0 and Duel.GetFlagEffect(tp,16104242)==0
end
function cm.eqfilter(c,ec)
return c:IsAbleToRemove()
......
......@@ -59,7 +59,7 @@ function cm.lvtg(e,c)
return not c:IsOriginalSetCard(0x3ccd) and c:GetOwner()~=e:GetHandlerPlayer()
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetCurrentChain()==0
return Duel.GetTurnPlayer()==tp and Duel.GetCurrentChain()==0 and Duel.GetFlagEffect(tp,16104242)==0
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
......
......@@ -18,7 +18,7 @@ function cm.initial_effect(c)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e2=rkch.PenAdd(c,{m,1},{1,m+1},{cm.cost,nil,cm.addtarget,cm.addop},false)
local e3=rkch.MonzToPen(c,m,nil,0)
local e3=rkch.MonzToPen(c,m,EVENT_RELEASE,nil)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
......
......@@ -25,7 +25,6 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(cm.effcost)
e1:SetTarget(cm.drtg1)
e1:SetCondition(cm.condition)
e1:SetOperation(cm.drop)
......@@ -35,9 +34,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCondition(cm.condition1)
e3:SetLabelObject(e1)
c:RegisterEffect(e3)
e1:SetLabelObject(e3)
----
if not cm.global_check then
cm.global_check=true
......@@ -135,12 +132,6 @@ end
function cm.condition1(e,tp)
return Duel.IsPlayerAffectedByEffect(tp,16150008)
end
function cm.effcost(e,tp,eg,ep,ev,re,r,rp,chk)
if e:GetLabel()~=3 then
e:SetLabel(1)
end
return true
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
if chk==0 then return g:CheckSubGroup(cm.filter,3,3,tp) end
......@@ -169,25 +160,16 @@ end
function cm.drtg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
if e:GetLabel()==1 then
e:SetLabel(0)
return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,c,tp)
else
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(nil),tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
return g:CheckSubGroup(cm.filter,3,3,tp,c) and e:GetLabel()~=3
end
end
if e:GetLabel()==1 then
e:SetLabel(0)
local sg=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil,c,tp)
Duel.Release(sg,REASON_COST)
return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,c,tp) and c:GetFlagEffect(m)==0
end
local sg=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil,c,tp)
Duel.Release(sg,REASON_COST)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,nil,1)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,nil,3,0,0)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local ec=e:GetHandler()
e:GetLabelObject():SetLabel(3)
if not e:GetHandler():IsRelateToEffect(e) then return end
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(nil),tp,LOCATION_ONFIELD+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_GRAVE,nil)
local g=sg:SelectSubGroup(tp,cm.filter,false,3,3,tp,ec)
......
--白马夜袭
--白马夜袭
function c23000310.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -7,6 +7,7 @@ function c23000310.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,23000310+EFFECT_COUNT_CODE_OATH)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetTarget(c23000310.target)
e1:SetOperation(c23000310.activate)
c:RegisterEffect(e1)
......
......@@ -7,10 +7,16 @@ function c24865313.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,24865313+EFFECT_COUNT_CODE_OATH)
e1:SetCountLimit(1,24865313)
e1:SetCost(cm.disrmcost)
e1:SetTarget(c24865313.tg)
e1:SetOperation(c24865313.op)
e1:SetCondition(cm.atkcon)
c:RegisterEffect(e1)
e4=e1:Clone()
e4:SetTarget(cm.stg)
e4:SetCondition(cm.atkcon2)
c:RegisterEffect(e4)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCategory(CATEGORY_TODECK)
......@@ -25,6 +31,17 @@ end
function c24865313.filte(c,e,tp,check)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsSetCard(0xb10)
end
function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865313)==0
end
function cm.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865313)==0
end
function cm.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(24865313)==0 end
c:RegisterFlagEffect(24865313,RESET_CHAIN,0,1)
end
function c24865313.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.GetLocationCount(0,LOCATION_MZONE)>0
local b2=Duel.IsExistingMatchingCard(c24865313.filte,tp,LOCATION_DECK,0,1,nil,e,tp)
......@@ -112,6 +129,37 @@ function c24865313.op(e,tp,eg,ep,ev,re,r,rp)
end
--从卡组特殊召唤两张量子海妖怪兽
end
function c24865313.stg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.GetLocationCount(0,LOCATION_MZONE)>0
local b2=Duel.IsExistingMatchingCard(c24865313.filte,tp,LOCATION_DECK,0,1,nil,e,tp)
local b3=Duel.GetLocationCount(0,LOCATION_MZONE)>1
local b4=Duel.IsExistingMatchingCard(c24865313.filte,tp,LOCATION_DECK,0,2,nil,e,tp)
if chk==0 then return (b1 and b2) or (b3 and b4) end
local off=1
local ops={}
local opval={}
if (b1 and b2) then
ops[off]=aux.Stringid(24865313,0)
opval[off-1]=1
off=off+1
end
if (b3 and b4)then
ops[off]=aux.Stringid(24865313,1)
opval[off-1]=2
off=off+1
end
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
e:SetLabel(sel)
if sel==1 then
e:SetCategory(CATEGORY_SPECIAL_SUMMON)
Duel.SetOperationInfo(tp,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
if sel==2 then
e:SetCategory(CATEGORY_SPECIAL_SUMMON)
Duel.SetOperationInfo(tp,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end
end
function c24865313.desfilter(c,fid)
return c:GetFlagEffectLabel(24865313)==fid
end
......
......@@ -2,12 +2,17 @@
local m=24865314
local cm=_G["c"..m]
function c24865314.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e0:SetValue(1)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(24865314,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,24865314)
......@@ -29,7 +34,7 @@ function c24865314.initial_effect(c)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_CHAINING)
e3:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e3:SetCountLimit(1)
e3:SetCountLimit(1,24865314)
e3:SetCost(c24865314.cost)
e3:SetTarget(c24865314.tg)
e3:SetOperation(c24865314.op)
......@@ -66,10 +71,11 @@ function c24865314.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c24865314.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c=e:GetHandler()
if not c:IsRelateToEffect(e) and c:IsHasEffect(EFFECT_NECRO_VALLEY) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function c24865314.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,c24865314.filter,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
......@@ -82,10 +88,11 @@ function c24865314.tg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_HAND+LOCATION_GRAVE)
end
function c24865314.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local g=Duel.GetMatchingGroup(c24865314.filter2,tp,LOCATION_MZONE,0,nil)
if Duel.GetMZoneCount(tp,g,tp)>0 then return end
local code=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c24865314.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp,code)
local g=Duel.SelectMatchingCard(tp,c24865314.spfilter,tp,LOCATION_DECK+LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp,code)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
......
......@@ -2,6 +2,12 @@
local m=24865315
local cm=_G["c"..m]
function c24865315.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e0:SetValue(1)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(24865315,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
......@@ -32,7 +38,8 @@ function c24865315.initial_effect(c)
e3:SetCondition(c24865315.atkcon)
e3:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e3:SetCode(EVENT_CHAINING)
e3:SetCountLimit(1)
e3:SetCountLimit(1,24865415)
e3:SetCost(cm.disrmcost)
e3:SetTarget(c24865315.tg)
e3:SetOperation(c24865315.op)
c:RegisterEffect(e3)
......@@ -69,10 +76,16 @@ function c24865315.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c24865315.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c=e:GetHandler()
if not c:IsRelateToEffect(e) and c:IsHasEffect(EFFECT_NECRO_VALLEY) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function cm.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(24865315)==0 end
c:RegisterFlagEffect(24865315,RESET_CHAIN,0,1)
end
function c24865315.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c24865315.filter,tp,LOCATION_DECK,0,1,nil,e,tp)
local b3=Duel.IsExistingMatchingCard(c24865315.filter2,tp,LOCATION_GRAVE,0,1,nil,e,tp)
......@@ -100,6 +113,7 @@ function c24865315.tg(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
end
function c24865315.op(e,tp,eg,ep,ev,re,r,rp)
local sel=e:GetLabel()
if sel==1 then
......@@ -109,20 +123,19 @@ function c24865315.op(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
--从卡组选一张「量子妖海-狄拉克」加入手卡或在把这张卡发动的玩家的场上发动
if sel==2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c24865315.filter2,tp,LOCATION_DECK,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c24865315.filter2,tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
end
function c24865315.atkcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,24865314)
return not Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865315)==0
end
function c24865315.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,24865314)
return Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865315)==0
end
function c24865315.stg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c24865315.filter,tp,LOCATION_DECK,0,1,nil,e,tp)
......
......@@ -2,16 +2,21 @@
local m=24865316
local cm=_G["c"..m]
function c24865316.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e0:SetValue(1)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(24865316,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetCondition(c24865316.spcon)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,24865316)
e1:SetCondition(c24865316.spcon)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetTarget(c24865316.sptg)
e1:SetOperation(c24865316.spop)
......@@ -31,8 +36,9 @@ function c24865316.initial_effect(c)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e3:SetCode(EVENT_CHAINING)
e3:SetCost(cm.disrmcost)
e3:SetCondition(c24865316.atkcon)
e3:SetCountLimit(1)
e3:SetCountLimit(1,24865416)
e3:SetTarget(c24865316.tg)
e3:SetOperation(c24865316.op)
c:RegisterEffect(e3)
......@@ -51,15 +57,15 @@ function c24865316.splimit(e,se,sp,st)
return se:IsHasType(EFFECT_TYPE_ACTIONS)
end
function c24865316.atkcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,24865314)
return not Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865316)==0
end
function c24865316.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,24865314)
return Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865316)==0
end
function c24865316.spcon(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.GetCustomActivityCount(m,1-tp,ACTIVITY_CHAIN)
local b2=Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
end
function c24865316.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return
......@@ -69,16 +75,22 @@ function c24865316.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c24865316.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c=e:GetHandler()
if not c:IsRelateToEffect(e) and c:IsHasEffect(EFFECT_NECRO_VALLEY) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function c24865316.filter(c,tp)
return c:IsType(TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true,true) and c:IsCode(24865310)
end
function c24865316.filter2(c)
return c:IsType(TYPE_TRAP) and c:IsSetCard(0xb10) and c:IsSSetable()
end
function cm.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(24865316)==0 end
c:RegisterFlagEffect(24865316,RESET_CHAIN,0,1)
end
function c24865316.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c24865316.filter,tp,LOCATION_DECK,0,1,nil,e,tp)
local b2=Duel.GetLocationCount(tp,LOCATION_SZONE)>0
......
......@@ -2,16 +2,21 @@
local m=24865317
local cm=_G["c"..m]
function c24865317.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e0:SetValue(1)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(24865317,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetCondition(c24865317.spcon)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,24865317)
e1:SetCondition(c24865317.spcon)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetTarget(c24865317.sptg)
e1:SetOperation(c24865317.spop)
......@@ -31,7 +36,8 @@ function c24865317.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e3:SetCondition(c24865317.atkcon)
e3:SetCode(EVENT_CHAINING)
e3:SetCountLimit(1)
e3:SetCost(cm.disrmcost)
e3:SetCountLimit(1,24865417)
e3:SetTarget(c24865317.tg)
e3:SetOperation(c24865317.op)
c:RegisterEffect(e3)
......@@ -50,13 +56,10 @@ function c24865317.splimit(e,se,sp,st)
return se:IsHasType(EFFECT_TYPE_ACTIONS)
end
function c24865317.atkcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,24865314)
return not Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865317)==0
end
function c24865317.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,24865314)
end
function c24865317.tkcfilter(c)
return c:IsRace(RACE_THUNDER)
return Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865317)==0
end
function c24865317.tkcfilter(c)
return not c:IsType(TYPE_EFFECT)
......@@ -64,23 +67,28 @@ end
function c24865317.spcon(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.GetCustomActivityCount(m,1-tp,ACTIVITY_CHAIN)
local b2=Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
end
function c24865317.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return
Duel.IsPlayerCanSpecialSummonCount(tp,1)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c24865317.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c=e:GetHandler()
if not c:IsRelateToEffect(e) and c:IsHasEffect(EFFECT_NECRO_VALLEY) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function cm.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(24865317)==0 end
c:RegisterFlagEffect(24865317,RESET_CHAIN,0,1)
end
function c24865317.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local sg=Duel.GetMatchingGroup(c24865317.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local sg=Duel.GetMatchingGroup(c24865317.tkcfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local off=1
local ops={}
local opval={}
......@@ -89,7 +97,7 @@ function c24865317.tg(e,tp,eg,ep,ev,re,r,rp,chk)
opval[off-1]=1
off=off+1
end
if c24865317.tkcfilter then
if sg>0 then
ops[off]=aux.Stringid(24865317,1)
opval[off-1]=2
off=off+1
......@@ -102,7 +110,7 @@ function c24865317.tg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
if sel==2 then
Duel.IsExistingMatchingCard(c24865317.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.IsExistingMatchingCard(c24865317.tkcfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0)
end
function c24865317.op(e,tp,eg,ep,ev,re,r,rp)
......@@ -122,7 +130,7 @@ function c24865317.op(e,tp,eg,ep,ev,re,r,rp)
end
function c24865317.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local sg=Duel.GetMatchingGroup(c24865317.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local sg=Duel.GetMatchingGroup(c24865317.tkcfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local off=1
local ops={}
local opval={}
......@@ -144,6 +152,6 @@ function c24865317.stg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
if sel==2 then
Duel.IsExistingMatchingCard(c24865317.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.IsExistingMatchingCard(c24865317.tkcfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0)
end
\ No newline at end of file
......@@ -2,16 +2,21 @@
local m=24865318
local cm=_G["c"..m]
function c24865318.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e0:SetValue(1)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(24865318,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c24865318.spcon)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,24865318)
e1:SetCondition(c24865318.spcon)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetTarget(c24865318.sptg)
e1:SetOperation(c24865318.spop)
......@@ -35,7 +40,8 @@ function c24865318.initial_effect(c)
e3:SetCondition(c24865318.atkcon)
e3:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e3:SetCode(EVENT_CHAINING)
e3:SetCountLimit(1)
e3:SetCost(cm.disrmcost)
e3:SetCountLimit(1,24865418)
e3:SetTarget(c24865318.tg)
e3:SetOperation(c24865318.op)
c:RegisterEffect(e3)
......@@ -56,7 +62,7 @@ end
function c24865318.spcon(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.GetCustomActivityCount(m,1-tp,ACTIVITY_CHAIN)
local b2=Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
end
function c24865318.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return
......@@ -66,10 +72,16 @@ function c24865318.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c24865318.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c=e:GetHandler()
if not c:IsRelateToEffect(e) and c:IsHasEffect(EFFECT_NECRO_VALLEY) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function cm.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(24865318)==0 end
c:RegisterFlagEffect(24865318,RESET_CHAIN,0,1)
end
function c24865318.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsChainDisablable(ev)
local b2=Duel.IsPlayerCanRemove(tp)
......@@ -110,10 +122,10 @@ function c24865318.op(e,tp,eg,ep,ev,re,r,rp)
end
end
function c24865318.atkcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,24865314)
return not Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865318)==0
end
function c24865318.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,24865314)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865318)==0
end
function c24865318.stg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -2,15 +2,23 @@
local m=24865321
local cm=_G["c"..m]
function c24865321.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e0:SetValue(1)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(24865321,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c24865321.spcon)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,24865321)
e1:SetCondition(c24865321.spcon)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetTarget(c24865321.sptg)
e1:SetOperation(c24865321.spop)
......@@ -29,7 +37,9 @@ function c24865321.initial_effect(c)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e3:SetCode(EVENT_CHAINING)
e3:SetCountLimit(1)
e3:SetCost(cm.disrmcost)
e3:SetCondition(c24865321.atkcon)
e3:SetCountLimit(1,24865421)
e3:SetTarget(c24865321.tg)
e3:SetOperation(c24865321.op)
c:RegisterEffect(e3)
......@@ -47,7 +57,7 @@ end
function c24865321.spcon(e,tp,eg,ep,ev,re,r,rp)
local b1=Duel.GetCustomActivityCount(m,1-tp,ACTIVITY_CHAIN)
local b2=Duel.GetCustomActivityCount(m,tp,ACTIVITY_CHAIN)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
return (b1 + b2)>=5 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
end
function c24865321.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return
......@@ -64,6 +74,11 @@ end
function c24865321.tnval(e,c)
return e:GetHandler():IsDefensePos()
end
function cm.disrmcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(24865321)==0 end
c:RegisterFlagEffect(24865321,RESET_CHAIN,0,1)
end
function c24865321.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c24865321.filter,tp,LOCATION_DECK,0,1,nil,e,tp)
local b3=Duel.IsExistingMatchingCard(c24865321.filter2,tp,LOCATION_DECK,0,1,nil,e,tp)
......@@ -109,8 +124,11 @@ function c24865321.op(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function c24865321.atkcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865321)==0
end
function c24865321.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,24865314)
return aux.dscon() and Duel.IsPlayerAffectedByEffect(tp,24865314) and Duel.GetFlagEffect(tp,24865321)==0
end
function c24865321.stg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsExistingMatchingCard(c24865321.filter,tp,LOCATION_DECK,0,1,nil,e,tp)
......
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