Commit e81c638b authored by Tachibana's avatar Tachibana

watele

parent f8ef04b9
Pipeline #6810 passed with stage
in 27 minutes and 25 seconds
No preview for this file type
--灾祸的刻印
function c17032010.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(14105623,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_DESTROYED)
e1:SetRange(LOCATION_PZONE)
e1:SetCountLimit(1)
e1:SetCondition(c17032010.spcon)
e1:SetTarget(c17032010.sptg)
e1:SetOperation(c17032010.spop)
c:RegisterEffect(e1)
--splimit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e2:SetRange(LOCATION_PZONE)
e2:SetTargetRange(1,0)
e2:SetTarget(c17032010.splimit)
c:RegisterEffect(e2)
end
function c17032010.splimit(e,c)
return not c:IsAttribute(ATTRIBUTE_DARK)
end
function c17032010.cfilter(c,tp)
return c:IsReason(REASON_BATTLE+REASON_EFFECT) and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(tp)
end
function c17032010.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c17032010.cfilter,1,nil,tp)
end
function c17032010.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local b1=Duel.IsPlayerCanSpecialSummonMonster(tp,17032011,0,TYPES_TOKEN_MONSTER+TYPE_PENDULUM,0,0,1,RACE_FAIRY,ATTRIBUTE_DARK)
local b2=Duel.CheckLocation(tp,LOCATION_PZONE,0)
local b3=Duel.CheckLocation(tp,LOCATION_PZONE,0)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and (b1 or b2 or b3) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
end
function c17032010.spop(e,tp,eg,ep,ev,re,r,rp)
local token=Duel.CreateToken(tp,17032011)
local b1=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local b2=Duel.IsPlayerCanSpecialSummonMonster(tp,17032011,0,TYPES_TOKEN_MONSTER+TYPE_PENDULUM,0,0,1,RACE_FAIRY,ATTRIBUTE_DARK)
local b3=Duel.CheckLocation(tp,LOCATION_PZONE,0)
local b4=Duel.CheckLocation(tp,LOCATION_PZONE,1)
local off=1
local ops={}
local opval={}
if b1 and b2 then
ops[off]=aux.Stringid(17032010,0)
opval[off-1]=1
off=off+1
end
if b3 or b4 then
ops[off]=aux.Stringid(17032010,1)
opval[off-1]=2
off=off+1
end
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
if op==0 then
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
else
Duel.MoveToField(token,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
\ No newline at end of file
--暗影衍生物
function c17032011.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,false)
end
--暗影指挥官
function c17032030.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,false)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,aux.FilterBoolFunction(Card.IsFusionAttribute,ATTRIBUTE_DARK),3,true)
--reflect battle dam
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_REFLECT_BATTLE_DAMAGE)
e1:SetValue(1)
c:RegisterEffect(e1)
--pendulum
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetTarget(c17032030.pentg)
e2:SetOperation(c17032030.penop)
c:RegisterEffect(e2)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_DESTROYED)
e3:SetCondition(c17032030.spcon)
e3:SetTarget(c17032030.sptg)
e3:SetOperation(c17032030.spop)
c:RegisterEffect(e3)
--destory
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_RECOVER)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetRange(LOCATION_PZONE)
e4:SetCountLimit(1)
e4:SetCondition(c17032030.descon)
e4:SetTarget(c17032030.destg)
e4:SetOperation(c17032030.desop)
c:RegisterEffect(e4)
--draw
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(78274190,1))
e5:SetCategory(CATEGORY_DRAW)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_PZONE)
e5:SetCountLimit(1)
e5:SetCost(c17032030.drcost)
e5:SetTarget(c17032030.drtg)
e5:SetOperation(c17032030.drop)
c:RegisterEffect(e5)
end
function c17032030.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end
function c17032030.penop(e,tp,eg,ep,ev,re,r,rp)
if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return false end
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
function c17032030.spcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_EFFECT+REASON_BATTLE)~=0 and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function c17032030.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,59822133)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsPlayerCanSpecialSummonMonster(tp,17032031,0,TYPES_TOKEN_MONSTER+TYPE_PENDULUM,0,0,1,RACE_FAIRY,ATTRIBUTE_DARK) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,0,0)
end
function c17032030.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsPlayerCanSpecialSummonMonster(tp,17032031,0,TYPES_TOKEN_MONSTER+TYPE_PENDULUM,0,0,1,RACE_FAIRY,ATTRIBUTE_DARK) then
for i=1,3 do
local token=Duel.CreateToken(tp,17032031)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
end
Duel.SpecialSummonComplete()
end
end
function c17032030.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,Card.IsType,1,nil,TYPE_TOKEN) end
local ct=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)
if ct>3 then ct=3 end
local g=Duel.SelectReleaseGroup(tp,Card.IsType,1,ct,nil,TYPE_TOKEN)
local rct=Duel.Release(g,REASON_COST)
e:SetLabel(rct)
end
function c17032030.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,e:GetLabel())
end
function c17032030.drop(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,e:GetLabel(),REASON_EFFECT)
end
function c17032030.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c17032030.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not e:GetHandler():IsStatus(STATUS_CHAINING) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function c17032030.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.Destroy(c,REASON_EFFECT)
end
end
--暗影衍生物
function c17032031.initial_effect(c)
end
--调停者的使命 佐伊
local m=17061230
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x7f3,LOCATION_PZONE+LOCATION_MZONE)
aux.EnablePendulumAttribute(c,false)
--pendulum summon
aux.EnablePendulumAttribute(c)
--add counter
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_PAY_LPCOST)
e1:SetRange(LOCATION_PZONE)
e1:SetOperation(cm.acop)
c:RegisterEffect(e1)
--token
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e2:SetDescription(aux.Stringid(17061230,0))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_PZONE)
e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
--summon with 1 tribute
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(17061230,1))
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SUMMON_PROC)
e3:SetCondition(cm.otcon)
e3:SetOperation(cm.otop)
e3:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_SET_PROC)
c:RegisterEffect(e4)
--summon
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_CANNOT_DISABLE_SUMMON)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
c:RegisterEffect(e5)
--summon success
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(17061230,2))
e6:SetCategory(CATEGORY_COUNTER)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_SUMMON_SUCCESS)
e6:SetTarget(cm.addct)
e6:SetOperation(cm.addc)
c:RegisterEffect(e6)
--activate cost
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetCode(EFFECT_ACTIVATE_COST)
e7:SetRange(LOCATION_MZONE)
e7:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e7:SetTargetRange(0,1)
e7:SetCost(cm.costchk)
e7:SetOperation(cm.costop)
c:RegisterEffect(e7)
--accumulate
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_FIELD)
e8:SetCode(0x10000000+17061230)
e8:SetRange(LOCATION_MZONE)
e8:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e8:SetTargetRange(0,1)
c:RegisterEffect(e8)
end
cm.Armageddon=1
function cm.acop(e,tp,eg,ep,ev,re,r,rp)
local ct=math.floor(ev/1000)
if ct>0 then
e:GetHandler():AddCounter(0x7f3,ct,true)
end
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x7f3,2,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x7f3,2,REASON_COST)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,17061231,0,TYPES_TOKEN_MONSTER+TYPE_TUNER+TYPE_PENDULUM,0,0,2,RACE_WYRM,ATTRIBUTE_LIGHT) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
if Duel.IsPlayerCanSpecialSummonMonster(tp,17061231,0,TYPES_TOKEN_MONSTER+TYPE_TUNER+TYPE_PENDULUM,0,0,2,RACE_WYRM,ATTRIBUTE_LIGHT) then
local token=Duel.CreateToken(tp,17061231)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.otcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsCanRemoveCounter(tp,1,0,0x7f3,3,REASON_COST)
end
function cm.otop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.RemoveCounter(tp,1,0,0x7f3,3,REASON_COST)
end
function cm.addct(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x7f3,1) end
end
function cm.addc(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p1=Duel.GetLP(tp)
local p2=Duel.GetLP(1-tp)
local s=p2-p1
if s<0 then s=p1-p2 end
local d=math.floor(s/1000)
if c:IsRelateToEffect(e) and d>0 then
c:AddCounter(0x7f3,d)
end
end
function cm.damfilter(c)
return c:GetCounter(0x7f3)>0 and c.Armageddon==1
end
function cm.costchk(e,te_or_c,tp)
local sg=Duel.GetMatchingGroup(cm.damfilter,tp,0,LOCATION_ONFIELD,nil)
local tc=sg:GetFirst()
local count=0
while tc do
count=count+tc:GetCounter(0x7f3)
tc=sg:GetNext()
end
return Duel.CheckLPCost(tp,count*300)
end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,17061230)
local Armageddon=e:GetHandler():GetCounter(0x7f3)
Duel.PayLPCost(tp,Armageddon*300)
end
--调停小龙衍生物
function c17061231.initial_effect(c)
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment