Commit d07dbb50 authored by REIKAI's avatar REIKAI 💬

bug fix and list update

parent 943991a8
Pipeline #21072 passed with stages
in 24 minutes and 43 seconds
No preview for this file type
......@@ -282,8 +282,8 @@
12004002 1 --原罪机械 Envy 普灵思
12004025 1 --智慧之泉 拉结尔
12005001 0 --真神的末裔 丘依儿
12000512 0 --六曜的牙月丘依儿
12000513 0 --六曜的心源丘依儿
12005012 0 --六曜的牙月丘依儿
12005013 0 --六曜的心源丘依儿
12005015 1 --新起的虹神 完红的丘依
12005018 2 --回奏的炎天使 丘依儿
12005020 0 --六曜 完红的斯卡雷特
......@@ -494,6 +494,9 @@
16102011 1 --SCP-2000 机械降神
16104230 0 --终末之歌
16104200 1 --天命教士
16104216 0 --天命王骑 教化王
16104224 0 --天命教令 异端剿灭
16104234 0 --天命教廷
16104240 0 --天命真王 梦想王
16104232 1 --天命圣女 让·达克
16104400 1 --天之界
......@@ -1794,8 +1797,10 @@
77707029 0 --円尾坂的裁缝店
77707037 0 --使之沉睡公主的贈品
77707048 1 --法庭之主
77707057 0 --大罪狩猎令
77707057 0 --大罪狩猎令
77707704 0 --大罪之器 克洛克沃克人偶
77707705 1 --Vessel of Sin 祸世之剪
77707706 0 --大罪之器 马隆汤匙
77709002 0 --Fallen Angel
77709005 1 --To Another Fate
77725304 1 --秘封活动记录 卯酉东海道
......@@ -1812,6 +1817,7 @@
81006090 1 --Remind a Locus
81008008 0 --啦啦队·露卡希娅
81009012 1 --猫咖 momoko
81009018 0 --空想再诞
81009028 0 --TwinBox学园 和泉香织
81010015 1 --真实的一瞬
81011001 0 --静谧青龙 拉斯托克
......@@ -1899,6 +1905,7 @@
98600004 1 --情书
98600005 0 --夜樱之宴
98610007 1 --少女分形·冻结之世
98622201 0 --
98625006 0 --十十六木花奏子·淑
98626800 0 --菲诺蒙丹帕·娜美塞拉
98626803 1 --失落的圣诞节
......
......@@ -5,16 +5,9 @@ function cm.initial_effect(c)
--link summon
c:EnableReviveLimit()
aux.AddLinkProcedure(c,cm.matfilter,1,1)
--cannot Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(cm.acon)
e1:SetOperation(cm.aop)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE)
......@@ -24,30 +17,35 @@ function cm.initial_effect(c)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
--remove
local e1=e2:Clone()
e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_REMOVE)
e1:SetTarget(cm.rmtg)
e1:SetOperation(cm.rmop)
c:RegisterEffect(e1)
end
function cm.matfilter(c)
return c:IsSetCard(0x480,0xb81) and not c:IsType(TYPE_LINK)
return c:IsLinkSetCard(0x480,0xb81) and not c:IsType(TYPE_LINK)
end
--SpecialSummon
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return Duel.GetTurnPlayer()==tp and c:IsSummonType(SUMMON_TYPE_LINK) and c:IsPreviousLocation(LOCATION_MZONE)
end
function cm.rfilter(c)
return c:IsSetCard(0x480,0xb81) and c:IsAbleToRemove()
return c:IsSummonType(SUMMON_TYPE_LINK) and c:IsPreviousLocation(LOCATION_MZONE)
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 e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsExistingMatchingCard(cm.rfilter,tp,LOCATION_DECK,0,1,nil) end
and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_HAND)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 and c:IsLocation(LOCATION_GRAVE) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.rfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.Remove(g,POS_FACEUP,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0 then
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND,0,1,1,nil)
if g:GetCount()>0 and Duel.Remove(g,POS_FACEUP,REASON_EFFECT)~=0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
......@@ -55,24 +53,37 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(LOCATION_REMOVED)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
c:RegisterEffect(e1,true)
local e2=e1:Clone()
e2:SetCode(EFFECT_ADD_SETCODE)
e2:SetValue(0x484)
c:RegisterEffect(e2,true)
end
end
--active limit
function cm.acon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.aop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetValue(cm.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e3:SetTargetRange(1,0)
e3:SetValue(cm.aclimit)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function cm.aclimit(e,re,tp)
local rc=re:GetHandler()
return re:IsActiveType(TYPE_MONSTER) and not rc:IsSetCard(0x480,0xb81,0x3b82)
return re:IsActiveType(TYPE_MONSTER) and not rc:IsSetCard(0x480,0x484)
end
--remove
function cm.rfilter(c)
return c:IsSetCard(0x3b82,0xb81) and c:IsAbleToRemove()
end
function cm.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.rfilter,tp,LOCATION_DECK,0,1,nil) and e:GetHandler():IsAbleToRemove() end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_DECK)
end
function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.rfilter,tp,LOCATION_DECK,0,1,1,nil)
if Duel.Remove(g,POS_FACEUP,REASON_EFFECT)>0 and e:GetHandler():IsRelateToEffect(e) then
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)
end
end
......@@ -14,6 +14,7 @@ function cm.initial_effect(c)
.e("SetCategory",CATEGORY_REMOVE+CATEGORY_DESTROY)
.e("SetType",EFFECT_TYPE_ACTIVATE)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetHintTiming",TIMING_ATTACK,0x11e0)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
if chk==0 then return
......@@ -67,6 +68,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -47,6 +47,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -14,6 +14,7 @@ function cm.initial_effect(c)
.e("SetCategory",CATEGORY_DRAW+CATEGORY_REMOVE)
.e("SetType",EFFECT_TYPE_ACTIVATE)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetProperty",EFFECT_FLAG_PLAYER_TARGET)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetDecktopGroup(tp,5)
if chk==0 then return g:FilterCount(Card.IsAbleToRemove,nil,POS_FACEDOWN)==5 and Duel.IsPlayerCanDraw(tp,1) end
......@@ -43,6 +44,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -62,6 +62,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -32,7 +32,7 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetTargetRange(1,1)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetValue(function(e,re,tp)
e2:SetValue(function(e,re,tp)
return re:GetActivateLocation()==LOCATION_REMOVED
end)
Duel.RegisterEffect(e2,tp)
......@@ -44,6 +44,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......@@ -76,7 +77,7 @@ function cm.initial_effect(c)
e:SetValue(ct+tg:GetCount())
Duel.Remove(tg,POS_FACEDOWN,REASON_EFFECT)
end
if e:GetValue()>=cmt then e:Reset() end
if e:GetValue()>=cmt then e:Reset() end
end)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
......
......@@ -34,7 +34,7 @@ function cm.initial_effect(c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tg=setg:Select(tp,1,(setg:GetCount()>sc and {sc} or {setg:GetCount()})[1],nil)
local sg=tg:Clone()
sg:KeepAlive()
sg:KeepAlive()
if Duel.SSet(tp,tg,tp,false)~=0 then
local c=e:GetHandler()
local fid=c:GetFieldID()
......@@ -74,6 +74,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......@@ -83,7 +84,7 @@ function cm.initial_effect(c)
local g=Duel.SelectTarget(tp,Card.IsAbleToGrave,tp,LOCATION_SZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,0,0) end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) and Duel.SendtoGrave(tc,REASON_EFFECT) and Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_REMOVED,0,1,nil) then
local tg = Duel.SelectMatchingCard(tp,cm.setfilter,tp,LOCATION_REMOVED,0,1,1,nil)
local lc = tg:GetFirst()
......
......@@ -38,7 +38,7 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_CANNOT_REMOVE)
e2:SetTarget(function(e,c) return c:IsLocation(LOCATION_GRAVE) end)
e2:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
Duel.RegisterEffect(e2,tp)
Duel.RegisterEffect(e2,tp)
local fid=c:GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid)
local e1=Effect.CreateEffect(c)
......@@ -74,6 +74,7 @@ function cm.initial_effect(c)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_GRAVE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetHintTiming",0,TIMINGS_CHECK_MONSTER)
.e("SetCost",aux.bfgcost)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......@@ -82,7 +83,7 @@ function cm.initial_effect(c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
local g=Duel.SelectTarget(tp,Card.IsFaceup,tp,0,LOCATION_MZONE,1,1,nil)
local atk = g:GetFirst():GetAttack()
local rt = (atk-atk%800)/800
local rt = (atk-atk%1000)/1000
rt = (rt>5 and {5} or {rt})[1]
if rt>0 then
Duel.SetOperationInfo(0,CATEGORY_REMOVE,(rt>=3 and {g}or{nil})[1],rt,1-tp,LOCATION_DECK)
......
......@@ -24,10 +24,10 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetCode(EFFECT_LIMIT_SPECIAL_SUMMON_POSITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
e1:SetTarget(function(e,c,tp,sumtp,sumpos)return (sumpos&POS_ATTACK)>0 end)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
......@@ -39,6 +39,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetLabelObject(e1)
Duel.RegisterEffect(e2,tp)
end
function cm.splimit(e,c,tp,sumtp,sumpos)
return (sumpos&POS_ATTACK)>0
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsPosition,1,nil,POS_DEFENSE)
end
......
......@@ -57,10 +57,10 @@ function cm.con(e,c,og,lmat,min,max)
if not Auxiliary.LConditionFilter(lmat,nil,c,e) then return false end
mg:AddCard(lmat)
end
local fg=Auxiliary.GetMustMaterialGroup(tp,EFFECT_MUST_BE_LMATERIAL)
local fg=Duel.GetMustMaterial(tp,EFFECT_MUST_BE_LMATERIAL)
if fg:IsExists(Auxiliary.MustMaterialCounterFilter,1,nil,mg) then return false end
Duel.SetSelectedCard(fg)
return mg:CheckSubGroup(Auxiliary.LCheckGoal,minc,maxc,tp,c,nil,lmat)
return mg:CheckSubGroup(Auxiliary.LCheckGoal,minc,maxc,tp,c,gf,lmat)
end
function cm.LinkTarget(e,tp,eg,ep,ev,re,r,rp,chk,c,og,lmat,min,max)
local minc=3
......@@ -80,7 +80,7 @@ function cm.LinkTarget(e,tp,eg,ep,ev,re,r,rp,chk,c,og,lmat,min,max)
if not Auxiliary.LConditionFilter(lmat,nil,c,e) then return false end
mg:AddCard(lmat)
end
local fg=Auxiliary.GetMustMaterialGroup(tp,EFFECT_MUST_BE_LMATERIAL)
local fg=Duel.GetMustMaterial(tp,EFFECT_MUST_BE_LMATERIAL)
Duel.SetSelectedCard(fg)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local cancel=Duel.IsSummonCancelable()
......
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