Commit e957dbcc authored by 聖園ミカ's avatar 聖園ミカ 🐟

byd

parent 6675ee21
Pipeline #30101 passed with stage
in 45 minutes and 24 seconds
No preview for this file type
......@@ -1969,7 +1969,6 @@
98628111 0 --连锁奔袭士
98628112 0 --时秒观测者
98628114 0 --超级沼气前辈 野兽形态
98628118 0 --究极魔导之页
98630701 1 --萝莉控诱捕器
98639500 0 --被打扰的冬眠
98657312 1 --库拉丽丝-心配
......
--自行铳Ⅲ型
local m=98628103
local cm=_G["c"..m]
Duel.LoadScript("c98628199.lua")
function cm.initial_effect(c)
KanKan.FusionMoreMore1(c,cm.FSFilter1,cm.FSFilter2,cm.FSFilter3,cm.FSFilter4,1,4,1,1)
c:EnableReviveLimit()
--spsummon condition
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(aux.fuslimit)
c:RegisterEffect(e0)
--Negate
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_NEGATE)
e3:SetType(EFFECT_TYPE_QUICK_F)
e3:SetCode(EVENT_CHAINING)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.codisable)
e3:SetTarget(cm.tgdisable)
e3:SetOperation(cm.opdisable)
c:RegisterEffect(e3)
end
function cm.FSFilter1(c)
return c:IsFusionType(TYPE_FUSION) and c:IsRace(RACE_MACHINE)
end
function cm.FSFilter2(c)
return c:IsRace(RACE_MACHINE)
end
function cm.FSFilter3(c)
return c:IsRace(RACE_PSYCHO)
end
function cm.FSFilter4(c)
return c:IsFusionAttribute(RACE_PSYCHO)
end
function cm.codisable(e,tp,eg,ep,ev,re,r,rp)
return re:GetHandler():IsLocation(LOCATION_HAND)
or (re:GetHandler():IsPreviousLocation(LOCATION_HAND) and not re:GetHandler():IsLocation(LOCATION_ONFIELD))
and not re:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function cm.tgdisable(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function cm.opdisable(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() or c:GetAttack()<1000 or not c:IsRelateToEffect(e)
or Duel.GetCurrentChain()~=ev+1 or c:IsStatus(STATUS_BATTLE_DESTROYED) then
return
end
if c:GetAttack()>=6000 then
Duel.Destroy(c,REASON_EFFECT)
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(-1000)
c:RegisterEffect(e1)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
--究极魔导之页
local m=98628118
local cm=_G["c"..m]
function cm.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.spcon)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
Duel.AddCustomActivityCounter(m,ACTIVITY_CHAIN,cm.chainfilter)
end
function cm.chainfilter(re,tp,cid)
return not re:IsActiveType(TYPE_SPELL)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCustomActivityCount(m,1-tp,ACTIVITY_CHAIN)>=10
end
function cm.relfilter(c)
return c:IsAbleToRemove() and c:IsType(TYPE_SPELL)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.relfilter,tp,LOCATION_GRAVE+LOCATION_ONFIELD,LOCATION_GRAVE+LOCATION_ONFIELD,nil)
if chk==0 then return g:GetCount()>0 and Duel.GetMZoneCount(tp,g)>0 and Duel.GetMZoneCount(1-tp,g,tp)>0
and Duel.IsPlayerCanRelease(tp)
and Duel.IsPlayerCanSpecialSummonCount(tp,2)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsPlayerCanSpecialSummonMonster(tp,98628119,0,TYPES_TOKEN_MONSTER,5000,5000,13,RACE_ROCK,ATTRIBUTE_WIND,POS_FACEUP_ATTACK,1-tp) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),2,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.relfilter,tp,LOCATION_GRAVE+LOCATION_ONFIELD,LOCATION_GRAVE+LOCATION_ONFIELD,nil)
local c=e:GetHandler()
if g:GetCount()>0 and Duel.Remove(g,POS_FACEUP,REASON_EFFECT)~=0 then
local rg=Duel.GetOperatedGroup()
if #rg>0 then
local c=e:GetHandler()
local rc=rg:GetFirst()
while rc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(1,1)
e1:SetLabelObject(rc)
e1:SetValue(cm.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
rc=rg:GetNext()
end
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_SET_ATTACK)
e4:SetReset(RESET_EVENT+0xff0000)
e4:SetValue(g:GetCount()*500)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_SET_DEFENSE)
c:RegisterEffect(e5)
local og=Duel.GetOperatedGroup()
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0 then
if og:GetCount()==0 then return end
if Duel.GetLocationCount(1-tp,LOCATION_MZONE,tp)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,98628119,0,TYPES_TOKEN_MONSTER,5000,5000,13,RACE_ROCK,ATTRIBUTE_WIND,POS_FACEUP_ATTACK,1-tp) then
local token=Duel.CreateToken(tp,98628119)
Duel.SpecialSummonStep(token,0,tp,1-tp,false,false,POS_FACEUP_ATTACK)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_SINGLE)
e11:SetCode(EFFECT_CHANGE_TYPE)
e11:SetValue(TYPE_EFFECT+TYPE_MONSTER+TYPE_TOKEN)
e11:SetReset(RESET_EVENT+RESETS_STANDARD)
token:RegisterEffect(e11,true)
--cannot be target
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e6:SetRange(LOCATION_MZONE)
e6:SetValue(aux.imval1)
token:RegisterEffect(e6)
local e7=e6:Clone()
e7:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e7:SetValue(aux.tgoval)
token:RegisterEffect(e7)
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e8:SetRange(LOCATION_MZONE)
e8:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e8:SetValue(1)
token:RegisterEffect(e8)
Duel.SpecialSummonComplete()
end
end
end
end
end
function cm.aclimit(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return re:GetHandler():IsOriginalCodeRule(tc:GetOriginalCodeRule()) and re:GetHandler():IsType(TYPE_SPELL)
end
--居合
local m=98628120
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DRAW_PHASE+TIMING_STANDBY_PHASE+TIMING_MAIN_END+TIMING_BATTLE_START+TIMING_DAMAGE_STEP+TIMING_DAMAGE_CAL+TIMING_BATTLE_END,TIMING_DRAW_PHASE+TIMING_STANDBY_PHASE+TIMING_MAIN_END+TIMING_BATTLE_START+TIMING_DAMAGE_STEP+TIMING_DAMAGE_CAL+TIMING_BATTLE_END)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local event=Duel.GetCurrentPhase()
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetCountLimit(1)
e1:SetLabel(event)
e1:SetCondition(cm.negcon)
e1:SetOperation(cm.negop)
Duel.RegisterEffect(e1,tp)
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and Duel.GetCurrentPhase()~=e:GetLabel()
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local rc=re:GetHandler()
if Duel.NegateEffect(ev,true) and rc:IsRelateToEffect(re) then
local c=e:GetHandler()
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CHANGE_DAMAGE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,0)
e3:SetValue(0)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
local e4=e3:Clone()
e4:SetCode(EFFECT_NO_EFFECT_DAMAGE)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
end
--兽神之威吓
local m=98628124
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(100)
if chk==0 then return true end
end
function cm.filter(c)
return c:IsType(TYPE_MONSTER) and c:IsReleasable()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()~=100 then return false end
e:SetLabel(0)
return e:IsHasType(EFFECT_TYPE_ACTIVATE) and Duel.CheckReleaseGroupEx(tp,cm.filter,1,REASON_COST,true,nil)
end
local g=Duel.SelectReleaseGroupEx(tp,cm.filter,1,99,REASON_COST,true,nil)
local atk=g:GetSum(Card.GetAttack)
Duel.Release(g,REASON_COST)
e:SetLabel(0,atk)
end
function cm.atkfilter(c,atk)
return c:IsAttackBelow(atk/2)
end
function cm.seqfilter(c,seq)
return c:GetSequence()==seq
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local lab,atk=e:GetLabel()
local g=Duel.GetMatchingGroup(cm.atkfilter,tp,0,LOCATION_MZONE,nil,atk)
local tc=g:GetFirst()
while tc do
if tc:GetSequence()>4 then
Duel.MoveToField(tc,1-tp,1-tp,LOCATION_SZONE,POS_FACEUP,true)
--Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetCode(EFFECT_CHANGE_TYPE)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e2:SetValue(TYPE_SPELL+TYPE_FIELD)
tc:RegisterEffect(e2)
Duel.MoveSequence(tc,5)
end
if tc:GetSequence()<5 then
local zone=1<<tc:GetSequence()
local oc=Duel.GetMatchingGroup(cm.seqfilter,tp,0,LOCATION_SZONE,nil,tc:GetSequence()):GetFirst()
if oc then
Duel.Destroy(oc,REASON_RULE)
end
if Duel.MoveToField(tc,1-tp,1-tp,LOCATION_SZONE,POS_FACEUP,true,zone) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_TRAP+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
end
end
tc=g:GetNext()
end
end
function cm.damcon1(e)
local tp=e:GetHandlerPlayer()
return Duel.GetLP(tp)<Duel.GetLP(1-tp)
end
function cm.damcon2(e)
local tp=e:GetHandlerPlayer()
return Duel.GetLP(1-tp)<Duel.GetLP(tp)
end
--神秘的璀璨紫水晶
local m=98628126
local cm=_G["c"..m]
function cm.initial_effect(c)
--activate`
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_END
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
local lpi=Duel.GetLP(tp)
local lpy=Duel.GetLP(1-tp)
e:SetLabel(lpi,lpy)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local lpi,lpy=e:GetLabel()
--recover
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCondition(cm.lpcon)
e1:SetOperation(cm.lpop1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.lpcon1)
e2:SetOperation(cm.lpop1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCondition(cm.regcon)
e3:SetOperation(cm.regop)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e4:SetCode(EVENT_CHAIN_SOLVED)
e4:SetCondition(cm.lpcon2)
e4:SetOperation(cm.lpop2)
e4:SetLabelObject(e3)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
c:RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_PHASE+PHASE_END)
e0:SetCountLimit(1)
e0:SetLabelObject(c)
e0:SetLabel(lpi,lpy)
e0:SetCondition(cm.lpscon)
e0:SetOperation(cm.lpsop)
e0:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e0,tp)
end
function cm.cfilter(c)
return c:IsFaceup()
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil)
end
function cm.lpcon1(e,tp,eg,ep,ev,re,r,rp)
return cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
and (not re:IsHasType(EFFECT_TYPE_ACTIONS) or re:IsHasType(EFFECT_TYPE_CONTINUOUS))
end
function cm.lpop1(e,tp,eg,ep,ev,re,r,rp)
local lg=eg:Filter(cm.cfilter,nil)
local rnum=lg:GetCount()
Duel.SetLP(tp,Duel.GetLP(tp)+rnum*1000)
Duel.SetLP(1-tp,Duel.GetLP(1-tp)+rnum*1000)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
and re:IsHasType(EFFECT_TYPE_ACTIONS) and not re:IsHasType(EFFECT_TYPE_CONTINUOUS)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local lg=eg:Filter(cm.cfilter,nil)
local g=e:GetLabelObject()
if g==nil or #g==0 then
lg:KeepAlive()
e:SetLabelObject(lg)
else
g:Merge(lg)
end
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
end
function cm.lpcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)>0
end
function cm.lpop2(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():ResetFlagEffect(m)
local lg=e:GetLabelObject():GetLabelObject()
local rnum=lg:GetCount()
local g=Group.CreateGroup()
g:KeepAlive()
e:GetLabelObject():SetLabelObject(g)
lg:DeleteGroup()
Duel.SetLP(tp,Duel.GetLP(tp)+rnum*1000)
Duel.SetLP(1-tp,Duel.GetLP(1-tp)+rnum*1000)
end
function cm.lpscon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject()
if c:GetFlagEffect(m+1)~=0 then
return true
else
e:Reset()
return false
end
end
function cm.lpsop(e,tp,eg,ep,ev,re,r,rp)
local lpi,lpy=e:GetLabel()
Duel.SetLP(tp,lpi)
Duel.SetLP(1-tp,lpy)
end
--闪烁至极的紫水晶
local m=98628127
local cm=_G["c"..m]
function cm.initial_effect(c)
--activate`
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_END
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
local lpi=Duel.GetLP(tp)
local lpy=Duel.GetLP(1-tp)
e:SetLabel(lpi,lpy)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local lpi,lpy=e:GetLabel()
--recover
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCondition(cm.lpcon)
e1:SetOperation(cm.lpop1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.lpcon1)
e2:SetOperation(cm.lpop1)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCondition(cm.regcon)
e3:SetOperation(cm.regop)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e4:SetCode(EVENT_CHAIN_SOLVED)
e4:SetCondition(cm.lpcon2)
e4:SetOperation(cm.lpop2)
e4:SetLabelObject(e3)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
c:RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_PHASE+PHASE_END)
e0:SetCountLimit(1)
e0:SetLabelObject(c)
e0:SetLabel(lpi,lpy)
e0:SetCondition(cm.lpscon)
e0:SetOperation(cm.lpsop)
e0:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e0,tp)
end
function cm.cfilter(c)
return c:IsFaceup()
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil)
end
function cm.lpcon1(e,tp,eg,ep,ev,re,r,rp)
return cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
and (not re:IsHasType(EFFECT_TYPE_ACTIONS) or re:IsHasType(EFFECT_TYPE_CONTINUOUS))
end
function cm.lpop1(e,tp,eg,ep,ev,re,r,rp)
local lg=eg:Filter(cm.cfilter,nil)
local rnum=lg:GetCount()
Duel.SetLP(tp,Duel.GetLP(tp)-rnum*5)
Duel.SetLP(1-tp,Duel.GetLP(1-tp)-rnum*5)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
and re:IsHasType(EFFECT_TYPE_ACTIONS) and not re:IsHasType(EFFECT_TYPE_CONTINUOUS)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local lg=eg:Filter(cm.cfilter,nil)
local g=e:GetLabelObject()
if g==nil or #g==0 then
lg:KeepAlive()
e:SetLabelObject(lg)
else
g:Merge(lg)
end
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
end
function cm.lpcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(m)>0
end
function cm.lpop2(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():ResetFlagEffect(m)
local lg=e:GetLabelObject():GetLabelObject()
local rnum=lg:GetCount()
local g=Group.CreateGroup()
g:KeepAlive()
e:GetLabelObject():SetLabelObject(g)
lg:DeleteGroup()
Duel.SetLP(tp,Duel.GetLP(tp)-rnum*5)
Duel.SetLP(1-tp,Duel.GetLP(1-tp)-rnum*5)
end
function cm.lpscon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject()
if c:GetFlagEffect(m+1)~=0 then
return true
else
e:Reset()
return false
end
end
function cm.lpsop(e,tp,eg,ep,ev,re,r,rp)
local lpi,lpy=e:GetLabel()
Duel.SetLP(tp,lpi)
Duel.SetLP(1-tp,lpy)
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