Commit b981e3e1 authored by Huangnan's avatar Huangnan

fix

parent 1b7a9ae7
Pipeline #40325 failed with stages
in 7 minutes and 10 seconds
...@@ -10,6 +10,7 @@ function cm.initial_effect(c) ...@@ -10,6 +10,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_DRAW) e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,m) e1:SetCountLimit(1,m)
e1:SetCondition(cm.xyzcon) e1:SetCondition(cm.xyzcon)
e1:SetTarget(cm.xyztg) e1:SetTarget(cm.xyztg)
......
...@@ -10,6 +10,7 @@ function cm.initial_effect(c) ...@@ -10,6 +10,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_DRAW) e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,m) e1:SetCountLimit(1,m)
e1:SetCondition(cm.sycon) e1:SetCondition(cm.sycon)
e1:SetTarget(cm.sytg) e1:SetTarget(cm.sytg)
......
...@@ -10,6 +10,7 @@ function cm.initial_effect(c) ...@@ -10,6 +10,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_DRAW) e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,m) e1:SetCountLimit(1,m)
e1:SetCondition(cm.fmcon) e1:SetCondition(cm.fmcon)
e1:SetTarget(cm.fmtg) e1:SetTarget(cm.fmtg)
......
...@@ -10,6 +10,7 @@ function cm.initial_effect(c) ...@@ -10,6 +10,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_DRAW) e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,m) e1:SetCountLimit(1,m)
e1:SetCondition(cm.fmcon) e1:SetCondition(cm.fmcon)
e1:SetTarget(cm.fmtg) e1:SetTarget(cm.fmtg)
......
--NSp 暴君独角仙兽 --NSp 暴君独角仙兽
function c16311055.initial_effect(c) function c16311055.initial_effect(c)
--synchro summon --synchro summon
aux.AddSynchroMixProcedure(c,aux.FilterBoolFunction(Card.IsCode,16311085),aux.FilterBoolFunction(Card.IsCode,16311085),nil,aux.FilterBoolFunction(Card.IsSetCard,0x5dc6),1,99) aux.AddSynchroMixProcedure(c,aux.FilterBoolFunction(Card.IsCode,16311085),aux.FilterBoolFunction(Card.IsCode,16311085),nil,aux.NonTuner(Card.IsSetCard,0x5dc6),1,99)
c:EnableReviveLimit() c:EnableReviveLimit()
--defense attack --defense attack
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
--NSp 雄伟锹形虫兽 --NSp 雄伟锹形虫兽
function c16311060.initial_effect(c) function c16311060.initial_effect(c)
--synchro summon --synchro summon
aux.AddSynchroMixProcedure(c,aux.FilterBoolFunction(Card.IsCode,16311085),aux.FilterBoolFunction(Card.IsCode,16311085),nil,aux.FilterBoolFunction(Card.IsSetCard,0x5dc6),1,99) aux.AddSynchroMixProcedure(c,aux.FilterBoolFunction(Card.IsCode,16311085),aux.FilterBoolFunction(Card.IsCode,16311085),nil,aux.NonTuner(Card.IsSetCard,0x5dc6),1,99)
c:EnableReviveLimit() c:EnableReviveLimit()
--spsummon condition --spsummon condition
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
......
...@@ -27,15 +27,11 @@ function s.initial_effect(c) ...@@ -27,15 +27,11 @@ function s.initial_effect(c)
e2:SetOperation(s.spop) e2:SetOperation(s.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function s.filter(c)
return c:IsSetCard(0x6ce1) and c:IsFaceup()
end
function s.condition(e,tp,eg,ep,ev,re,r,rp) function s.condition(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev) return re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_MZONE,0,1,nil)
end end
function s.cfilter(c,tp) function s.cfilter(c,tp)
return c:IsRace(RACE_ZOMBIE) and (c:IsControler(tp) or c:IsFaceup()) and not c:IsStatus(STATUS_BATTLE_DESTROYED) return c:IsSetCard(0x6ce1) and (c:IsControler(tp) or c:IsFaceup()) and not c:IsStatus(STATUS_BATTLE_DESTROYED)
end end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,s.cfilter,1,nil,tp) end if chk==0 then return Duel.CheckReleaseGroup(tp,s.cfilter,1,nil,tp) end
......
--Servant-U-奥尔加玛丽·阿尼姆斯菲亚
local s,id,o=GetID()
function s.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,s.mfilter,s.xyzcheck,5,5)
local e1=Effect.CreateEffect(c)
--
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DESTROY_REPLACE)
e1:SetRange(LOCATION_MZONE)
e1:SetTarget(s.reptg)
e1:SetValue(s.repval)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(s.atkval)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(1190)
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_MZONE)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e3:SetCountLimit(1,id)
e3:SetCondition(s.thcon)
e3:SetCost(s.thcost)
e3:SetTarget(s.thtg)
e3:SetOperation(s.thop)
c:RegisterEffect(e3)
end
function s.mfilter(c,xyzc)
return c:IsSetCard(0x5ce1)
end
function s.xyzcheck(g)
return g:GetClassCount(Card.GetRace)==g:GetCount()
end
function s.repfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x6ce1) and c:GetOverlayCount()==0
and c:IsControler(tp) and c:IsReason(REASON_BATTLE+REASON_EFFECT)
end
function s.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:CheckRemoveOverlayCard(tp,1,REASON_EFFECT) and eg:IsExists(s.repfilter,1,c,tp) end
c:RemoveOverlayCard(tp,1,1,REASON_EFFECT)
return true
end
function s.repval(e,c)
return s.repfilter(c,e:GetHandlerPlayer())
end
function s.atkval(e,c)
return e:GetHandler():GetOverlayCount()*200
end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
return true
end
function s.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetOverlayCount()
if chk==0 then return ct>0 end
e:SetLabel(ct)
c:RemoveOverlayCard(tp,ct,ct,REASON_COST)
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetOverlayCount()
if chk==0 then
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<ct then return false end
local g=Duel.GetDecktopGroup(tp,ct)
local result=g:FilterCount(Card.IsAbleToHand,nil)>0
return result and e:IsCostChecked()
end
Duel.SetTargetPlayer(tp)
Duel.Hint(24,0,aux.Stringid(id,0))
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
Duel.ConfirmDecktop(p,ct)
local g=Duel.GetDecktopGroup(p,ct)
if not g then return end
hg=g:Filter(Card.IsAbleToHand,nil)
if #hg>0 then
Duel.Hint(HINT_SELECTMSG,p,HINTMSG_ATOHAND)
local sg=hg:Select(p,1,1,nil)
Duel.DisableShuffleCheck()
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-p,sg)
Duel.ShuffleHand(p)
ct=ct-1
end
Duel.SortDecktop(p,p,ct)
for i=1,ct do
local mg=Duel.GetDecktopGroup(p,1)
Duel.MoveSequence(mg:GetFirst(),SEQ_DECKBOTTOM)
end
end
\ No newline at end of file
--回归之兽 提亚马特
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,16401660)
c:EnableReviveLimit()
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(s.immval)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(s.atkval)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(1118)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOHAND+CATEGORY_GRAVE_ACTION)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_DESTROYED)
e3:SetCountLimit(1,id)
e3:SetCondition(s.spcon)
e3:SetTarget(s.sptg)
e3:SetOperation(s.spop)
c:RegisterEffect(e3)
end
function s.immval(e,te)
local c=e:GetHandler()
local tc=te:GetHandler()
return te:IsActiveType(TYPE_MONSTER) and tc:IsAttackBelow(c:GetAttack())
end
function s.atkfilter(c)
return c:IsSetCard(0x5ce1) and c:IsType(TYPE_MONSTER) and c:GetAttack()>=0
end
function s.atkval(e,c)
local g=Duel.GetMatchingGroup(s.atkfilter,c:GetControler(),LOCATION_GRAVE,0,nil)
return g:GetSum(Card.GetAttack)
end
function s.spfilter(c,e,tp)
return c:IsSetCard(0x5ce1) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.thfilter(c)
return c:IsSetCard(0x5ce1) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_EFFECT+REASON_BATTLE)~=0
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end
if ft>=2 then ft=2 end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,ft,nil,e,tp)
if #g>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end
if Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,1,nil)
if #sg>0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
end
\ No newline at end of file
--Servant-U-奥尔加玛丽·迦勒底亚斯
local s,id,o=GetID()
function s.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,s.mfilter,s.xyzcheck,5,5)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,2))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id)
e1:SetTarget(s.ovtg)
e1:SetOperation(s.ovop)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(s.atkval)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,1))
e3:SetCategory(CATEGORY_DESTROY+CATEGORY_DISABLE+CATEGORY_REMOVE+CATEGORY_TOHAND+CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,id+1)
e3:SetCost(s.cost)
e3:SetTarget(s.mttg)
e3:SetOperation(s.mtop)
c:RegisterEffect(e3)
end
function s.mfilter(c,xyzc)
return c:IsSetCard(0x5ce1)
end
function s.xyzcheck(g)
return g:GetClassCount(Card.GetRace)==1
end
function s.ovfilter(c)
return c:IsFaceup() and c:IsAttackPos()
end
function s.ovtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.ovfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(s.ovfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,s.ovfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,e:GetHandler())
end
function s.ovop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
local og=tc:GetOverlayGroup()
if #og>0 then
Duel.SendtoGrave(og,REASON_RULE)
end
Duel.Overlay(c,Group.FromCards(tc))
end
end
function s.atkval(e,c)
return c:GetOverlayCount()*500
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(100)
if chk==0 then return true end
end
function s.mttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) end
if chk==0 then
if e:GetLabel()~=100 then return false end
e:SetLabel(0)
return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) and Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
end
e:SetLabel(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
local tc=g:GetFirst()
local ot=c:GetOverlayCount()
local b1=ot>=1
local b2=ot>=2
local b3=ot>=3 and tc:IsAbleToRemove()
local b4=ot>=4 and aux.NegateAnyFilter(tc)
local b5=ot>=5 and tc:IsAbleToHand()
local b6=ot>=6 and tc:IsAbleToRemove()
local b7=ot>=7 and tc:IsAbleToDeck()
local off=1
local ops={}
local opval={}
if b1 then
ops[off]=aux.Stringid(id,7)
opval[off-1]=1
off=off+1
end
if b2 then
ops[off]=aux.Stringid(id,3)
opval[off-1]=2
off=off+1
end
if b3 then
ops[off]=aux.Stringid(id,4)
opval[off-1]=3
off=off+1
end
if b4 then
ops[off]=aux.Stringid(id,6)
opval[off-1]=4
off=off+1
end
if b5 then
ops[off]=aux.Stringid(id,5)
opval[off-1]=5
off=off+1
end
if b6 then
ops[off]=aux.Stringid(id,8)
opval[off-1]=6
off=off+1
end
if b7 then
ops[off]=aux.Stringid(id,9)
opval[off-1]=7
off=off+1
end
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
if not c:CheckRemoveOverlayCard(tp,sel,REASON_COST) then return end
c:RemoveOverlayCard(tp,sel,sel,REASON_COST)
e:SetLabel(sel)
Duel.Hint(24,0,aux.Stringid(id,0))
end
function s.mtop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if not (c:IsRelateToEffect(e) and tc and tc:IsRelateToEffect(e)) then return end
local ct=e:GetLabel()
if ct==1 then
Duel.Destroy(tc,REASON_EFFECT)
elseif ct==2 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
elseif ct==3 then
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT+REASON_TEMPORARY)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetLabelObject(tc)
e1:SetCountLimit(1)
e1:SetCondition(s.retcon)
e1:SetOperation(s.retop)
if Duel.GetTurnPlayer()==1-tp and Duel.GetCurrentPhase()==PHASE_END then
e1:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
e1:SetValue(Duel.GetTurnCount())
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,2)
else
e1:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
e1:SetValue(0)
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,1)
end
Duel.RegisterEffect(e1,tp)
elseif ct==4 then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
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(400)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetValue(RESET_TURN_SET)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
elseif ct==5 then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
elseif ct==6 then
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
elseif ct==7 then
Duel.SendtoDeck(tc,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
function s.retcon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=1-tp or Duel.GetTurnCount()==e:GetValue() then return false end
return e:GetLabelObject():GetFlagEffect(id)~=0
end
function sretop(e,tp,eg,ep,ev,re,r,rp)
Duel.ReturnToField(e:GetLabelObject())
end
\ No newline at end of file
...@@ -6,9 +6,10 @@ function s.initial_effect(c) ...@@ -6,9 +6,10 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,id) e1:SetCountLimit(1,id)
e1:SetCondition(s.xyzcon) e1:SetCondition(s.xyzcon)
e1:SetTarget(s.xyztg) e1:SetTarget(s.xyztg)
e1:SetOperation(s.xyzop) e1:SetOperation(s.xyzop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -46,7 +47,6 @@ function s.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,7 +47,6 @@ function s.checkop(e,tp,eg,ep,ev,re,r,rp)
while tc do while tc do
if tc:IsSetCard(0x694) then if tc:IsSetCard(0x694) then
Duel.RegisterFlagEffect(tc:GetOwner(),id,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tc:GetOwner(),id,RESET_PHASE+PHASE_END,0,1)
end end
tc=eg:GetNext() tc=eg:GetNext()
end end
......
...@@ -4,7 +4,7 @@ function s.sprule(c) ...@@ -4,7 +4,7 @@ function s.sprule(c)
aux.AddXyzProcedureLevelFree(c,s.mfilter,s.xyzcheck,2,2,s.ovfilter,aux.Stringid(id,0),s.xyzop) aux.AddXyzProcedureLevelFree(c,s.mfilter,s.xyzcheck,2,2,s.ovfilter,aux.Stringid(id,0),s.xyzop)
c:EnableReviveLimit() c:EnableReviveLimit()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SINGLE_RANGE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetRange(LOCATION_EXTRA) e1:SetRange(LOCATION_EXTRA)
...@@ -76,6 +76,7 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,6 +76,7 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsRelateToEffect(e)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
...@@ -94,24 +95,23 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -94,24 +95,23 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
local dg=Duel.GetMatchingGroup(s.desfilter,tc:GetControler(),LOCATION_ONFIELD,0,nil,tc) local dg=Duel.GetMatchingGroup(s.desfilter,tc:GetControler(),LOCATION_ONFIELD,0,nil,tc)
dg:AddCard(tc) dg:AddCard(tc)
if Duel.Destroy(dg,REASON_EFFECT)~=0 then if Duel.Destroy(dg,REASON_EFFECT)~=0 then
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0 then if c:IsRelateToEffect(e) and Duel.SpecialSummonStep(c,0,tp,tp,false,false,POS_FACEUP) then
Duel.BreakEffect() local ct=Duel.GetMatchingGroupCount(s.atkfilter,tp,LOCATION_GRAVE,0,nil)
local e1=Effect.CreateEffect(c) if ct>0 then
e1:SetType(EFFECT_TYPE_SINGLE) local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SINGLE_RANGE) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetValue(s.atkval) e1:SetValue(ct*1000)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end
Duel.SpecialSummonComplete()
end end
end end
end end
function s.atkfilter(c) function s.atkfilter(c)
return c.lcb_jianqi return c.lcb_jianqi
end end
function s.atkval(e,c)
return Duel.GetMatchingGroupCount(s.atkfilter,e:GetHandlerPlayer(),LOCATION_GRAVE,0,nil)*1000
end
function s.atk(c) function s.atk(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
......
...@@ -79,7 +79,7 @@ function s.initial_effect(c) ...@@ -79,7 +79,7 @@ function s.initial_effect(c)
c:RegisterEffect(e8) c:RegisterEffect(e8)
end end
function s.sumsuc(e,tp,eg,ep,ev,re,r,rp) function s.sumsuc(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_MUSIC,0,aux.Stringid(s,0)) Duel.Hint(HINT_MUSIC,0,aux.Stringid(id,0))
Duel.Hint(24,0,aux.Stringid(id,3)) Duel.Hint(24,0,aux.Stringid(id,3))
end end
function s.chainfilter(re,rp,cid) function s.chainfilter(re,rp,cid)
......
...@@ -79,7 +79,7 @@ function s.initial_effect(c) ...@@ -79,7 +79,7 @@ function s.initial_effect(c)
c:RegisterEffect(e8) c:RegisterEffect(e8)
end end
function s.sumsuc(e,tp,eg,ep,ev,re,r,rp) function s.sumsuc(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_MUSIC,0,aux.Stringid(s,0)) Duel.Hint(HINT_MUSIC,0,aux.Stringid(id,0))
Duel.Hint(24,0,aux.Stringid(id,3)) Duel.Hint(24,0,aux.Stringid(id,3))
end end
function s.chainfilter(re,rp,cid) function s.chainfilter(re,rp,cid)
......
-- 焰速轰鸣 领跑者α
local s,id=GetID()
function s.initial_effect(c)
-- 效果①: 召唤·特殊召唤时检索
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,{id,1})
e1:SetTarget(s.thtg)
e1:SetOperation(s.thop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
-- 效果②: 对方回合墓地苏生
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_GRAVE)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e3:SetCountLimit(1,{id,1})
e3:SetCondition(s.spcon)
e3:SetTarget(s.sptg)
e3:SetOperation(s.spop)
c:RegisterEffect(e3)
end
-- 效果①处理函数
function s.thfilter(c)
return c:IsSetCard(0x893) and c:IsAbleToHand() and not c:IsCode(id)
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if #g>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
-- 效果②处理函数
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function s.tgfilter(c,e,tp)
return c:IsFaceup() and c:IsRace(RACE_MACHINE) and c:IsAbleToDeck()
and not c:IsCode(id) and c:IsCanBeEffectTarget(e)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_REMOVED+LOCATION_GRAVE) and s.tgfilter(chkc,e,tp) end
if chk==0 then
local g=Duel.GetMatchingGroup(s.tgfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,nil,e,tp)
return #g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectTarget(tp,s.tgfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
-- 效果②处理函数
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and tc:IsLocation(LOCATION_DECK+LOCATION_EXTRA) and c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end
end
\ No newline at end of file
local s,id=GetID()
function s.initial_effect(c)
-- 超量召唤设置
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,s.mfilter,nil,2,2)
-- 注册超量召唤标志
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_SPSUMMON_SUCCESS)
e0:SetOperation(s.regop)
c:RegisterEffect(e0)
-- 效果①:取除素材检索/特殊召唤
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,id)
e1:SetCondition(s.xyzcon)
e1:SetCost(s.discost)
e1:SetTarget(s.xyztg)
e1:SetOperation(s.xyzop)
c:RegisterEffect(e1)
-- 效果②:作为素材赋予宿主效果
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_BE_MATERIAL)
e2:SetCondition(s.efcon)
e2:SetOperation(s.efop)
c:RegisterEffect(e2)
end
-- 超量素材检测
function s.mfilter(c,xyzc)
return c:IsSetCard(0x893) or c:IsLevel(7) -- 焰速轰鸣或任意7星怪兽
end
-- 注册超量召唤标志
function s.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsSummonType(SUMMON_TYPE_XYZ) then
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
end
-- 效果①发动条件(只能在超量召唤的回合发动)
function s.xyzcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(id)>0
end
-- 效果①cost:取除超量素材
function s.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
-- 效果①:取除素材检索/特殊召唤
function s.filter(c)
return c:IsSetCard(0x893) and c:IsDefense(200)
end
function s.xyztg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil)
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function s.xyzop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst()
if not tc then return end
local b1=tc:IsAbleToHand()
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
local op
if b1 and b2 then
op=Duel.SelectOption(tp,1190,1152)
elseif b1 then
op=0
elseif b2 then
op=1
else
return
end
if op==0 then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
else
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
-- 自肃效果
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
-- 自肃限制函数:只能特殊召唤超量怪兽
function s.splimit(e,c)
return c:IsLocation(LOCATION_EXTRA) and not c:IsType(TYPE_XYZ)
end
-- 效果②条件:成为超量素材
function s.efcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ and e:GetHandler():GetReasonCard():IsSetCard(0x893)
end
-- 效果②操作:赋予宿主效果
function s.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
-- 效果:不会成为对方效果的对象
local e1=Effect.CreateEffect(rc)
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)
rc:RegisterEffect(e1)
-- 如果宿主不是效果怪兽,添加效果类型
if not rc:IsType(TYPE_EFFECT) then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetValue(TYPE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e2,true)
end
end
\ No newline at end of file
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