Commit 7eba87b3 authored by wyykak's avatar wyykak

fix dots

Signed-off-by: wyykak's avatarwyykak <wyy_1414@126.com>
parent a0998e51
Pipeline #39559 passed with stage
in 1 minute and 26 seconds
...@@ -23,7 +23,13 @@ if not DOT.DotCounter then ...@@ -23,7 +23,13 @@ if not DOT.DotCounter then
num1 = num1+dmg1 num1 = num1+dmg1
num2 = num2+dmg2 num2 = num2+dmg2
end end
Debug.Message('下一波持续伤害:'..num1.. local name
if tp == 0 then
name = '先手玩家'
else
name = '后手玩家'
end
Debug.Message(name..'下一波持续伤害:'..num1..
'剩余持续伤害:'..num2) '剩余持续伤害:'..num2)
class._n[tp] = {52001, num1, num2} class._n[tp] = {52001, num1, num2}
end end
......
...@@ -86,9 +86,10 @@ function c19047.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -86,9 +86,10 @@ function c19047.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,400,REASON_EFFECT) Duel.Damage(1-tp,400,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e) DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
end end
end end
end end
......
--藤原妹红 --藤原妹红
function c21024.initial_effect(c) function c21024.initial_effect(c)
--synchro summon --synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(c21024.synfilter),1) aux.AddSynchroProcedure(c,nil,aux.NonTuner(c21024.synfilter),1)
c:EnableReviveLimit() c:EnableReviveLimit()
--damage --damage
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(21024,0)) e1:SetDescription(aux.Stringid(21024,0))
e1:SetCategory(CATEGORY_DAMAGE) e1:SetCategory(CATEGORY_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(c21024.dtg) e1:SetTarget(c21024.dtg)
e1:SetOperation(c21024.dop) e1:SetOperation(c21024.dop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--special summon --special summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC) e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE) e2:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCondition(c21024.spcon) e2:SetCondition(c21024.spcon)
e2:SetOperation(c21024.spop) e2:SetOperation(c21024.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--attack up --attack up
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(21024,1)) e3:SetDescription(aux.Stringid(21024,1))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_DAMAGE) e3:SetCode(EVENT_DAMAGE)
e3:SetCondition(c21024.cd) e3:SetCondition(c21024.cd)
e3:SetOperation(c21024.op) e3:SetOperation(c21024.op)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c21024.synfilter(c) function c21024.synfilter(c)
return c:IsSetCard(0x208) and c:IsType(TYPE_DUAL) return c:IsSetCard(0x208) and c:IsType(TYPE_DUAL)
end end
function c21024.dtg(e,tp,eg,ep,ev,re,r,rp,chk) function c21024.dtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
end end
function c21024.dop(e,tp,eg,ep,ev,re,r,rp) function c21024.dop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetLabel(0) e1:SetLabel(0)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetOperation(c21024.damop) e1:SetOperation(c21024.damop)
e1:SetReset(RESET_PHASE+PHASE_END,3) e1:SetReset(RESET_PHASE+PHASE_END,3)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
DOT.DotCounter.Add(nil,1-tp,0,400,1200,e) DOT.DotCounter.Add(nil,1-tp,0,400,1200,e)
end end
function c21024.damop(e,tp,eg,ep,ev,re,r,rp) function c21024.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ct=e:GetLabel() local ct=e:GetLabel()
if(ct<3) then if(ct<3) then
ct=ct+1 ct=ct+1
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(tp,400,REASON_EFFECT,true) Duel.Damage(tp,400,REASON_EFFECT,true)
Duel.Damage(1-tp,400,REASON_EFFECT,true) Duel.Damage(1-tp,400,REASON_EFFECT,true)
Duel.RDComplete() Duel.RDComplete()
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e) if ct==3 then
if ct==3 then DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e)
DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e) else
end DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
end end
end end
function c21024.spfilter(c) end
return c:IsFaceup() and c:IsSetCard(0x208) and c:IsReleasable() function c21024.spfilter(c)
end return c:IsFaceup() and c:IsSetCard(0x208) and c:IsReleasable()
function c21024.spcon(e,c) end
if c==nil then return true end function c21024.spcon(e,c)
return Duel.GetFlagEffect(c:GetControler(),21024)==0 if c==nil then return true end
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return Duel.GetFlagEffect(c:GetControler(),21024)==0
and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>-1 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsExistingMatchingCard(c21024.spfilter,c:GetControler(),LOCATION_MZONE,0,1,nil) and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>-1
end and Duel.IsExistingMatchingCard(c21024.spfilter,c:GetControler(),LOCATION_MZONE,0,1,nil)
function c21024.spop(e,tp,eg,ep,ev,re,r,rp,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) function c21024.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectMatchingCard(tp,c21024.spfilter,tp,LOCATION_MZONE,0,1,1,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
Duel.Release(g,nil,REASON_COST) local g=Duel.SelectMatchingCard(tp,c21024.spfilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.RegisterFlagEffect(tp,21024,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1) Duel.Release(g,nil,REASON_COST)
end Duel.RegisterFlagEffect(tp,21024,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
function c21024.cd(e,tp,eg,ep,ev,re,r,rp) end
if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end function c21024.cd(e,tp,eg,ep,ev,re,r,rp)
return tp==ep if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end
end return tp==ep
function c21024.op(e,tp,eg,ep,ev,re,r,rp) end
local c=e:GetHandler() function c21024.op(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local c=e:GetHandler()
e1:SetType(EFFECT_TYPE_SINGLE) local e1=Effect.CreateEffect(c)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetValue(300) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1ff0000+RESET_PHASE+PHASE_END+RESET_OPPO_TURN) e1:SetValue(300)
c:RegisterEffect(e1) e1:SetReset(RESET_EVENT+0x1ff0000+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
end c:RegisterEffect(e1)
end
--烧不死的人类✿藤原妹红 --烧不死的人类✿藤原妹红
function c21091.initial_effect(c) function c21091.initial_effect(c)
--recover? --recover?
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(21091,0)) e1:SetDescription(aux.Stringid(21091,0))
e1:SetCategory(CATEGORY_DAMAGE) e1:SetCategory(CATEGORY_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EVENT_BATTLE_DESTROYING) e1:SetCode(EVENT_BATTLE_DESTROYING)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCondition(c21091.reccon) e1:SetCondition(c21091.reccon)
e1:SetTarget(c21091.rectg) e1:SetTarget(c21091.rectg)
e1:SetOperation(c21091.recop) e1:SetOperation(c21091.recop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--special summon --special summon
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(21091,1)) e4:SetDescription(aux.Stringid(21091,1))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE) e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET) e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetType(EFFECT_TYPE_IGNITION) e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_GRAVE) e4:SetRange(LOCATION_GRAVE)
e4:SetCountLimit(1,21091+EFFECT_FLAG_OATH) e4:SetCountLimit(1,21091+EFFECT_FLAG_OATH)
e4:SetCondition(c21091.condition) e4:SetCondition(c21091.condition)
e4:SetCost(c21091.hspcost) e4:SetCost(c21091.hspcost)
e4:SetTarget(c21091.hsptg) e4:SetTarget(c21091.hsptg)
e4:SetOperation(c21091.hspop) e4:SetOperation(c21091.hspop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
function c21091.reccon(e,tp,eg,ep,ev,re,r,rp) function c21091.reccon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local t=Duel.GetAttackTarget() local t=Duel.GetAttackTarget()
if ev==1 then t=Duel.GetAttacker() end if ev==1 then t=Duel.GetAttacker() end
if not c:IsRelateToBattle() or c:IsFacedown() then return false end if not c:IsRelateToBattle() or c:IsFacedown() then return false end
e:SetLabel(t:GetLevel()*200) e:SetLabel(t:GetLevel()*200)
return t:GetLocation()==LOCATION_GRAVE and t:IsType(TYPE_MONSTER) return t:GetLocation()==LOCATION_GRAVE and t:IsType(TYPE_MONSTER)
end end
function c21091.rectg(e,tp,eg,ep,ev,re,r,rp,chk) function c21091.rectg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
end end
function c21091.recop(e,tp,eg,ep,ev,re,r,rp) function c21091.recop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetLabel(0,e:GetLabel()) e1:SetLabel(0,e:GetLabel())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetOperation(c21091.damop) e1:SetOperation(c21091.damop)
e1:SetReset(RESET_PHASE+PHASE_END,3) e1:SetReset(RESET_PHASE+PHASE_END,3)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
DOT.DotCounter.Add(nil,1-tp,0,e:GetLabel(),e:GetLabel()*3,e) DOT.DotCounter.Add(nil,1-tp,0,e:GetLabel(),e:GetLabel()*3,e)
end end
function c21091.damop(e,tp,eg,ep,ev,re,r,rp) function c21091.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ct,dam=e:GetLabel() local ct,dam=e:GetLabel()
if(ct<3) then if(ct<3) then
ct=ct+1 ct=ct+1
e:SetLabel(ct,dam) e:SetLabel(ct,dam)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(tp,dam,REASON_EFFECT,true) Duel.Damage(tp,dam,REASON_EFFECT,true)
Duel.Damage(1-tp,dam,REASON_EFFECT,true) Duel.Damage(1-tp,dam,REASON_EFFECT,true)
Duel.RDComplete() Duel.RDComplete()
DOT.DotCounter.Add(nil,1-tp,0,0,-dam,e) if ct==3 then
if ct==3 then DOT.DotCounter.Add(nil,1-tp,0,-dam,-dam,e)
DOT.DotCounter.Add(nil,1-tp,0,-dam,-dam,e) else
end DOT.DotCounter.Add(nil,1-tp,0,0,-dam,e)
end end
end end
function c21091.filter(c) end
return not (c:IsFaceup() and c:IsSetCard(0x137)) function c21091.filter(c)
end return not (c:IsFaceup() and c:IsSetCard(0x137))
function c21091.condition(e,tp,eg,ep,ev,re,r,rp) end
return not Duel.IsExistingMatchingCard(c21091.filter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0 function c21091.condition(e,tp,eg,ep,ev,re,r,rp)
end return not Duel.IsExistingMatchingCard(c21091.filter,tp,LOCATION_MZONE,0,1,nil) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0
function c21091.hspcost(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then return true end function c21091.hspcost(e,tp,eg,ep,ev,re,r,rp,chk)
local cost=math.floor(Duel.GetLP(tp)/2) if chk==0 then return true end
Duel.PayLPCost(tp,cost) local cost=math.floor(Duel.GetLP(tp)/2)
end Duel.PayLPCost(tp,cost)
function c21091.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) end
if chkc then return chkc:GetLocation()==LOCATION_MZONE end function c21091.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chkc then return chkc:GetLocation()==LOCATION_MZONE end
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and e:GetHandler():IsReason(REASON_EFFECT+REASON_BATTLE) end if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and e:GetHandler():IsReason(REASON_EFFECT+REASON_BATTLE) end
local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
end local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
function c21091.hspop(e,tp,eg,ep,ev,re,r,rp) end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end function c21091.hspop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local tc=Duel.GetFirstTarget() local c=e:GetHandler()
if tc:IsRelateToEffect(e) and c:IsRelateToEffect(e) then local tc=Duel.GetFirstTarget()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) if tc:IsRelateToEffect(e) and c:IsRelateToEffect(e) then
if tc:IsFaceup() then Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler()) if tc:IsFaceup() then
e1:SetType(EFFECT_TYPE_SINGLE) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(tc:GetAttack()/2) e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1) e1:SetValue(tc:GetAttack()/2)
local e2=e1:Clone() tc:RegisterEffect(e1)
e2:SetCode(EFFECT_SET_DEFENSE_FINAL) local e2=e1:Clone()
e2:SetValue(tc:GetDefense()/2) e2:SetCode(EFFECT_SET_DEFENSE_FINAL)
tc:RegisterEffect(e2) e2:SetValue(tc:GetDefense()/2)
end tc:RegisterEffect(e2)
end end
end end
end
--猛毒『毒蛾的黑暗演舞』 --猛毒『毒蛾的黑暗演舞』
function c21146.initial_effect(c) function c21146.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE+CATEGORY_DAMAGE) e1:SetCategory(CATEGORY_REMOVE+CATEGORY_DAMAGE)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c21146.cost) e1:SetCost(c21146.cost)
e1:SetTarget(c21146.target) e1:SetTarget(c21146.target)
e1:SetOperation(c21146.activate) e1:SetOperation(c21146.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c21146.filter(c) function c21146.filter(c)
return (math.abs(c:GetAttack()-c:GetDefense())==200 or math.abs(c:GetAttack()-c:GetDefense())==2000) return (math.abs(c:GetAttack()-c:GetDefense())==200 or math.abs(c:GetAttack()-c:GetDefense())==2000)
and not c:IsType(TYPE_LINK) and c:IsReleasable() and not c:IsType(TYPE_LINK) and c:IsReleasable()
end end
function c21146.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c21146.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local a,b,dot=DOT.DotCounter.Get(1-tp) local a,b,dot=DOT.DotCounter.Get(1-tp)
local LO=0x6 local LO=0x6
if dot>0 then LO=0x7 end if dot>0 then LO=0x7 end
return Duel.IsExistingMatchingCard(c21146.filter,tp,LO,0,1,nil) end return Duel.IsExistingMatchingCard(c21146.filter,tp,LO,0,1,nil) end
local g=Duel.SelectMatchingCard(tp,c21146.filter,tp,LO,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c21146.filter,tp,LO,0,1,1,nil)
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
end end
function c21146.target(e,tp,eg,ep,ev,re,r,rp,chk) function c21146.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
end end
function c21146.activate(e,tp,eg,ep,ev,re,r,rp) function c21146.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,e:GetHandler()) local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,e:GetHandler())
if #g>0 then if #g>0 then
Duel.Remove(g,POS_FACEDOWN,REASON_EFFECT) Duel.Remove(g,POS_FACEDOWN,REASON_EFFECT)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetLabel(0) e1:SetLabel(0)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY) e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e1:SetCondition(c21146.damcon) e1:SetCondition(c21146.damcon)
e1:SetOperation(c21146.damop) e1:SetOperation(c21146.damop)
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_OPPO_TURN,4) e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_OPPO_TURN,4)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
DOT.DotCounter.Add(nil,1-tp,0,300,1200,e) DOT.DotCounter.Add(nil,1-tp,0,300,1200,e)
end end
end end
function c21146.damcon(e,tp,eg,ep,ev,re,r,rp) function c21146.damcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp return Duel.GetTurnPlayer()~=tp
end end
function c21146.damop(e,tp,eg,ep,ev,re,r,rp) function c21146.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ct=e:GetLabel() local ct=e:GetLabel()
if(ct<4) then if(ct<4) then
ct=ct+1 ct=ct+1
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,300,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-300,e) if ct==4 then
if ct==4 then DOT.DotCounter.Add(nil,1-tp,0,-300,-300,e)
DOT.DotCounter.Add(nil,1-tp,0,-300,-300,e) else
end DOT.DotCounter.Add(nil,1-tp,0,0,-300,e)
end end
end end
end
--人类地狱火✿藤原妹红 --人类地狱火✿藤原妹红
function c21161.initial_effect(c) function c21161.initial_effect(c)
--xyz summon --xyz summon
aux.AddXyzProcedure(c,nil,5,2) aux.AddXyzProcedure(c,nil,5,2)
c:EnableReviveLimit() c:EnableReviveLimit()
--search --search
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(21161,0)) e1:SetDescription(aux.Stringid(21161,0))
e1:SetCategory(CATEGORY_DAMAGE+CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCategory(CATEGORY_DAMAGE+CATEGORY_TOHAND+CATEGORY_SEARCH)
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:SetCondition(c21161.con) e1:SetCondition(c21161.con)
e1:SetTarget(c21161.tg) e1:SetTarget(c21161.tg)
e1:SetOperation(c21161.op) e1:SetOperation(c21161.op)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--addown --addown
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(21161,1)) e2:SetDescription(aux.Stringid(21161,1))
e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE) e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCost(c21161.adcost) e2:SetCost(c21161.adcost)
e2:SetTarget(c21161.adtg) e2:SetTarget(c21161.adtg)
e2:SetOperation(c21161.adop) e2:SetOperation(c21161.adop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c21161.con(e,tp,eg,ep,ev,re,r,rp) function c21161.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_XYZ return e:GetHandler():GetSummonType()==SUMMON_TYPE_XYZ
end end
function c21161.sfilter1(c) function c21161.sfilter1(c)
return c:IsCode(21099) and c:IsAbleToHand() return c:IsCode(21099) and c:IsAbleToHand()
end end
function c21161.sfilter2(c) function c21161.sfilter2(c)
return c:IsCode(21100) and c:IsAbleToHand() return c:IsCode(21100) and c:IsAbleToHand()
end end
function c21161.tg(e,tp,eg,ep,ev,re,r,rp,chk) function c21161.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c21161.sfilter1,tp,LOCATION_DECK,0,1,nil) if chk==0 then return Duel.IsExistingMatchingCard(c21161.sfilter1,tp,LOCATION_DECK,0,1,nil)
and Duel.IsExistingMatchingCard(c21161.sfilter2,tp,LOCATION_DECK,0,1,nil) end and Duel.IsExistingMatchingCard(c21161.sfilter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK)
end end
function c21161.op(e,tp,eg,ep,ev,re,r,rp) function c21161.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=Duel.SelectMatchingCard(tp,c21161.sfilter1,tp,LOCATION_DECK,0,1,1,nil) local g1=Duel.SelectMatchingCard(tp,c21161.sfilter1,tp,LOCATION_DECK,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,c21161.sfilter2,tp,LOCATION_DECK,0,1,1,nil) local g2=Duel.SelectMatchingCard(tp,c21161.sfilter2,tp,LOCATION_DECK,0,1,1,nil)
g1:Merge(g2) g1:Merge(g2)
if g1:GetCount()>0 then if g1:GetCount()>0 then
Duel.SendtoHand(g1,nil,REASON_EFFECT) Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1) Duel.ConfirmCards(1-tp,g1)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetLabel(0) e1:SetLabel(0)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetOperation(c21161.damop) e1:SetOperation(c21161.damop)
e1:SetReset(RESET_PHASE+PHASE_END,2) e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
DOT.DotCounter.Add(nil,1-tp,0,400,800,e) DOT.DotCounter.Add(nil,tp,0,400,800,e)
end DOT.DotCounter.Add(nil,1-tp,0,400,800,e)
end end
function c21161.damop(e,tp,eg,ep,ev,re,r,rp) end
local c=e:GetHandler() function c21161.damop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel() local c=e:GetHandler()
if(ct<2) then local ct=e:GetLabel()
ct=ct+1 if(ct<2) then
e:SetLabel(ct) ct=ct+1
c:SetTurnCounter(ct) e:SetLabel(ct)
Duel.Damage(tp,400,REASON_EFFECT,true) c:SetTurnCounter(ct)
Duel.Damage(1-tp,400,REASON_EFFECT,true) Duel.Damage(tp,400,REASON_EFFECT,true)
Duel.RDComplete() Duel.Damage(1-tp,400,REASON_EFFECT,true)
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e) Duel.RDComplete()
if ct==2 then if ct==2 then
DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e) DOT.DotCounter.Add(nil,tp,0,-400,-400,e)
end DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e)
end else
end DOT.DotCounter.Add(nil,tp,0,0,-400,e)
function c21161.adcost(e,tp,eg,ep,ev,re,r,rp,chk) DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) end
end end
function c21161.filter(c) function c21161.adcost(e,tp,eg,ep,ev,re,r,rp,chk)
return c:IsAbleToGrave() and c:IsSetCard(0x137) and c:IsType(TYPE_MONSTER) if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
end e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
function c21161.adtg(e,tp,eg,ep,ev,re,r,rp,chk) end
if chk==0 then function c21161.filter(c)
local g1=e:GetHandler():GetOverlayGroup() return c:IsAbleToGrave() and c:IsSetCard(0x137) and c:IsType(TYPE_MONSTER)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_DECK,0,nil) end
g:Merge(g1) function c21161.adtg(e,tp,eg,ep,ev,re,r,rp,chk)
return g:FilterCount(c21161.filter,nil)>0 end if chk==0 then
end local g1=e:GetHandler():GetOverlayGroup()
function c21161.adop(e,tp,eg,ep,ev,re,r,rp) local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_DECK,0,nil)
local g1=e:GetHandler():GetOverlayGroup() g:Merge(g1)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_DECK,0,nil) return g:FilterCount(c21161.filter,nil)>0 end
g:Merge(g1) end
if g:FilterCount(c21161.filter,nil)==0 then return end function c21161.adop(e,tp,eg,ep,ev,re,r,rp)
local sg=g:FilterSelect(tp,c21161.filter,1,1,nil) local g1=e:GetHandler():GetOverlayGroup()
local sc=sg:GetFirst() local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_DECK,0,nil)
Duel.SendtoGrave(sc,REASON_EFFECT) g:Merge(g1)
local dg=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_MZONE,nil) if g:FilterCount(c21161.filter,nil)==0 then return end
local ct=-200*2^math.floor(sc:GetAttack()/1000) local sg=g:FilterSelect(tp,c21161.filter,1,1,nil)
local tc=dg:GetFirst() local sc=sg:GetFirst()
while tc do Duel.SendtoGrave(sc,REASON_EFFECT)
local e1=Effect.CreateEffect(e:GetHandler()) local dg=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_MZONE,nil)
e1:SetType(EFFECT_TYPE_SINGLE) local ct=-200*2^math.floor(sc:GetAttack()/1000)
e1:SetCode(EFFECT_UPDATE_ATTACK) local tc=dg:GetFirst()
e1:SetValue(ct) while tc do
e1:SetReset(RESET_EVENT+0x1fe0000) local e1=Effect.CreateEffect(e:GetHandler())
tc:RegisterEffect(e1) e1:SetType(EFFECT_TYPE_SINGLE)
local e2=e1:Clone() e1:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetCode(EFFECT_UPDATE_DEFENSE) e1:SetValue(ct)
tc:RegisterEffect(e2) e1:SetReset(RESET_EVENT+0x1fe0000)
tc=dg:GetNext() tc:RegisterEffect(e1)
end local e2=e1:Clone()
end e2:SetCode(EFFECT_UPDATE_DEFENSE)
tc:RegisterEffect(e2)
tc=dg:GetNext()
end
end
...@@ -87,15 +87,29 @@ end ...@@ -87,15 +87,29 @@ end
function c22111.dmop(e,tp,eg,ep,ev,re,r,rp) function c22111.dmop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
local rt=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)*200 local rt=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)*200
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetLabel(0) e1:SetLabel(0,rt)
e1:SetCondition(c24066.damcon) e1:SetOperation(c22111.damop)
e1:SetOperation(c24066.damop) e1:SetReset(RESET_PHASE+PHASE_END,7)
e1:SetReset(RESET_PHASE+PHASE_END,7) Duel.RegisterEffect(e1,tp)
Duel.RegisterEffect(e1,tp) DOT.DotCounter.Add(nil,1-tp,0,rt,rt*7,e)
DOT.DotCounter.Add(nil,1-tp,0,rt,rt*7,e)
end end
function c22111.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct,rt=e:GetLabel()
if(ct<7) then
ct=ct+1
e:SetLabel(ct,rt)
c:SetTurnCounter(ct)
Duel.Damage(1-tp,rt,REASON_EFFECT)
if ct==7 then
DOT.DotCounter.Add(nil,1-tp,0,-rt,-rt,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-rt,e)
end
end
end
\ No newline at end of file
...@@ -92,11 +92,12 @@ function c22174.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -92,11 +92,12 @@ function c22174.damop(e,tp,eg,ep,ev,re,r,rp)
ct=ct+1 ct=ct+1
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Hint(HINT_CARD,0,22174) Duel.Hint(HINT_CARD,0,22174)
Duel.Damage(1-tp,1000,REASON_EFFECT) Duel.Damage(1-tp,1000,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-1000,e)
if ct==4 then if ct==4 then
DOT.DotCounter.Add(nil,1-tp,0,-1000,-1000,e) DOT.DotCounter.Add(nil,1-tp,0,-1000,-1000,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-1000,e)
end end
end end
end end
...@@ -55,9 +55,10 @@ function c24055.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -55,9 +55,10 @@ function c24055.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,300,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-300,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-300,-300,e) DOT.DotCounter.Add(nil,1-tp,0,-300,-300,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-300,e)
end end
end end
end end
......
...@@ -69,9 +69,10 @@ function c24059.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,9 +69,10 @@ function c24059.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,600,REASON_EFFECT) Duel.Damage(1-tp,600,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-600,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-600,-600,e) DOT.DotCounter.Add(nil,1-tp,0,-600,-600,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-600,e)
end end
end end
end end
...@@ -44,9 +44,10 @@ function c24066.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -44,9 +44,10 @@ function c24066.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,300,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-300,e)
if ct==5 then if ct==5 then
DOT.DotCounter.Add(nil,1-tp,0,-300,-300,e) DOT.DotCounter.Add(nil,1-tp,0,-300,-300,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-300,e)
end end
end end
end end
...@@ -79,9 +79,10 @@ function c24074.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -79,9 +79,10 @@ function c24074.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,400,REASON_EFFECT) Duel.Damage(1-tp,400,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e) DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
end end
end end
end end
...@@ -80,9 +80,10 @@ function s.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -80,9 +80,10 @@ function s.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,300,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-700,e)
if ct==2 then if ct==2 then
DOT.DotCounter.Add(nil,1-tp,0,-700,-700,e) DOT.DotCounter.Add(nil,1-tp,0,-700,-700,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-700,e)
end end
end end
end end
...@@ -121,9 +121,10 @@ function c25043.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -121,9 +121,10 @@ function c25043.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,500,REASON_EFFECT) Duel.Damage(1-tp,500,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e) DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
end end
end end
end end
...@@ -42,9 +42,10 @@ function c25048.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -42,9 +42,10 @@ function c25048.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,500,REASON_EFFECT) Duel.Damage(1-tp,500,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
if ct==5 then if ct==5 then
DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e) DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
end end
end end
end end
...@@ -56,9 +56,10 @@ function c25050.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,9 +56,10 @@ function c25050.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,800,REASON_EFFECT) Duel.Damage(1-tp,800,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-800,e)
if ct==2 then if ct==2 then
DOT.DotCounter.Add(nil,1-tp,0,-800,-800,e) DOT.DotCounter.Add(nil,1-tp,0,-800,-800,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-800,e)
end end
end end
end end
...@@ -54,9 +54,10 @@ function c25051.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,9 +54,10 @@ function c25051.damop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel() local ct=e:GetLabel()
if(ct<3) then if(ct<3) then
Duel.Damage(1-tp,400,REASON_EFFECT) Duel.Damage(1-tp,400,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e) DOT.DotCounter.Add(nil,1-tp,0,-400,-400,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-400,e)
end end
end end
end end
......
...@@ -84,9 +84,10 @@ function s.damop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -84,9 +84,10 @@ function s.damop1(e,tp,eg,ep,ev,re,r,rp)
if(ct>0) then if(ct>0) then
e:GetHandler():SetTurnCounter(ct-1) e:GetHandler():SetTurnCounter(ct-1)
Duel.Damage(1-tp,dam,REASON_EFFECT) Duel.Damage(1-tp,dam,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-dam,e)
if ct==1 then if ct==1 then
DOT.DotCounter.Add(nil,1-tp,0,-dam,0,e) DOT.DotCounter.Add(nil,1-tp,0,-dam,-dam,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-dam,e)
end end
end end
end end
......
...@@ -94,9 +94,10 @@ function c31013.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -94,9 +94,10 @@ function c31013.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,500,REASON_EFFECT) Duel.Damage(1-tp,500,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e) DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
end end
end end
end end
...@@ -95,9 +95,10 @@ function s.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -95,9 +95,10 @@ function s.damop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(ct) e:SetLabel(ct)
c:SetTurnCounter(ct) c:SetTurnCounter(ct)
Duel.Damage(1-tp,500,REASON_EFFECT) Duel.Damage(1-tp,500,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
if ct==3 then if ct==3 then
DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e) DOT.DotCounter.Add(nil,1-tp,0,-500,-500,e)
else
DOT.DotCounter.Add(nil,1-tp,0,0,-500,e)
end end
end end
end end
...@@ -21,6 +21,7 @@ function c888174.initial_effect(c) ...@@ -21,6 +21,7 @@ function c888174.initial_effect(c)
Duel.RegisterEffect(e1,0) Duel.RegisterEffect(e1,0)
local e2=e1:Clone() local e2=e1:Clone()
Duel.RegisterEffect(e2,1) Duel.RegisterEffect(e2,1)
c888174.burn_cts={{},{}}
end end
end end
function c888174.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c888174.cost(e,tp,eg,ep,ev,re,r,rp,chk)
...@@ -31,35 +32,28 @@ function c888174.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -31,35 +32,28 @@ function c888174.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
end end
function c888174.operation(e,tp,eg,ep,ev,re,r,rp) function c888174.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local cts=c888174.burn_cts[tp+1]
local e1=Effect.CreateEffect(c) table.insert(cts,4)
e1:SetLabel(0)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN,4)
e1:SetCode(EFFECT_FLAG_EFFECT+888174)
Duel.RegisterEffect(e1,tp)
DOT.DotCounter.Add(nil,1-tp,0,1000,4000,e) DOT.DotCounter.Add(nil,1-tp,0,1000,4000,e)
end end
function c888174.damcon(e,tp,eg,ep,ev,re,r,rp) function c888174.damcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp and Duel.GetFlagEffect(tp,888174)>0 local cts=c888174.burn_cts[tp+1]
return Duel.GetTurnPlayer()~=tp and #cts>0
end end
function c888174.damop(e,tp,eg,ep,ev,re,r,rp) function c888174.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local ct=e:GetLabel() local cts=c888174.burn_cts[tp+1]
if(ct<4) then local new_cts={}
ct=ct+1 for _,ct in ipairs(cts) do
e:SetLabel(ct) ct=ct-1
c:SetTurnCounter(ct) Duel.Hint(HINT_CARD,0,888174)
local n=Duel.GetFlagEffect(tp,888174) Duel.Damage(1-tp,1000,REASON_EFFECT)
for i=1,n do if ct>0 then
Duel.Hint(HINT_CARD,0,888174) table.insert(new_cts,ct)
Duel.Damage(1-tp,1000,REASON_EFFECT)
DOT.DotCounter.Add(nil,1-tp,0,0,-1000,e) DOT.DotCounter.Add(nil,1-tp,0,0,-1000,e)
end else
if ct==4 then
DOT.DotCounter.Add(nil,1-tp,0,-1000,-1000,e) DOT.DotCounter.Add(nil,1-tp,0,-1000,-1000,e)
end end
end end
c888174.burn_cts[tp+1]=new_cts
end 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