Commit d9b173ee authored by Nemo Ma's avatar Nemo Ma

fix + list

parent b54e6998
......@@ -358,6 +358,10 @@
#210606
60000002 0
60000003 0 --啥时候这卡会卖萌了再放出来不迟。
31409108 1
31407011 0
31407002 0
31407003 0
#210530
33401674 0
60000101 0
......@@ -461,7 +465,6 @@
72100335 0
72100336 0
#210418
9300315 0
9300400 0
14010039 0
22070230 0
......
......@@ -32,7 +32,7 @@ function cm.tcfilter(c,race,att)
return c:IsType(TYPE_MONSTER) and bit.band(race,c:GetOriginalRace())==0 and bit.band(att,c:GetOriginalAttribute())==0
end
function cm.econ(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.ecfilter,tp,0,LOCATION_MZONE,1,nil,e:GetHandler():GetOriginalRace(),e:GetHandler():GetOriginalAttribute())
return Duel.IsExistingMatchingCard(cm.ecfilter,e:GetHandler():GetControler(),0,LOCATION_MZONE,1,nil,e:GetHandler():GetOriginalRace(),e:GetHandler():GetOriginalAttribute())
end
function cm.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
......
......@@ -69,7 +69,7 @@ function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainNegatable(ev)
end
function cm.cfilter(c)
return c:IsAbleToGraveAsCost() and not Duel.IsExistingMatchingCard(cm.wfilter,c:GetControler(),0,LOCATION_MZONE,1,nil,c:GetOriginalRace(),c:GetOriginalAttribute())
return c:IsAbleToGraveAsCost() and c:IsType(TYPE_MONSTER) and not Duel.IsExistingMatchingCard(cm.wfilter,c:GetControler(),0,LOCATION_MZONE,1,nil,c:GetOriginalRace(),c:GetOriginalAttribute())
end
function cm.wfilter(c,race,att)
return bit.band(race,c:GetOriginalRace())~=0 or bit.band(att,c:GetOriginalAttribute())~=0
......
......@@ -49,6 +49,7 @@ function cm.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.desfilter,tp,LOCATION_GRAVE,0,3,3,nil,e,tp)
g:KeepAlive()
e:SetLabelObject(g)
return true
end
......
......@@ -49,6 +49,7 @@ function cm.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.desfilter,tp,LOCATION_GRAVE,0,3,3,nil,e,tp)
g:KeepAlive()
e:SetLabelObject(g)
return true
end
......
--天使-绝灭天使 日轮
function c33400451.initial_effect(c)
c:SetUniqueOnField(1,0,c33400451.uqfilter,LOCATION_ONFIELD)
--Activate
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_ACTIVATE)
e10:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e10)
--destory
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
......
--天使-绝灭天使 天翼
function c33400452.initial_effect(c)
c:SetUniqueOnField(1,0,c33400452.uqfilter,LOCATION_ONFIELD)
--Activate
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_ACTIVATE)
e10:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e10)
--move
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33400452,0))
......
--天使-绝灭天使 光剑
function c33400453.initial_effect(c)
--Activate
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_ACTIVATE)
e10:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e10)
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33400453,0))
......
--天使-绝灭天使 炮冠
function c33400454.initial_effect(c)
--Activate
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_ACTIVATE)
e10:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e10)
--destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33400454,0))
......
......@@ -5,6 +5,11 @@ function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
cm.dfc_front_side=33400651
cm.dfc_back_side=33400652
--Activate
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_ACTIVATE)
e10:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e10)
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
......@@ -97,7 +102,7 @@ local c=e:GetHandler()
tc:RegisterEffect(e2)
Duel.RegisterFlagEffect(tp,m+80001,RESET_EVENT+RESET_PHASE+PHASE_END,0,0)
end
if op[op1]==2 then
if op[op1]==2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tdc=Duel.SelectMatchingCard(tp,cm.tdfilter,tp,LOCATION_REMOVED,0,4,4,nil)
Duel.SendtoDeck(tdc,tp,2,REASON_EFFECT)
......@@ -119,7 +124,7 @@ Duel.RegisterFlagEffect(tp,m+80001,RESET_EVENT+RESET_PHASE+PHASE_END,0,0)
tc:RegisterEffect(e2)
Duel.RegisterFlagEffect(tp,m+80002,RESET_EVENT+RESET_PHASE+PHASE_END,0,0)
end
if op[op1]==3 then
if op[op1]==3 then
c:SetEntityCode(33400651,true)
c:ReplaceEffect(33400651,0,0)
Duel.RegisterFlagEffect(tp,m+80003,RESET_EVENT+RESET_PHASE+PHASE_END,0,0)
......
......@@ -3,6 +3,11 @@ local m=33401051
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetUniqueOnField(1,0,m)
--Activate
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_ACTIVATE)
e10:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e10)
--destroy
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
......@@ -58,9 +63,9 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local dm1=Duel.Destroy(tg1,REASON_EFFECT)
if dm1~=0 then
Duel.Damage(1-tp,500*dm1,REASON_EFFECT)
Duel.Damage(tp,500*dm1,REASON_EFFECT)
Duel.Damage(tp,500*dm1,REASON_EFFECT)
end
if Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_FZONE,0,1,nil) then
if Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_FZONE,0,1,nil) then
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
local seq=tc:GetSequence()
local dg=Duel.GetMatchingGroup(cm.desfilter2,tp,0,LOCATION_ONFIELD,nil,seq,tp)
......
......@@ -44,6 +44,8 @@ function cm.initial_effect(c)
e5:SetOperation(cm.ctop)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetCode(EVENT_FREE_CHAIN)
e6:SetCondition(cm.con2)
c:RegisterEffect(e6)
end
......
......@@ -95,16 +95,18 @@ function c79029517.cscon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSequence()>4
end
function c79029517.csval1(e,c)
if c:GetLeftScale()-Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)<0 then return 0
if c:GetLeftScale()-Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)<0 then
return 1-c:GetRightScale()
else
return -Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)
end
return -Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)
end
end
function c79029517.csval2(e,c)
if c:GetRightScale()+Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)>13 then return 13-c:GetRightScale()
if c:GetRightScale()+Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)>13 then
return 13-c:GetRightScale()
else
return Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)
end
return Duel.GetMatchingGroupCount(Card.IsFaceup,tp,LOCATION_EXTRA,0,nil)
end
end
function c79029517.cstg1(e,c)
return c:GetSequence()==0
......
......@@ -92,8 +92,14 @@ function cm.overlaycon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.overlayop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local g=Duel.SelectMatchingCard(1-tp,nil,1-tp,0x0e,0,1,1,e:GetHandler())
if g:GetCount()>0 then
local g=Duel.SelectMatchingCard(1-tp,nil,1-tp,0x0e,0,1,1,e:GetHandler())
local tc=g:GetFirst()
if tc then
local og=tc:GetOverlayGroup()
if #og>0 then
Duel.SendtoGrave(og,REASON_RULE)
end
tc:CancelToGrave()
Duel.Overlay(e:GetHandler(),g)
end
end
......
--深土之物 人身单调鸥
function c9310011.initial_effect(c)
c:EnableReviveLimit()
--ritual summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,9310011)
e1:SetCondition(c9310011.spcon1)
e1:SetCost(c9310011.rscost)
e1:SetTarget(c9310011.tg)
e1:SetOperation(c9310011.op)
c:RegisterEffect(e1)
local e11=e1:Clone()
e11:SetType(EFFECT_TYPE_QUICK_O)
e11:SetCode(EVENT_FREE_CHAIN)
e11:SetHintTiming(0,TIMING_END_PHASE)
e11:SetCondition(c9310011.spcon2)
c:RegisterEffect(e11)
--flip
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_FLIP)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetOperation(c9310011.flipop)
c:RegisterEffect(e2)
--indes
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(c9310011.indcon)
e3:SetValue(1)
c:RegisterEffect(e3)
--nontuner
local e4=e3:Clone()
e4:SetCode(EFFECT_NONTUNER)
c:RegisterEffect(e4)
--to change pos
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TOHAND)
e5:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_FIELD)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetRange(LOCATION_GRAVE)
e5:SetCountLimit(1,9311011)
e5:SetCondition(c9310011.spcon1)
e5:SetCost(c9310011.thcost)
e5:SetTarget(c9310011.target)
e5:SetOperation(c9310011.operation)
c:RegisterEffect(e5)
local e51=e5:Clone()
e51:SetType(EFFECT_TYPE_QUICK_O)
e51:SetCode(EVENT_FREE_CHAIN)
e51:SetHintTiming(0,TIMING_END_PHASE)
e51:SetCondition(c9310011.spcon2)
c:RegisterEffect(e51)
end
function c9310011.spcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,30013020)
end
function c9310011.spcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,30013020)
end
function c9310011.rscost(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)
end
function c9310011.matfilter(c,e,tp,chk)
return c:IsCanBeRitualMaterial(nil) and (not chk or c~=e:GetHandler())
end
function c9310011.RitualUltimateFilter(c,filter,e,tp,m1,m2,level_function,greater_or_equal,chk)
if bit.band(c:GetType(),0x81)~=0x81 or (filter and not filter(c,e,tp,chk))
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true,POS_DEFENSE) then return false end
local mg=m1:Filter(c9310011.matfilter,c,c)
if m2 then
mg:Merge(m2)
end
if c.mat_filter then
mg=mg:Filter(c.mat_filter,c,tp)
else
mg:RemoveCard(c)
end
local lv=level_function(c)
aux.GCheckAdditional=aux.RitualCheckAdditional(c,lv,greater_or_equal)
local res=mg:CheckSubGroup(aux.RitualCheck,1,lv,tp,c,lv,greater_or_equal)
aux.GCheckAdditional=nil
return res
end
function c9310011.rfilter(c,e,tp)
return c:IsDefenseAbove(2200) and c:GetDefense()>=c:GetAttack()
end
function c9310011.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg1=Duel.GetRitualMaterial(tp)
return Duel.IsExistingMatchingCard(c9310011.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,c9310011.rfilter,e,tp,mg1,nil,Card.GetLevel,"Greater")
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE)
end
function c9310011.op(e,tp,eg,ep,ev,re,r,rp)
local mg1=Duel.GetRitualMaterial(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c9310011.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,c9310011.rfilter,e,tp,mg1,nil,Card.GetLevel,"Greater")
local tc=g:GetFirst()
if tc then
local mg=mg1:Filter(Card.IsCanBeRitualMaterial,tc,tc)
if tc.mat_filter then
mg=mg:Filter(tc.mat_filter,tc,tp)
else
mg:RemoveCard(tc)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
aux.GCheckAdditional=aux.RitualCheckAdditional(tc,tc:GetLevel(),"Greater")
local mat=mg:SelectSubGroup(tp,aux.RitualCheck,false,1,tc:GetLevel(),tp,tc,tc:GetLevel(),"Greater")
aux.GCheckAdditional=nil
if not mat or mat:GetCount()==0 then return end
tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect()
local spos=0
if tc:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true,POS_FACEUP_DEFENSE) then spos=spos+POS_FACEUP_DEFENSE end
if tc:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true,POS_FACEDOWN_DEFENSE) then spos=spos+POS_FACEDOWN_DEFENSE end
if spos~=0 then
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,spos)
if tc:IsFacedown() then
Duel.ConfirmCards(1-tp,tc)
end
tc:CompleteProcedure()
end
end
end
function c9310011.flipop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(9310011,RESET_EVENT+RESETS_STANDARD,0,1)
end
function c9310011.indcon(e)
local c=e:GetHandler()
return (c:GetFlagEffect(9310011)~=0 or c:IsSummonType(SUMMON_TYPE_RITUAL)) and c:IsDefensePos()
end
function c9310011.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function c9310011.target(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
if chk==0 then return g:GetCount()>0 end
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,1,0,0)
end
function c9310011.filter(c)
return (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup()) and c:IsSetCard(0x92c,0x3f91) and c:IsAbleToHand()
end
function c9310011.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
sg=g:Select(tp,1,1,nil)
tc=sg:GetFirst()
if tc:IsDefensePos() and tc:IsCanChangePosition() then
if tc:IsCanTurnSet() and tc:IsFaceup() then
Duel.ChangePosition(tc,POS_FACEDOWN_DEFENSE)
elseif tc:IsFacedown() then
Duel.ChangePosition(tc,POS_FACEUP_DEFENSE) end
end
if tc:IsAttackPos() and tc:IsCanChangePosition() then
if tc:IsCanTurnSet() then
Duel.ChangePosition(tc,Duel.SelectPosition(tp,tc,POS_FACEDOWN_DEFENSE+POS_FACEUP_DEFENSE))
else
Duel.ChangePosition(tc,POS_FACEUP_DEFENSE) end
end
local kg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c9310011.filter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil)
if kg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(9310011,0)) then
Duel.BreakEffect()
Duel.SendtoHand(kg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,kg)
end
end
end
......@@ -624,13 +624,14 @@
!setname 0xac9 青空下
#其空葵 其空あおい 290 0x7a0-0x7af
!setname 0x87af 方舟之骑士
!setname 0x87ad 战械人形
!setname 0x87ac 钢铁方舟
!setname 0x87aa 灵知隐者
!setname 0x87af 方舟之骑士(方舟の騎士/アーク·ナイト)
!setname 0x87ad 战械人形(戦械人形/ワレアポン·ドール)
!setname 0x87ac 钢铁方舟(鋼鉄方舟/メタルアーク)
!setname 0x87aa 灵知隐者GE/グラスエリマイト)
!counter 0x11ae COST指示物
!counter 0x11af 鸽指示物
!setname 0x7ab 零械
!setname 0x7ad 战械(ワレアポン)
!setname 0x87a1 光明圣殿团(ライト·テンプルナイツ)
#空想上の人格保持者
!setname 0xfec1 幼龙
......@@ -697,6 +698,9 @@
!counter 0x1f35 龙鳞指示物
!setname 0x5f3c Divicale(神之鳞)
!counter 0xf3 陨星指示物
!setname 0x6311 异界兽
!setname 0x9311 死棱黑镜
!setname 0x7cc 刹那芳华
#竹子
!setname 0x6b02 空中连接
......
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