Commit 2eef9c54 authored by 未闻皂名's avatar 未闻皂名

2026/2/1 新增:冥迹和要塞鲸新卡

parent 89a286b0
Pipeline #42781 passed with stages
in 7 minutes and 31 seconds
No preview for this file type
...@@ -127,10 +127,14 @@ end ...@@ -127,10 +127,14 @@ end
-- 仪式召唤 - 仪式召唤的怪兽过滤 -- 仪式召唤 - 仪式召唤的怪兽过滤
function RushDuel.RitualSpecialSummonFilter(c, e, tp, type, mat, f, gc, chkf, filter) function RushDuel.RitualSpecialSummonFilter(c, e, tp, type, mat, f, gc, chkf, filter)
RushDuel.CurrentRitualEffect = e RushDuel.CurrentRitualEffect = e
local res = c:GetType() & 0x81 == 0x81 and (not filter or filter(c, e, tp, mat, f, chkf)) and (not f or f(c)) local mg = mat
if RushDuel.RitualExtraMaterialFilter then
mg = mg:Filter(RushDuel.RitualExtraMaterialFilter, nil, e, tp, c, mg)
end
local res = c:GetType() & 0x81 == 0x81 and (not filter or filter(c, e, tp, mg, f, chkf)) and (not f or f(c))
and RushDuel.GetRitualTypeValue(c, type) > 0 and RushDuel.GetRitualTypeValue(c, type) > 0
and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_RITUAL, tp, false, false) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_RITUAL, tp, false, false)
and RushDuel.CheckRitualMaterial(tp, c, type, mat, gc) and RushDuel.CheckRitualMaterial(tp, c, type, mg, gc)
RushDuel.CurrentRitualEffect = nil RushDuel.CurrentRitualEffect = nil
return res return res
end end
...@@ -224,9 +228,6 @@ function RushDuel.GetRitualSummonData(e, tp, type, matfilter, spfilter, exfilter ...@@ -224,9 +228,6 @@ function RushDuel.GetRitualSummonData(e, tp, type, matfilter, spfilter, exfilter
if including_self then if including_self then
gc = e:GetHandler() gc = e:GetHandler()
end end
if RushDuel.RitualExtraMaterialFilter then
mg = mg:Filter(RushDuel.RitualExtraMaterialFilter, nil, e, tp, mg)
end
local sg = Duel.GetMatchingGroup(RushDuel.RitualSpecialSummonFilter, tp, LOCATION_EXTRA, 0, nil, e, tp, type, mg, nil, gc, chkf, spfilter) local sg = Duel.GetMatchingGroup(RushDuel.RitualSpecialSummonFilter, tp, LOCATION_EXTRA, 0, nil, e, tp, type, mg, nil, gc, chkf, spfilter)
local list = {} local list = {}
local ritualable = false local ritualable = false
...@@ -238,9 +239,6 @@ function RushDuel.GetRitualSummonData(e, tp, type, matfilter, spfilter, exfilter ...@@ -238,9 +239,6 @@ function RushDuel.GetRitualSummonData(e, tp, type, matfilter, spfilter, exfilter
for _, effect in ipairs(effects) do for _, effect in ipairs(effects) do
local target = effect:GetTarget() local target = effect:GetTarget()
local mg2 = target(effect, e, tp, mg) local mg2 = target(effect, e, tp, mg)
if RushDuel.RitualExtraMaterialFilter then
mg2 = mg2:Filter(RushDuel.RitualExtraMaterialFilter, nil, e, tp, mg2)
end
if #mg2 > 0 then if #mg2 > 0 then
local mf = effect:GetValue() local mf = effect:GetValue()
local sg2 = Duel.GetMatchingGroup(RushDuel.RitualSpecialSummonFilter, tp, LOCATION_EXTRA, 0, nil, e, tp, type, mg2, mf, gc, chkf, spfilter) local sg2 = Duel.GetMatchingGroup(RushDuel.RitualSpecialSummonFilter, tp, LOCATION_EXTRA, 0, nil, e, tp, type, mg2, mf, gc, chkf, spfilter)
......
local cm,m=GetID()
cm.name="赛博海豚"
function cm.initial_effect(c)
RD.AddRitualProcedure(c)
--To Hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--To Hand
function cm.confilter(c)
return c:IsFaceup() and c:IsType(TYPE_RITUAL) and c:IsLevelBelow(7)
and c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_FISH)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.confilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsAbleToHand,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_RTOHAND,Card.IsAbleToHand,tp,0,LOCATION_ONFIELD,1,1,nil,function(g)
RD.SendToHandAndExists(g,e,tp,REASON_EFFECT)
end)
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_FISH,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
\ No newline at end of file
local cm,m=GetID()
local list={120300041}
cm.name="赛博奈耳鱼"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Atk Up
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target1)
e1:SetValue(cm.atkval)
c:RegisterEffect(e1)
--Direct Attack
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_DIRECT_ATTACK)
e2:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(cm.target2)
c:RegisterEffect(e2)
--Continuous Effect
RD.AddContinuousEffect(c,e1,e2)
end
--Atk Up
function cm.condition(e)
local ph=Duel.GetCurrentPhase()
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function cm.target1(e,c)
return c:IsFaceup() and c:IsRace(RACE_FISH)
end
function cm.atkval(e)
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)*500
end
--Direct Attack
function cm.target2(e,c)
return c:IsFaceup() and c:IsCode(list[1])
end
\ No newline at end of file
local cm,m=GetID()
cm.name="神殿林克鱼"
function cm.initial_effect(c)
--Discard Deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DECKDES)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(RD.ConditionSummonTurn)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Discard Deck
function cm.setfilter(c)
return c:IsType(TYPE_RITUAL) and c:IsType(TYPE_SPELL) and c:IsSSetable()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,2) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.DiscardDeck(tp,2,REASON_EFFECT)~=0 then
RD.CanSelectAndSet(aux.Stringid(m,1),aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,true)
end
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,2),RACE_ALL-RACE_FISH,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
\ No newline at end of file
local cm,m=GetID()
cm.name="要塞鲸"
function cm.initial_effect(c)
RD.AddRitualProcedure(c)
end
\ No newline at end of file
local cm,m=GetID()
local list={120300008,120300046,120300047,120300048,120300061}
cm.name="冥迹祭的准备"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.filter(c)
return c:IsCode(list[1],list[2],list[3],list[4],list[5]) and c:IsAbleToHand()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>3 end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<4 then return end
local sg,g=RD.RevealDeckTopAndCanSelect(tp,4,aux.Stringid(m,1),HINTMSG_ATOHAND,cm.filter,1,1)
if sg:GetCount()>0 then
Duel.DisableShuffleCheck()
RD.SendToHandAndExists(sg,e,tp,REASON_EFFECT)
Duel.ShuffleHand(tp)
end
local ct=g:GetCount()
if ct>0 then
Duel.SortDecktop(tp,tp,ct)
RD.SendDeckTopToBottom(tp,ct)
end
end
\ No newline at end of file
...@@ -8,13 +8,15 @@ function cm.initial_effect(c) ...@@ -8,13 +8,15 @@ function cm.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function cm.ritual_mat_filter(c,e,tp,rc,mg)
return not c:IsCode(rc)
end
--Activate --Activate
function cm.matfilter(c) function cm.matfilter(c)
return c:IsFaceup() and c:IsOnField() and c:IsRace(RACE_GALAXY) and c:IsAbleToDeck() return c:IsFaceup() and c:IsOnField() and c:IsRace(RACE_GALAXY) and c:IsAbleToDeck()
end end
function cm.spfilter(c,e,tp,mat) function cm.spfilter(c,e,tp,mat)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY) return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY)
and not mat:IsExists(Card.IsCode,1,nil,c:GetCode())
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp,mat,rc) function cm.operation(e,tp,eg,ep,ev,re,r,rp,mat,rc)
RD.CanDiscardDeck(aux.Stringid(m,1),tp,1,mat:GetCount(),true,1-tp) RD.CanDiscardDeck(aux.Stringid(m,1),tp,1,mat:GetCount(),true,1-tp)
......
local cm,m=GetID()
local list={120300041}
cm.name="要塞鲸的誓言"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Activate
local e1=RD.CreateRitualEffect(c,RITUAL_ORIGINAL_LEVEL_GREATER,nil,cm.spfilter)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
end
--Activate
function cm.spfilter(c)
return c:IsCode(list[1])
end
\ No newline at end of file
local cm,m=GetID()
cm.name="冥迹的记录"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCondition(cm.condition)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.confilter(c)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
end
function cm.spfilter(c,e,tp)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP_DEFENSE)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsControler(1-tp)
and Duel.IsExistingMatchingCard(cm.confilter,tp,LOCATION_GRAVE,0,1,nil)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateAttack() then
RD.CanSelectAndSpecialSummon(aux.Stringid(m,1),aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP_DEFENSE,true)
end
end
\ No newline at end of file
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