Commit 97071f63 authored by tsubaki's avatar tsubaki

1.999zyu update

parent e393b778
No preview for this file type
......@@ -2,7 +2,7 @@ TET=TET or {}
Pyro = 50219
Hydro = 50216
Electro=50213
Cryo = 50210
Cyro = 50210
Anemo= 50240
Geo= 50234
......@@ -71,7 +71,7 @@ if not TET.ELCounter then
end
end
--融化
if code == Cryo then
if code == Cyro then
Duel.Hint(HINT_CARD,0,50703)
count = count-num
if Duel.GetCurrentPhase()>=PHASE_BATTLE_START and Duel.GetCurrentPhase()<=PHASE_BATTLE then
......@@ -132,7 +132,7 @@ if not TET.ELCounter then
end
end
--冻结
if code == Cryo then
if code == Cyro then
Duel.Hint(HINT_CARD,0,50705)
count = count-num
local cc=te:GetHandler()
......@@ -200,19 +200,19 @@ if not TET.ELCounter then
end
end
--超导
if code == Cryo then
if code == Cyro then
Duel.Hint(HINT_CARD,0,50706)
count = count-num
Duel.Damage(tp,Mystery*100,REASON_EFFECT)
local cc=te:GetHandler()
local g=Duel.GetMatchingGroup(TET.chaodao,tp,LOCATION_MZONE,0,nil)
while g:GetCount()>0 do
local tc=g:GetFirst()
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(cc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_DEFENSE_FINAL)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(0)
tc:RegisterEffect(e1)
tc=g:GetNext()
......@@ -230,7 +230,7 @@ if not TET.ELCounter then
TET.crystal(ze,tp,Mystery)
end
--冰为底
elseif genso == Cryo then
elseif genso == Cyro then
--融化
if code == Pyro then
Duel.Hint(HINT_CARD,0,50703)
......@@ -286,13 +286,13 @@ if not TET.ELCounter then
Duel.Damage(tp,Mystery*100,REASON_EFFECT)
local cc=te:GetHandler()
local g=Duel.GetMatchingGroup(TET.chaodao,tp,LOCATION_MZONE,0,nil)
while g:GetCount()>0 do
local tc=g:GetFirst()
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(cc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_DEFENSE_FINAL)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(0)
tc:RegisterEffect(e1)
tc=g:GetNext()
......
......@@ -126,6 +126,7 @@
!setname 0x246 仙符
!setname 0x249 天理法则
!setname 0x250 原神
!setname 0x2521 钟离
!setname 0x251 星莲
!setname 0x251a 一轮
!setname 0x251b 云山
......
No preview for this file type
--风速幻想✿射命丸文
function c1100006.initial_effect(c)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(1164)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_EXTRA)
e1:SetCondition(c1100006.SynMixCondition(aux.Tuner(nil),aux.NonTuner(Card.IsSetCard,0x208),1,99))
e1:SetTarget(c1100006.SynMixTarget(aux.Tuner(nil),aux.NonTuner(Card.IsSetCard,0x208),1,99))
e1:SetOperation(c1100006.SynMixOperation(aux.Tuner(nil),aux.NonTuner(Card.IsSetCard,0x208),1,99))
e1:SetValue(SUMMON_TYPE_SYNCHRO)
c:RegisterEffect(e1)
--
if not c1100006.global_check then
c1100006.global_check=true
local ge1=Effect.GlobalEffect()
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_TO_DECK)
ge1:SetCondition(c1100006.Gcon1)
ge1:SetOperation(c1100006.Gop1)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.GlobalEffect()
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_ADJUST)
ge2:SetOperation(c1100006.Gop2)
Duel.RegisterEffect(ge2,0)
end
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DIRECT_ATTACK)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(1100006,0))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(c1100006.con3)
e3:SetTarget(c1100006.tg3)
e3:SetOperation(c1100006.op3)
c:RegisterEffect(e3)
--
end
--
function c1100006.ExFilter(c,syncard)
return c:GetFlagEffect(1100006)>0
and c:IsLocation(LOCATION_DECK)
and c:IsCanBeSynchroMaterial(syncard)
end
function c1100006.GetSynMaterials(tp,syncard)
local mg=Duel.GetMatchingGroup(Auxiliary.SynMaterialFilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,syncard)
local dg=Duel.GetFieldGroup(tp,LOCATION_DECK,0)
if dg:GetCount()>0 then
local exg=dg:GetMinGroup(Card.GetSequence)
if c1100006.ExFilter(exg:GetFirst(),syncard) then mg:Merge(exg) end
end
if mg:IsExists(Card.GetHandSynchro,1,nil) then
local mg2=Duel.GetMatchingGroup(Card.IsCanBeSynchroMaterial,tp,LOCATION_HAND,0,nil,syncard)
if mg2:GetCount()>0 then mg:Merge(mg2) end
end
return mg
end
function c1100006.SynMixFilter1(c,f1,f2,minc,maxc,syncard,mg,smat,gc,mgchk)
return f1(c,syncard) and mg:IsExists(c1100006.SynMixFilter2,1,c,f2,minc,maxc,syncard,mg,smat,c,gc,mgchk)
end
function c1100006.SynMixFilter2(c,f2,minc,maxc,syncard,mg1,smat,mat1,gc,mgchk)
if not f2(c,syncard,mat1) then return false end
local sg=Group.FromCards(mat1,c)
local mg=mg1:Clone()
mg=mg:Filter(f2,sg,syncard)
return c1100006.SynMixCheck(mg,sg,minc-1,maxc-1,syncard,smat,gc,mgchk)
end
function c1100006.SynMixCheck(mg,sg1,minc,maxc,syncard,smat,gc,mgchk)
local tp=syncard:GetControler()
local sg=Group.CreateGroup()
if minc==0 and c1100006.SynMixCheckGoal(tp,sg1,0,0,syncard,sg,smat,gc,mgchk) then return true end
if maxc==0 then return false end
return mg:IsExists(c1100006.SynMixCheckRecursive,1,nil,tp,sg,mg,0,minc,maxc,syncard,sg1,smat,gc,mgchk)
end
function c1100006.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
if ct<minc then return false end
local g=sg:Clone()
if sg1 then g:Merge(sg1) end
if Duel.GetLocationCountFromEx(tp,tp,g,syncard)<1 then return false end
if gc and not gc(g) then return false end
if smat and not g:IsContains(smat) then return false end
if not Auxiliary.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL) then return false end
local b1=g:IsExists(c1100006.ExFilter,1,nil,syncard)
local b2=Duel.CheckSynchroMaterial(syncard,aux.Tuner(nil),aux.NonTuner(nil),g:GetCount()-1,g:GetCount()-1,smat,g)
if (not b1) and (not b2) then return false end
if b1 then
local lv=0
for tc in aux.Next(g) do
lv=lv+tc:GetOriginalLevel(syncard)
end
local Change_Lv_Effect=Effect.CreateEffect(syncard)
Change_Lv_Effect:SetType(EFFECT_TYPE_SINGLE)
Change_Lv_Effect:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_CANNOT_DISABLE)
Change_Lv_Effect:SetCode(EFFECT_CHANGE_LEVEL)
Change_Lv_Effect:SetValue(lv)
syncard:RegisterEffect(Change_Lv_Effect,true)
local check=1
if Duel.CheckSynchroMaterial(syncard,aux.Tuner(nil),aux.NonTuner(nil),g:GetCount()-1,g:GetCount()-1,smat,g) then
check=0
end
Change_Lv_Effect:Reset()
if check==1 then return false end
end
local hg=g:Filter(Card.IsLocation,nil,LOCATION_HAND)
if hg:GetCount()>0 and not mgchk then
local found=false
for c in aux.Next(g) do
local he,hf,hmin,hmax=c:GetHandSynchro()
if he then
found=true
if hf and hg:IsExists(Auxiliary.SynLimitFilter,1,c,hf,he,syncard) then return false end
if (hmin and hg:GetCount()<hmin) or (hmax and hg:GetCount()>hmax) then return false end
end
end
if not found then return false end
end
for c in aux.Next(g) do
local le,lf,lloc,lmin,lmax=c:GetTunerLimit()
if le then
local lct=g:GetCount()-1
if lloc then
local llct=g:FilterCount(Card.IsLocation,c,lloc)
if llct~=lct then return false end
end
if lf and g:IsExists(Auxiliary.SynLimitFilter,1,c,lf,le,syncard) then return false end
if (lmin and lct<lmin) or (lmax and lct>lmax) then return false end
end
end
return true
end
function c1100006.SynMixCheckRecursive(c,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk)
sg:AddCard(c)
ct=ct+1
local res=c1100006.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
or (ct<maxc and mg:IsExists(c1100006.SynMixCheckRecursive,1,sg,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk))
sg:RemoveCard(c)
ct=ct-1
return res
end
function c1100006.SynMixCondition(f1,f2,minc,maxc,gc)
return function(e,c,smat,mg1,min,max)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local tp=c:GetControler()
local mg
local mgchk=false
if mg1 then
mg=mg1
mgchk=true
else
mg=c1100006.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
return mg:IsExists(c1100006.SynMixFilter1,1,nil,f1,f2,minc,maxc,c,mg,smat,gc,mgchk)
end
end
function c1100006.SynMixTarget(f1,f2,minc,maxc,gc)
return function(e,tp,eg,ep,ev,re,r,rp,chk,c,smat,mg1,min,max)
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local g=Group.CreateGroup()
local mg
if mg1 then
mg=mg1
else
mg=c1100006.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local mat1=mg:FilterSelect(tp,c1100006.SynMixFilter1,1,1,nil,f1,f2,minc,maxc,c,mg,smat,gc):GetFirst()
g:AddCard(mat1)
local g2=Group.CreateGroup()
for i=0,maxc-1 do
local mg2=mg:Clone()
mg2=mg2:Filter(f2,g,c)
local cg=mg2:Filter(c1100006.SynMixCheckRecursive,g2,tp,g2,mg2,i,minc,maxc,c,g,smat,gc)
if cg:GetCount()==0 then break end
local minct=1
if c1100006.SynMixCheckGoal(tp,g2,minc,i,c,g,smat,gc) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local tg=cg:Select(tp,minct,1,nil)
if tg:GetCount()==0 then break end
g2:Merge(tg)
end
g:Merge(g2)
if g:GetCount()>0 then
g:KeepAlive()
e:SetLabelObject(g)
return true
else return false end
end
end
function c1100006.SynMixOperation(f1,f2,minct,maxc,gc)
return function(e,tp,eg,ep,ev,re,r,rp,c,smat,mg,min,max)
local g=e:GetLabelObject()
c:SetMaterial(g)
local lv=0
if g:IsExists(c1100006.ExFilter,1,nil,c) then
for tc in aux.Next(g) do
lv=lv+tc:GetOriginalLevel(c)
end
end
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
g:DeleteGroup()
if lv>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_CHANGE_LEVEL)
e1:SetValue(lv)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
c:RegisterEffect(e1)
end
end
end
--
function c1100006.Gfilter1(c)
return c:GetSequence()==0 and c:IsReason(REASON_COST)
end
function c1100006.Gcon1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return eg:IsExists(c1100006.Gfilter1,1,nil) and re:IsActivated()
end
function c1100006.Gop1(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:Filter(c1100006.Gfilter1,nil):GetFirst()
tc:RegisterFlagEffect(1100006,RESET_EVENT+0x1fe0000,0,0,1)
end
function c1100006.Gfilter2(c)
return c:GetFlagEffect(1100006)>0 and c:GetSequence()~=0
end
function c1100006.Gop2(e,tp,eg,ep,ev,re,r,rp)
local dg=Duel.GetFieldGroup(tp,LOCATION_DECK,0)
local lg=dg:Filter(c1100006.Gfilter2,nil)
if lg:GetCount()<1 then return end
for tc in aux.Next(lg) do
tc:ResetFlagEffect(1100006)
end
end
--
function c1100006.con3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and rp~=tp
end
function c1100006.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(1100007)==0
and Duel.IsExistingMatchingCard(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,1,nil,c) end
c:RegisterFlagEffect(1100007,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c1100006.op3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetControler()~=tp or not c:IsRelateToEffect(e) then return end
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,c)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),c)
end
end
--
\ No newline at end of file
......@@ -30,11 +30,10 @@ function c50000.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c50000.filter,tp,0x3,0,1,1,nil)
if g:GetCount()>0 then
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
if Duel.GetOperatedGroup():FilterCount(Card.IsPreviousLocation, nil, LOCATION_HAND)>0 then
Duel.Draw(tp,1,REASON_EFFECT)
end
local code=g:GetFirst():GetCode()
_G["c"..code].activate(e,tp,eg,ep,ev,re,r,rp)
end
local ct=5-Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
if ct>0 then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
--护法夜叉☪魈
function c50103.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50103.xyzfilter)
--Anemo
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50103,0))
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCost(c50103.bcost)
e4:SetTarget(c50103.btg)
e4:SetOperation(c50103.bop)
c:RegisterEffect(e4)
--atk up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetCondition(c50103.acon)
e3:SetValue(800)
c:RegisterEffect(e3)
--evil cost
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_PHASE+PHASE_STANDBY)
e2:SetCountLimit(1)
e2:SetOperation(c50103.op4)
c:RegisterEffect(e2)
end
function c50103.xyzfilter(c)
return c:IsAttribute(ATTRIBUTE_WIND) and c:IsSetCard(0x250)
end
function c50103.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50103.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50103.bop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--chain attack
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(50103,1))
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_BATTLED)
e2:SetCondition(c50103.atcon)
e2:SetOperation(c50103.atop)
c:RegisterEffect(e2)
end
function c50103.atcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=c:GetBattleTarget()
return bc and bc:IsStatus(STATUS_BATTLE_DESTROYED) and c:IsChainAttackable() and c:IsStatus(STATUS_OPPO_BATTLE)
end
function c50103.atop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
TET.ELCounter.Add(nil,1-tp,50240,num,e)
local c=e:GetHandler()
if not c:IsRelateToBattle() then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_EXTRA_ATTACK)
e1:SetValue(1)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_BATTLE)
c:RegisterEffect(e1)
end
function c50103.afilter(c)
return c:IsSetCard(0x2521) and c:IsFaceup()
end
function c50103.acon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c50103.afilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil)
end
function c50103.op4(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetHandler():GetOverlayCount()
if ct>0 then return end
if Duel.GetLP(tp)>=500 then
Duel.PayLPCost(tp,500)
end
end
......@@ -6,7 +6,7 @@ function c50108.initial_effect(c)
--Anemo
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50108,0))
e4:SetCategory(CATEGORY_DAMAGE+CATEGORY_SPECIAL_SUMMON)
e4:SetCategory(CATEGORY_DAMAGE)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,50108)
......@@ -30,26 +30,15 @@ function c50108.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50108.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c50108.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c50108.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
if chk==0 then return true end
end
function c50108.bop(e,tp,eg,ep,ev,re,r,rp)
local num=3
local genso,count=TET.ELCounter.Get(1-tp)
TET.ELCounter.Add(nil,1-tp,50240,num,e)
Duel.Damage(1-tp, 600, REASON_EFFECT)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c50108.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
for i = 1, 2 do
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
TET.ELCounter.Add(nil,1-tp,50240,num,e)
Duel.Damage(1-tp, 300, REASON_EFFECT)
end
end
function c50108.value(e,c)
......
--烟火之邀☪魈
function c50153.initial_effect(c)
--Electro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50153,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(2,50153)
e4:SetTarget(c50153.btg)
e4:SetOperation(c50153.bop)
c:RegisterEffect(e4)
local e2 =e4:Clone()
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetRange(LOCATION_HAND)
e2:SetTarget(c50153.ctg)
e2:SetOperation(c50153.cop)
c:RegisterEffect(e2)
end
function c50153.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50153.bop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
TET.ELCounter.Add(nil,1-tp,50240,num,e)
end
function c50153.ctg(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 c50153.cop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
TET.ELCounter.Add(nil,1-tp,50240,num,e)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......@@ -3,7 +3,7 @@ function c50216.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50216.xyzfilter)
--Anemo
--Hydro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50216,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
......
--真珠之智☪珊瑚宫心海
function c50222.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50222.xyzfilter)
--Hydro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50222,0))
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCost(c50222.bcost)
e4:SetTarget(c50222.btg)
e4:SetOperation(c50222.bop)
c:RegisterEffect(e4)
end
function c50222.xyzfilter(c)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsSetCard(0x250)
end
function c50222.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50222.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50222.bop(e,tp,eg,ep,ev,re,r,rp)
local num=2
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50216 and count>1 then num=4-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50216,num,e)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(aux.tgoval)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e1,true)
--heal
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_DAMAGE_STEP_END)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
e3:SetCondition(c50222.elccon)
e3:SetOperation(c50222.eleop)
c:RegisterEffect(e3,tp)
--atk up
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(c50222.value)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e2,true)
end
function c50222.elccon(e,tp,eg,ep,ev,re,r,rp)
local a,d=Duel.GetBattleMonster(tp)
return a and a:GetControler()==tp
end
function c50222.eleop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50216 and count>1 then num=2-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50216,num,e)
Duel.Draw(tp,1,REASON_EFFECT)
local ct=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
Duel.Recover(tp,ct*200,REASON_EFFECT)
end
function c50222.value(e,c)
return Duel.GetFieldGroupCount(c:GetControler(),LOCATION_HAND,0)*400
end
--琉焰华舞☪宵宫
function c50225.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50225.xyzfilter)
--Pyro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50225,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,50225)
e4:SetCost(c50225.bcost)
e4:SetTarget(c50225.btg)
e4:SetOperation(c50225.bop)
c:RegisterEffect(e4)
end
function c50225.xyzfilter(c)
return c:IsAttribute(ATTRIBUTE_FIRE) and c:IsSetCard(0x250)
end
function c50225.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50225.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50225.bop(e,tp,eg,ep,ev,re,r,rp)
local num=2
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50219 and count>1 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50219,num,e)
--effect
local c=e:GetHandler()
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1)
e3:SetCondition(c50225.pycon)
e3:SetOperation(c50225.pyop)
Duel.RegisterEffect(e3,tp)
local e2=e3:Clone()
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetCondition(c50225.apycon)
e2:SetOperation(c50225.apyop)
Duel.RegisterEffect(e2,tp)
end
function c50225.pycon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and re:IsActiveType(TYPE_MONSTER)
and e:GetHandler():GetFlagEffect(50225)==0
end
function c50225.pyop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50219 and count>1 then num=2-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50219,num,e)
e:GetHandler():RegisterFlagEffect(50225, RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END, 0, 1)
end
function c50225.apycon(e,tp,eg,ep,ev,re,r,rp)
local at=Duel.GetAttacker()
return at:GetControler()==tp and at:GetFlagEffect(50226)==0
end
function c50225.apyop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50219 and count>1 then num=2-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50219,num,e)
local at=Duel.GetAttacker()
at:RegisterFlagEffect(50226, RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END, 0, 1)
end
......@@ -3,7 +3,7 @@ function c50228.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50228.xyzfilter)
--Anemo
--Electro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50228,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
......
......@@ -23,7 +23,7 @@ function c50231.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50231.filter(c)
return c:IsSetCard(0x250) and c:IsAbleToHand()
return c:IsSetCard(0x250) and c:IsAbleToHand() and c:IsType(TYPE_MONSTER)
end
function c50231.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c50231.filter,tp,LOCATION_DECK,0,1,nil) end
......@@ -36,6 +36,6 @@ function c50231.bop(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
Duel.Recover(tp, ct*800, REASON_EFFECT)
Duel.Recover(tp, ct*400, REASON_EFFECT)
end
end
--黑羽鸣镝☪九条裟罗
function c50237.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50237.xyzfilter)
--Electro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50237,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCost(c50237.bcost)
e4:SetTarget(c50237.btg)
e4:SetOperation(c50237.bop)
c:RegisterEffect(e4)
end
function c50237.xyzfilter(c)
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsSetCard(0x250)
end
function c50237.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,3,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,3,3,REASON_COST)
end
function c50237.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50237.bop(e,tp,eg,ep,ev,re,r,rp)
local num=2
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50213 and count>0 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50213,num,e)
local c=e:GetHandler()
--dd
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_EXTRA_ATTACK)
e5:SetTargetRange(LOCATION_MZONE,0)
e5:SetTarget(aux.TargetBoolFunction(c50237.xyzfilter))
e5:SetValue(1)
Duel.RegisterEffect(e5,tp)
end
--红毹婵娟☪云堇
require "expansions/script/nef/TheElementTheory"
function c50243.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50243.xyzfilter)
--Anemo
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50243,0))
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,50243)
e4:SetCost(c50243.bcost)
e4:SetTarget(c50243.btg)
e4:SetOperation(c50243.bop)
c:RegisterEffect(e4)
end
function c50243.xyzfilter(c)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsSetCard(0x250)
end
function c50243.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50243.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50243.bop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50234 and count>0 then num=1-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50234,num,e)
local c=e:GetHandler()
local def=c:GetDefense()
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_BATTLE_DAMAGE)
e5:SetCondition(c50243.reccon)
e5:SetOperation(c50243.recop)
e5:SetLabel(def)
Duel.RegisterEffect(e5,tp)
end
function c50243.qfilter(c)
return c:GetPreviousLocation()~=LOCATION_EXTRA
end
function c50243.reccon(e,tp,eg,ep,ev,re,r,rp)
return eg:FilterCount(c50243.qfilter, nil)>0 and ep==1-tp and ev>0
end
function c50243.recop(e,tp,eg,ep,ev,re,r,rp)
local def=e:GetLabel()
Duel.Damage(1-tp,def,REASON_BATTLE)
end
--棘冠恩典☪罗莎莉亚
function c50255.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,5,75,c50255.xyzfilter)
--Cyro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50255,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,50255)
e4:SetCost(c50255.bcost)
e4:SetTarget(c50255.btg)
e4:SetOperation(c50255.bop)
c:RegisterEffect(e4)
end
function c50255.xyzfilter(c)
return c:IsAttribute(ATTRIBUTE_DARK) and c:IsSetCard(0x250)
end
function c50255.bcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end
function c50255.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50255.bop(e,tp,eg,ep,ev,re,r,rp)
local num=2
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50210 and count>1 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50210,num,e)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
if g:GetCount()>0 then
local sc=g:GetFirst()
while sc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(300)
sc:RegisterEffect(e1)
sc=g:GetNext()
end
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END,2)
e1:SetOperation(c50255.cop)
Duel.RegisterEffect(e1,tp)
end
function c50255.cop(e,tp,eg,ep,ev,re,r,rp)
local num=2
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50210 and count>1 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50210,num,e)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
if g:GetCount()>0 then
local sc=g:GetFirst()
while sc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(300)
sc:RegisterEffect(e1)
sc=g:GetNext()
end
end
end
--浮岳虹珠☪珊瑚宫心海
function c50322.initial_effect(c)
--Hydro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50322,0))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetTarget(c50322.btg)
e4:SetOperation(c50322.bop)
c:RegisterEffect(e4)
end
function c50322.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE) >= 0
and Duel.IsPlayerCanSpecialSummonMonster(tp,50622,0x250,0x4011,0,0,1,RACE_AQUA,ATTRIBUTE_WATER) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function c50322.bop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50216 and count>1 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50216,num,e)
local numt=1
local genso,count=TET.ELCounter.Get(tp)
if genso==50216 and count>1 then numt=3-count end
if numt<0 then numt=0 end
TET.ELCounter.Add(nil,tp,50216,numt,e)
local c=e:GetHandler()
if Duel.GetMZoneCount(tp)<0 or not Duel.IsPlayerCanSpecialSummonMonster(tp,50622,0x250,0x4011,0,0,1,RACE_AQUA,ATTRIBUTE_WATER) then return end
local token = Duel.CreateToken(tp,50622)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
--effect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(aux.tgoval)
token:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_IGNORE_BATTLE_TARGET)
e2:SetValue(1)
token:RegisterEffect(e2)
token:SetTurnCounter(0)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetCountLimit(1)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,6)
e4:SetOperation(c50322.desop)
token:RegisterEffect(e4)
token:RegisterFlagEffect(1082946,RESET_PHASE+PHASE_END,0,3)
c50322[c]=e1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_REMAIN_FIELD)
token:RegisterEffect(e1)
end
function c50322.atklimit(e,c)
return c~=e:GetHandler()
end
function c50322.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
c:SetTurnCounter(ct)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50216 and count>1 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50216,num,e)
local hct=Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
Duel.Recover(tp,hct*400,REASON_EFFECT)
if ct>=6 then
Duel.Destroy(c,REASON_RULE)
c:ResetFlagEffect(1082946)
end
end
--焰色天河☪宵宫
function c50325.initial_effect(c)
--Pyro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50325,0))
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetTarget(c50325.btg)
e4:SetOperation(c50325.bop)
c:RegisterEffect(e4)
end
function c50325.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50325.bop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(1)
c:RegisterEffect(e1,true)
local e5=e1:Clone()
e5:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e5,true)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(50325,1))
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BATTLED)
e3:SetCondition(c50325.ccon)
e3:SetOperation(c50325.cop)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e3,true)
end
function c50325.ccon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return Duel.GetAttacker()==c and aux.bdocon(e,tp,eg,ep,ev,re,r,rp)
end
function c50325.cop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50219 and count>1 then num=2-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50219,num,e)
if e:GetHandler():IsChainAttackable() then
Duel.ChainAttack()
end
end
......@@ -38,7 +38,7 @@ function c50328.bop(e,tp,eg,ep,ev,re,r,rp)
end
function c50328.elccon(e,tp,eg,ep,ev,re,r,rp)
local a,d=Duel.GetBattleMonster(tp)
return a and a:GetControler()==tp and Duel.GetFlagEffect(tp, 50328)==0
return a and a:GetControler()==tp and a:GetFlagEffect(50328)==0
end
function c50328.eleop(e,tp,eg,ep,ev,re,r,rp)
local num=1
......@@ -46,7 +46,8 @@ function c50328.eleop(e,tp,eg,ep,ev,re,r,rp)
if genso==50213 and count>1 then num=2-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50213,num,e)
Duel.RegisterFlagEffect(tp, 50328, RESET_PHASE+PHASE_END, 0, 1)
local a,d=Duel.GetBattleMonster(tp)
a:RegisterFlagEffect(50328, RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END, 0, 1)
end
function c50328.filter(c)
return c:GetPreviousLocation()==LOCATION_OVERLAY
......
--鸦羽咒咏☪九条裟罗
function c50337.initial_effect(c)
--Electro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50337,0))
e4:SetCategory(CATEGORY_ATKCHANGE)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetCountLimit(1)
e4:SetRange(LOCATION_MZONE)
e4:SetTarget(c50337.btg)
e4:SetOperation(c50337.bop)
c:RegisterEffect(e4)
end
function c50337.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50337.bop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50213 and count>0 then num=3-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50213,num,e)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
if g:GetCount()>0 then
local sc=g:GetFirst()
while sc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(600)
sc:RegisterEffect(e1)
sc=g:GetNext()
end
end
end
......@@ -28,6 +28,9 @@ function c50340.ctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,LOCATION_GRAVE)
end
function c50340.dfilter(c)
return c:IsSetCard(0x250) and c:IsAbleToDeck()
end
function c50340.cop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
......@@ -39,7 +42,7 @@ function c50340.cop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,2,nil)
local g=Duel.SelectMatchingCard(tp,c50340.dfilter,tp,LOCATION_GRAVE,0,1,2,nil)
if g:GetCount()>0 then
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
end
......
--翘楚明坤☪云堇
function c50343.initial_effect(c)
--Geo
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(50343,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,50343)
e1:SetCondition(c50343.tgcon1)
e1:SetTarget(c50343.btg)
e1:SetOperation(c50343.tgop1)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(50343,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_BE_BATTLE_TARGET)
e2:SetRange(LOCATION_HAND)
e2:SetCountLimit(1,50343)
e2:SetCondition(c50343.tgcon2)
e2:SetTarget(c50343.btg)
e2:SetOperation(c50343.tgop2)
c:RegisterEffect(e2)
--Immune
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_IMMUNE_EFFECT)
e0:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e0:SetRange(LOCATION_MZONE)
e0:SetTarget(c50343.target)
e0:SetValue(c50343.efilter)
c:RegisterEffect(e0)
end
function c50343.tfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x250) and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE)
end
function c50343.tgcon1(e,tp,eg,ep,ev,re,r,rp)
if rp==tp or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
return g and g:GetCount()==1 and g:IsExists(c50343.tfilter,1,nil,tp)
end
function c50343.btg(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 c50343.tgop1(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50234 and count>0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50234,num,e)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.ChangeTargetCard(ev,Group.FromCards(c))
end
end
function c50343.tgcon2(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return tc:IsControler(tp) and tc:IsFaceup() and tc:IsSetCard(0x250)
end
function c50343.tgop2(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 then
local a=Duel.GetAttacker()
Duel.CalculateDamage(a,c,true)
end
end
function c50343.target(e,c)
local te,g=Duel.GetChainInfo(0,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TARGET_CARDS)
return te and te:IsHasProperty(EFFECT_FLAG_CARD_TARGET) and g and g:IsContains(c) and c:IsSummonType(SUMMON_TYPE_SPECIAL)
end
function c50343.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
--罪之导引☪罗莎莉亚
function c50355.initial_effect(c)
--Electro
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(50355,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,50355)
e4:SetTarget(c50355.btg)
e4:SetOperation(c50355.bop)
c:RegisterEffect(e4)
local e2 =e4:Clone()
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetRange(LOCATION_HAND)
e2:SetTarget(c50355.ctg)
e2:SetOperation(c50355.cop)
c:RegisterEffect(e2)
end
function c50355.btg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c50355.bop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50210 and count>1 then num=4-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50210,num,e)
end
function c50355.ctg(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 c50355.cop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50210 and count>2 then num=4-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50210,num,e)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......@@ -44,9 +44,9 @@ end
function c50377.bbop(e,tp,eg,ep,ev,re,r,rp)
local num=1
local genso,count=TET.ELCounter.Get(1-tp)
if genso==50216 and count>1 then num=2-count end
if genso==50210 and count>1 then num=2-count end
if num<0 then num=0 end
TET.ELCounter.Add(nil,1-tp,50216,num,e)
TET.ELCounter.Add(nil,1-tp,50210,num,e)
local atk=e:GetHandler():GetAttack()
Duel.Recover(tp,atk*2,REASON_EFFECT)
if Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)<=2 then
......
--地理法则☪蓝绿之力
function c50501.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(50501,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(2,50501)
e1:SetCondition(c50501.condition)
e1:SetCost(c50501.cost1)
e1:SetTarget(c50501.target1)
e1:SetOperation(c50501.operation1)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(50501,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(2,50501)
e2:SetCondition(c50501.condition)
e2:SetCost(c50501.cost2)
e2:SetTarget(c50501.target2)
e2:SetOperation(c50501.operation2)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(50501,2))
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(2,50501)
e3:SetCost(c50501.cost3)
e3:SetTarget(c50501.target3)
e3:SetOperation(c50501.operation3)
c:RegisterEffect(e3)
end
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(50501,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(2,50501)
e1:SetCondition(c50501.condition)
e1:SetCost(c50501.cost1)
e1:SetTarget(c50501.target1)
e1:SetOperation(c50501.operation1)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(50501,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(2,50501)
e2:SetCondition(c50501.condition)
e2:SetCost(c50501.cost2)
e2:SetTarget(c50501.target2)
e2:SetOperation(c50501.operation2)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(50501,2))
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(2,50501)
e3:SetCost(c50501.cost3)
e3:SetTarget(c50501.target3)
e3:SetOperation(c50501.operation3)
c:RegisterEffect(e3)
end
function c50501.filter(c)
return c:IsSetCard(0x250)
return c:IsSetCard(0x250)
end
function c50501.condition(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c50501.filter,tp,LOCATION_DECK,0,nil)
return g:GetClassCount(Card.GetOriginalCode)>3
local g=Duel.GetMatchingGroup(c50501.filter,tp,LOCATION_DECK,0,nil)
return g:GetClassCount(Card.GetOriginalCode)>3
end
function c50501.spfilter4(c,e,tp)
return c:IsSetCard(0x250) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetLevel()==4
end
function c50501.spfilter5(c,e,tp)
return c:IsSetCard(0x250) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetLevel()==5
end
function c50501.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,4000) end
Duel.PayLPCost(tp,4000)
end
function c50501.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsExistingMatchingCard(c50501.spfilter4,tp,LOCATION_DECK,0,1,nil,e,tp)
and Duel.IsExistingMatchingCard(c50501.spfilter5,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end
function c50501.operation1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=1 then return end
local c=e:GetHandler()
local g4=Duel.GetMatchingGroup(c50501.spfilter4,tp,LOCATION_DECK,0,nil,e,tp)
local g5=Duel.GetMatchingGroup(c50501.spfilter5,tp,LOCATION_DECK,0,nil,e,tp)
local g1=g4:RandomSelect(tp, 1)
local g2=g5:RandomSelect(tp, 1)
g1:Merge(g2)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c50501.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
function c50501.spfilter4(c,e,tp)
return c:IsSetCard(0x250) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetLevel()==4
end
function c50501.spfilter5(c,e,tp)
return c:IsSetCard(0x250) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:GetLevel()==5
end
function c50501.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,4000) end
Duel.PayLPCost(tp,4000)
end
function c50501.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsExistingMatchingCard(c50501.spfilter4,tp,LOCATION_DECK,0,1,nil,e,tp)
and Duel.IsExistingMatchingCard(c50501.spfilter5,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end
function c50501.operation1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=1 then return end
local c=e:GetHandler()
local g4=Duel.GetMatchingGroup(c50501.spfilter4,tp,LOCATION_DECK,0,nil,e,tp)
local g5=Duel.GetMatchingGroup(c50501.spfilter5,tp,LOCATION_DECK,0,nil,e,tp)
local g1=g4:RandomSelect(tp, 1)
local g2=g5:RandomSelect(tp, 1)
g1:Merge(g2)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c50501.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c50501.splimit(e,c)
return not c:IsSetCard(0x250)
end
function c50501.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,800) end
Duel.PayLPCost(tp,800)
if chk==0 then return Duel.CheckLPCost(tp,800) end
Duel.PayLPCost(tp,800)
end
function c50501.target2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c50501.spfilter4,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c50501.spfilter4,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c50501.operation2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler()
local g4=Duel.GetMatchingGroup(c50501.spfilter4,tp,LOCATION_DECK,0,nil,e,tp)
local g1=g4:RandomSelect(tp, 1)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c50501.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler()
local g4=Duel.GetMatchingGroup(c50501.spfilter4,tp,LOCATION_DECK,0,nil,e,tp)
local g1=g4:RandomSelect(tp, 1)
Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c50501.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c50501.cost3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,200) end
Duel.PayLPCost(tp,200)
if chk==0 then return Duel.CheckLPCost(tp,200) end
Duel.PayLPCost(tp,200)
end
function c50501.target3(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND, e:GetHandler(),1,tp,LOCATION_GRAVE)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND, e:GetHandler(),1,tp,LOCATION_GRAVE)
end
function c50501.operation3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end
......@@ -28,8 +28,19 @@ function c50502.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(c50502.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function c50502.splimit(e,c)
return not c:IsSetCard(0x250)
end
function c50502.xyzfilter1(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ)
end
......@@ -39,24 +50,24 @@ end
function c50502.etg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c50502.xyzfilter1(chkc) end
if chk==0 then
local ct=Duel.GetFlagEffect(tp, 50502)+Duel.GetFlagEffect(1-tp, 50502)
local tgg=Duel.IsExistingTarget(c50502.xyzfilter1,tp,LOCATION_MZONE,0,1,nil)
if ct>2 then
return tgg and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_GRAVE,ct,e:GetHandler())
else
return tgg and Duel.IsExistingMatchingCard(c50502.xyzfilter2,tp,0,LOCATION_GRAVE,ct,e:GetHandler())
end
end
local ct=Duel.GetFlagEffect(tp, 50502)+Duel.GetFlagEffect(1-tp, 50502)
local tgg=Duel.IsExistingTarget(c50502.xyzfilter1,tp,LOCATION_MZONE,0,1,nil)
if ct>2 then
return tgg and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_GRAVE,ct,e:GetHandler())
else
return tgg and Duel.IsExistingMatchingCard(c50502.xyzfilter2,tp,0,LOCATION_GRAVE,ct,e:GetHandler())
end
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,c50502.xyzfilter1,tp,LOCATION_MZONE,0,1,1,nil)
end
function c50502.eop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetFlagEffect(tp, 50502)+Duel.GetFlagEffect(1-tp, 50502)
local ct=Duel.GetFlagEffect(tp, 50502)+Duel.GetFlagEffect(1-tp, 50502)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
local g=Duel.SelectMatchingCard(tp,c50502.xyzfilter2,tp,0,LOCATION_GRAVE,ct,ct,nil)
if g:GetCount()>0 then
Duel.Overlay(tc,g)
end
local g=Duel.SelectMatchingCard(tp,c50502.xyzfilter2,tp,0,LOCATION_GRAVE,ct,ct,nil)
if g:GetCount()>0 then
Duel.Overlay(tc,g)
end
end
end
......@@ -35,7 +35,7 @@ function c50503.initial_effect(c)
e3:SetTarget(c50503.etg)
e3:SetOperation(c50503.eop)
c:RegisterEffect(e3)
--Cryo
--Cyro
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_DIRECT_ATTACK)
......@@ -129,17 +129,17 @@ function c50503.acon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c50503.afilter, tp, LOCATION_MZONE, 0, 2, nil)
end
function c50503.spfilter(c,e,tp)
return c:IsSetCard(0x250) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsLevelBelow(5) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c50503.atg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c50503.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK)
and Duel.IsExistingMatchingCard(c50503.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c50503.aop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c50503.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,c50503.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
......
--闭锁内心的圣女
local m=66919015
local cm=_G["c"..m]
function cm.initial_effect(c)
cm.dfc_front_side=66919017
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(1164)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_EXTRA)
e1:SetCondition(cm.SynMixCondition(aux.Tuner(nil),aux.NonTuner(nil),1,99))
e1:SetTarget(cm.SynMixTarget(aux.Tuner(nil),aux.NonTuner(nil),1,99))
e1:SetOperation(cm.SynMixOperation(aux.Tuner(nil),aux.NonTuner(nil),1,99))
e1:SetValue(SUMMON_TYPE_SYNCHRO)
c:RegisterEffect(e1)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_SINGLE)
e12:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e12:SetRange(LOCATION_MZONE)
e12:SetCode(EFFECT_IMMUNE_EFFECT)
e12:SetValue(cm.efilter)
c:RegisterEffect(e1)
--
end
function cm.efilter(e,re)
return e:GetHandlerPlayer()==re:GetOwnerPlayer() and not (re:GetHandler():IsCode(m) or re:GetHandler():IsCode(m+1))
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) and e:GetHandler():GetFlagEffect(m)~=0 end
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local token=Duel.CreateToken(tp,m+1)
Duel.SendtoHand(token,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,token)
end
--
function cm.SynMixCondition(f1,f2,minc,maxc,gc)
return function(e,c,smat,mg1,min,max)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local tp=c:GetControler()
local mg
local mgchk=false
if mg1 then
mg=mg1
mgchk=true
else
mg=aux.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
return mg:IsExists(cm.SynMixFilter1,1,nil,f1,f2,minc,maxc,c,mg,smat,gc,mgchk)
end
end
function cm.SynMixTarget(f1,f2,minc,maxc,gc)
return function(e,tp,eg,ep,ev,re,r,rp,chk,c,smat,mg1,min,max)
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local g=Group.CreateGroup()
local mg
if mg1 then
mg=mg1
else
mg=aux.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local mat1=mg:FilterSelect(tp,cm.SynMixFilter1,1,1,nil,f1,f2,minc,maxc,c,mg,smat,gc):GetFirst()
g:AddCard(mat1)
local g2=Group.CreateGroup()
for i=0,maxc-1 do
local mg2=mg:Clone()
mg2=mg2:Filter(f2,g,c)
local cg=mg2:Filter(cm.SynMixCheckRecursive,g2,tp,g2,mg2,i,minc,maxc,c,g,smat,gc)
if cg:GetCount()==0 then break end
local minct=1
if cm.SynMixCheckGoal(tp,g2,minc,i,c,g,smat,gc) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local tg=cg:Select(tp,minct,1,nil)
if tg:GetCount()==0 then break end
g2:Merge(tg)
end
g:Merge(g2)
if g:GetCount()>0 then
g:KeepAlive()
e:SetLabelObject(g)
return true
else return false end
end
end
function cm.SynMixOperation(f1,f2,minct,maxc,gc)
return function(e,tp,eg,ep,ev,re,r,rp,c,smat,mg,min,max)
local g=e:GetLabelObject()
c:SetMaterial(g)
if not Duel.CheckSynchroMaterial(c,aux.Tuner(nil),aux.NonTuner(nil),g:GetCount()-1,g:GetCount()-1,smat,g) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_CHANGE_LEVEL)
e1:SetValue(12)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
c:RegisterEffect(e1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
end
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
g:DeleteGroup()
end
end
function cm.SynMixFilter1(c,f1,f2,minc,maxc,syncard,mg,smat,gc,mgchk)
return f1(c,syncard) and mg:IsExists(cm.SynMixFilter2,1,c,f2,minc,maxc,syncard,mg,smat,c,gc,mgchk)
end
function cm.SynMixFilter2(c,f2,minc,maxc,syncard,mg1,smat,mat1,gc,mgchk)
if not f2(c,syncard,mat1) then return false end
local sg=Group.FromCards(mat1,c)
local mg=mg1:Clone()
mg=mg:Filter(f2,sg,syncard)
return cm.SynMixCheck(mg,sg,minc-1,maxc-1,syncard,smat,gc,mgchk)
end
function cm.SynMixCheck(mg,sg1,minc,maxc,syncard,smat,gc,mgchk)
local tp=syncard:GetControler()
local sg=Group.CreateGroup()
if minc==0 and cm.SynMixCheckGoal(tp,sg1,0,0,syncard,sg,smat,gc,mgchk) then return true end
if maxc==0 then return false end
return mg:IsExists(cm.SynMixCheckRecursive,1,nil,tp,sg,mg,0,minc,maxc,syncard,sg1,smat,gc,mgchk)
end
function cm.SynMixCheckRecursive(c,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk)
sg:AddCard(c)
ct=ct+1
local res=cm.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
or (ct<maxc and mg:IsExists(cm.SynMixCheckRecursive,1,sg,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk))
sg:RemoveCard(c)
ct=ct-1
return res
end
function cm.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
if ct<minc then return false end
local g=sg:Clone()
if sg1 then g:Merge(sg1) end
if Duel.GetLocationCountFromEx(tp,tp,g,syncard)<1 then return false end
if gc and not gc(g) then return false end
if smat and not g:IsContains(smat) then return false end
if not Auxiliary.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL) then return false end
local b1=Duel.CheckSynchroMaterial(syncard,aux.Tuner(nil),aux.NonTuner(nil),g:GetCount()-1,g:GetCount()-1,smat,g)
local b2=false
local le=Effect.CreateEffect(syncard)
le:SetType(EFFECT_TYPE_SINGLE)
le:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_CANNOT_DISABLE)
le:SetCode(EFFECT_CHANGE_LEVEL)
le:SetValue(12)
syncard:RegisterEffect(le,true)
if Duel.CheckSynchroMaterial(syncard,aux.Tuner(Card.IsSynchroType,TYPE_SYNCHRO),aux.NonTuner(Card.IsSynchroType,TYPE_SYNCHRO),g:GetCount()-1,g:GetCount()-1,smat,g) then b2=true end
le:Reset()
if (not b1) and (not b2) then return false end
local hg=g:Filter(Card.IsLocation,nil,LOCATION_HAND)
if hg:GetCount()>0 and not mgchk then
local found=false
for c in aux.Next(g) do
local he,hf,hmin,hmax=c:GetHandSynchro()
if he then
found=true
if hf and hg:IsExists(Auxiliary.SynLimitFilter,1,c,hf,he,syncard) then return false end
if (hmin and hg:GetCount()<hmin) or (hmax and hg:GetCount()>hmax) then return false end
end
end
if not found then return false end
end
for c in aux.Next(g) do
local le,lf,lloc,lmin,lmax=c:GetTunerLimit()
if le then
local lct=g:GetCount()-1
if lloc then
local llct=g:FilterCount(Card.IsLocation,c,lloc)
if llct~=lct then return false end
end
if lf and g:IsExists(Auxiliary.SynLimitFilter,1,c,lf,le,syncard) then return false end
if (lmin and lct<lmin) or (lmax and lct>lmax) then return false end
end
end
return true
end
\ No newline at end of file
--秘仪『七星之剑』
function c74563029.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_DRAW)
e1:SetCondition(c74563029.regcon)
e1:SetOperation(c74563029.regop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCondition(c74563029.condition)
e2:SetCost(c74563029.cost)
e2:SetTarget(c74563029.target)
e2:SetOperation(c74563029.activate)
c:RegisterEffect(e2)
end
function c74563029.regcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return Duel.GetFlagEffect(tp,74563029)==0 and Duel.GetCurrentPhase()==PHASE_DRAW and c:IsReason(REASON_RULE)
end
function c74563029.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.SelectYesNo(tp,aux.Stringid(74563029,0)) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PUBLIC)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_MAIN1)
c:RegisterEffect(e1)
c:RegisterFlagEffect(74563029,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_MAIN1,EFFECT_FLAG_CLIENT_HINT,1,0,66)
end
end
function c74563029.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 and not Duel.CheckPhaseActivity()
end
function c74563029.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(74563029)~=0 end
end
function c74563029.filter(c,e,tp)
return c.dfc_front_side and not c:IsType(TYPE_FLIP) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsRace(RACE_PSYCHO)
end
function c74563029.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c74563029.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetChainLimit(aux.FALSE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c74563029.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c74563029.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
if Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK)~=0 then
local tc=g:GetFirst()
e:SetLabel(tc.dfc_front_side)
local c=e:GetHandler()
local mcode=tc:GetOriginalCode()
if Duel.ChangePosition(tc,POS_FACEDOWN_ATTACK,POS_FACEDOWN_DEFENSE,POS_FACEDOWN_ATTACK,POS_FACEDOWN_DEFENSE)>0 then
local tcode=e:GetLabel()
tc:SetEntityCode(tcode,true)
tc:ReplaceEffect(tcode,0,0)
Duel.SetMetatable(tc,_G["c"..tcode])
Duel.ChangePosition(tc,POS_FACEUP_ATTACK)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetOperation(function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not mcode then return end
c:SetEntityCode(mcode)
c:ReplaceEffect(mcode,0,0)
Duel.SetMetatable(c,_G["c"..mcode])
end)
tc:RegisterEffect(e2)
end
end
end
end
function c74563029.spfilter(c,e,tp)
return c:IsSetCard(0x410) and c:IsRace(RACE_PSYCHO) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,false,false)
end
function c74563029.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c74563029.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c74563029.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c74563029.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if #g>0 then
Duel.SpecialSummon(g,SUMMON_TYPE_PENDULUM,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--春符『惊喜之春』
require("expansions/script/nef/nef")
function c74563030.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_RECOVER+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c74563030.activate)
c:RegisterEffect(e1)
--act in hand
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCondition(c74563030.handcon)
c:RegisterEffect(e2)
Nef.SeasonChange(c)
end
function c74563030.handcon(e)
return Nef.PLCounter.Get(e:GetHandlerPlayer(),999104)==1
end
function c74563030.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--damage
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(c74563030.regop)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetCondition(c74563030.damcon)
e3:SetOperation(c74563030.damop)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
local e31=Effect.CreateEffect(c)
e31:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e31:SetCode(EVENT_PHASE+PHASE_END)
e31:SetCountLimit(1)
e31:SetOperation(c74563030.effop)
e31:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e31,tp)
end
function c74563030.regop(e,tp,eg,ep,ev,re,r,rp)
if rp==tp then return end
e:GetHandler():RegisterFlagEffect(74563030,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_CHAIN,0,1)
end
function c74563030.damcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return ep~=tp and c:GetFlagEffect(74563030)~=0
end
function c74563030.damop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,74563030)
Duel.Recover(tp,600,REASON_EFFECT)
end
function c74563030.spfilter(c,lv,e,tp)
return (c:IsLevelBelow(lv) or c:IsRankBelow(lv)) and c:IsSetCard(0x123) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and (not c:IsLocation(LOCATION_EXTRA) or Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function c74563030.effop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c74563030.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil,ct,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(74563030,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,c74563030.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,1,nil,ct,e,tp)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
This diff is collapsed.
--九尾妖兽✿八云蓝
function c86379694.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c86379694.spcon)
e1:SetOperation(c86379694.spop)
c:RegisterEffect(e1)
--nine
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_ADJUST)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c86379694.condition)
e2:SetOperation(c86379694.operation)
c:RegisterEffect(e2)
--tozone
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetOperation(c86379694.tzop)
c:RegisterEffect(e3)
--remove
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(86379694,0))
e5:SetCategory(CATEGORY_POSITION)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_REMOVE)
e5:SetTarget(c86379694.gtg)
e5:SetOperation(c86379694.gop)
c:RegisterEffect(e5)
--
if not c86379694.global_check then
c86379694.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SUMMON_SUCCESS)
ge1:SetOperation(c86379694.checkop1)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_SPSUMMON_SUCCESS)
ge2:SetOperation(c86379694.checkop2)
Duel.RegisterEffect(ge2,0)
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_FLIP_SUMMON_SUCCESS)
ge3:SetOperation(c86379694.checkop3)
Duel.RegisterEffect(ge3,0)
local ge4=Effect.CreateEffect(c)
ge4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge4:SetCode(EVENT_MSET)
ge4:SetOperation(c86379694.checkop1)
Duel.RegisterEffect(ge4,0)
local ge5=Effect.CreateEffect(c)
ge5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge5:SetCode(EVENT_SSET)
ge5:SetOperation(c86379694.checkop4)
Duel.RegisterEffect(ge5,0)
end
end
--
function c86379694.checkop1(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(eg) do
tc:RegisterFlagEffect(186379654,RESET_EVENT+RESET_TOFIELD+RESET_TOHAND+RESET_TOGRAVE+RESET_PHASE+PHASE_END,0,1)
end
end
function c86379694.checkop2(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(eg) do
tc:RegisterFlagEffect(186379655,RESET_EVENT+RESET_TOFIELD+RESET_TOHAND+RESET_TOGRAVE+RESET_PHASE+PHASE_END,0,1)
end
end
function c86379694.checkop3(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(eg) do
tc:RegisterFlagEffect(186379656,RESET_EVENT+RESET_TOFIELD+RESET_TOHAND+RESET_TOGRAVE+RESET_PHASE+PHASE_END,0,1)
end
end
function c86379694.checkop4(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(eg) do
tc:RegisterFlagEffect(186379657,RESET_EVENT+RESET_TOFIELD+RESET_TOHAND+RESET_TOGRAVE+RESET_PHASE+PHASE_END,0,1)
end
end
--
function c86379694.filter(c)
return c:IsSetCard(0x225a) and c:IsAbleToRemoveAsCost() and c:IsRace(RACE_BEAST)
end
function c86379694.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingMatchingCard(c86379694.filter,tp,LOCATION_MZONE,0,1,nil)
end
function c86379694.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c86379694.filter,tp,LOCATION_MZONE,0,1,1,nil)
local tc=g:GetFirst()
Duel.Remove(tc,POS_FACEUP,REASON_COST+REASON_TEMPORARY)
if tc:IsLocation(LOCATION_REMOVED) then
local fid=c:GetFieldID()
tc:RegisterFlagEffect(86379694,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(86379695,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2,fid)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(tc)
e1:SetCondition(c86379694.con1_2)
e1:SetOperation(c86379694.op1_2)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
end
end
function c86379694.con1_2(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return tc:GetFlagEffect(86379694)<=0
end
function c86379694.op1_2(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
local fid=e:GetLabel()
if tc:GetFlagEffect(86379695)>0 and tc:GetFlagEffectLabel(86379695)==fid then
Duel.ReturnToField(tc)
end
end
--
function c86379694.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,LOCATION_ONFIELD)>12
end
function c86379694.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,c)
while Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,LOCATION_ONFIELD)>12 and g:GetCount()>0 do
local sg=g:GetMaxGroup(Card.GetFieldID)
local tc=sg:GetFirst()
g:RemoveCard(tc)
if Duel.Remove(tc,POS_FACEUP,REASON_RULE+REASON_TEMPORARY)~=0 then
if tc:IsLocation(LOCATION_REMOVED) then
tc:CreateRelation(c,RESET_EVENT+RESETS_STANDARD)
c:SetCardTarget(tc)
end
end
end
end
--
function c86379694.tzfilter(c,rc)
return c:IsRelateToCard(rc)
end
function c86379694.tzop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c86379694.tzfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,nil,c)
if g:GetCount()>0 then
for tc in aux.Next(g) do
Duel.ReturnToField(tc)
end
end
end
--
function c86379694.gtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then
if bit.band(c:GetReason(),REASON_TEMPORARY)~=0 then
return
chkc:IsLocation(LOCATION_MZONE)
else
return
chkc:IsLocation(LOCATION_MZONE) and chkc:IsCanChangePosition()
end
end
if chk==0 then
if bit.band(c:GetReason(),REASON_TEMPORARY)~=0 then
return
Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
else
return
Duel.IsExistingTarget(Card.IsCanChangePosition,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
end
end
if bit.band(c:GetReason(),REASON_TEMPORARY)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,1,0,0)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
local g=Duel.SelectTarget(tp,Card.IsCanChangePosition,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,1,0,0)
end
end
function c86379694.gop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.ChangePosition(tc,POS_FACEUP_DEFENSE,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK)
end
local rc=e:GetHandler()
if rc:IsRelateToEffect(e) and bit.band(rc:GetReason(),REASON_TEMPORARY)~=0 and rc:IsPreviousLocation(LOCATION_ONFIELD) then
local pos=rc:GetPreviousPosition()
local cp=rc:GetPreviousControler()
if rc:IsType(TYPE_FIELD) and rc:IsPreviousLocation(LOCATION_FZONE) then
if Duel.GetFieldCard(cp,LOCATION_SZONE,5) then
Duel.SendtoGrave(rc,REASON_RULE)
else
Duel.MoveToField(rc,cp,cp,LOCATION_FZONE,pos,true)
if rc:IsFacedown() and rc:GetFlagEffect(186379657)>0 then
rc:SetStatus(STATUS_SET_TURN,true)
end
end
elseif rc:IsType(TYPE_PENDULUM) and rc:IsPreviousLocation(LOCATION_PZONE) then
if Duel.GetFieldCard(cp,LOCATION_PZONE,0) and Duel.GetFieldCard(cp,LOCATION_PZONE,1) then
Duel.SendtoGrave(rc,REASON_RULE)
else
Duel.MoveToField(rc,cp,cp,LOCATION_PZONE,pos,true)
end
elseif rc:IsType(TYPE_MONSTER) and rc:IsPreviousLocation(LOCATION_SZONE) then
local ty=rc:GetPreviousTypeOnField()
if Duel.GetLocationCount(cp,LOCATION_SZONE)>0 then
Duel.MoveToField(rc,cp,cp,LOCATION_SZONE,pos,true)
local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(ty)
rc:RegisterEffect(e1,true)
else
Duel.SendtoGrave(rc,REASON_RULE)
end
elseif rc:IsPreviousLocation(LOCATION_MZONE) then
if Duel.GetLocationCount(cp,LOCATION_MZONE)>0 and rc:IsType(TYPE_MONSTER) then
local a=0
if rc:GetFlagEffect(186379654)>0 then
a=1
end
if rc:GetFlagEffect(186379655)>0 then
a=2
end
if rc:GetFlagEffect(186379656)>0 then
a=3
end
Duel.MoveToField(rc,cp,cp,LOCATION_MZONE,pos,true)
if a==1 then
rc:SetStatus(STATUS_SUMMON_TURN,true)
end
if a==2 then
rc:SetStatus(STATUS_SPSUMMON_TURN,true)
end
if a==3 then
rc:SetStatus(STATUS_FLIP_SUMMON_TURN,true)
end
else
Duel.SendtoGrave(rc,REASON_RULE)
end
elseif rc:IsPreviousLocation(LOCATION_SZONE) then
if Duel.GetLocationCount(cp,LOCATION_SZONE)>0 then
local a=0
if rc:GetFlagEffect(186379657)>0 then
a=4
end
Duel.MoveToField(rc,cp,cp,LOCATION_SZONE,pos,true)
if rc:IsFacedown() and a==4 then
rc:SetStatus(STATUS_SET_TURN,true)
end
else
Duel.SendtoGrave(rc,REASON_RULE)
end
end
end
end
--湖✿中冰晶
function c99999003.initial_effect(c)
--spsummon proc
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(c99999003.spcon)
e1:SetTarget(c99999003.sptg)
e1:SetOperation(c99999003.spop)
e1:SetCountLimit(1,99999003)
c:RegisterEffect(e1)
--cannot link material
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e2:SetValue(c99999003.lmlimit)
c:RegisterEffect(e2)
--draw
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BE_MATERIAL)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCondition(c99999003.drcon)
e3:SetTarget(c99999003.drtg)
e3:SetOperation(c99999003.drop)
c:RegisterEffect(e3)
end
function c99999003.lmlimit(e)
local c=e:GetHandler()
return c:IsStatus(STATUS_SPSUMMON_TURN)
end
function c99999003.spfilter(c)
return c:IsFaceup() and c:GetOriginalCode()==(22090)
end
function c99999003.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function c99999003.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c99999003.cfilter,tp,LOCATION_FZONE,0,1,nil)
end
function c99999003.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 c99999003.drcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and r==REASON_SYNCHRO and e:GetHandler():GetReasonCard():IsSetCard(0x999)
end
function c99999003.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c99999003.drop(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
This diff is collapsed.
Duel.LoadScript("nef/nef.lua")
Duel.LoadScript("nef/msc.lua")
Duel.LoadScript("nef/fus.lua")
Duel.LoadScript("nef/ets.lua")
Duel.LoadScript("nef/elf.lua")
Duel.LoadScript("nef/dss.lua")
Duel.LoadScript("nef/afi.lua")
-- require "expansions/script/nef/nef"
-- require "expansions/script/nef/msc"
-- require "expansions/script/nef/fus"
-- require "expansions/script/nef/ets"
-- require "expansions/script/nef/elf"
-- require "expansions/script/nef/dss"
-- require "expansions/script/nef/afi"
-- require "nef/nef"
-- require "nef/msc"
-- require "nef/fus"
-- require "nef/ets"
-- require "nef/elf"
-- require "nef/dss"
-- require "nef/afi"
\ No newline at end of file
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