Commit b890a820 authored by 未闻皂名's avatar 未闻皂名

2024/12/29 新增:波纹防护罩 -波浪之力-,气球动物伙伴

parent 41867810
Pipeline #32170 passed with stages
in 11 minutes and 44 seconds
No preview for this file type
......@@ -25,10 +25,18 @@ EFFECT_MAXIMUM_MODE = 120272058 -- 通过效果变成极大模式 (时间机器)
EFFECT_CANNOT_TO_HAND_EFFECT = 120274001 -- 不会被效果回到手卡
EFFECT_CANNOT_TO_DECK_EFFECT = 120274002 -- 不会被效果回到卡组·额外卡组
-- 标记
FLAG_SUMMON_TURN = 120000011 -- 召唤·特殊召唤的回合被盖放, 不再符合召唤·特殊召唤的回合的条件
FLAG_ATTACK_ANNOUNCED = 120000012 -- 已经进行了攻击宣言, 不能向怪兽攻击的效果失效
FLAG_ATTACH_EFFECT = 120000013 -- 通过效果赋予的效果, 不能重复叠加
-- 提示信息
HINTMSG_MAXSUMMON = Auxiliary.Stringid(120000000, 0) -- 极大召唤
HINTMSG_MAXMATERIAL = Auxiliary.Stringid(120000000, 1) -- 请选择要极大召唤的怪兽(3只)
HINTMSG_RMATERIAL = HINTMSG_FMATERIAL -- 请选择要作为仪式素材的卡
HINTMSG_ANNOUNCE_MONSTER = Auxiliary.Stringid(120000001, 0) -- 宣言常规怪兽
HINTMSG_ANNOUNCE_LEGEND = Auxiliary.Stringid(120000001, 1) -- 宣言传说怪兽
-- 创建效果: 这张卡不能特殊召唤
function RushDuel.CannotSpecialSummon(card, range)
local e1 = Effect.CreateEffect(card)
......
......@@ -557,7 +557,7 @@ function RushDuel.AnnounceFusionMaterialCode(player, card)
type = 1
elseif #codes > 0 then
-- 选择宣言的种类
type = Duel.SelectOption(player, Auxiliary.Stringid(120000001, 0), Auxiliary.Stringid(120000001, 1)) + 1
type = Duel.SelectOption(player, HINTMSG_ANNOUNCE_MONSTER, HINTMSG_ANNOUNCE_LEGEND) + 1
end
if type == 1 then
-- 宣言常规怪兽
......
......@@ -44,7 +44,7 @@ function RushDuel.AddMaximumProcedure(card, max_atk, left_code, right_code)
mt.maximum_attack = max_atk
end
-- 极大召唤 手续
RushDuel.AddHandSpecialSummonProcedure(card, Auxiliary.Stringid(120000000, 0), RushDuel.MaximumSummonCondition(left_code, right_code), RushDuel.MaximumSummonTarget(left_code, right_code),
RushDuel.AddHandSpecialSummonProcedure(card, HINTMSG_MAXSUMMON, RushDuel.MaximumSummonCondition(left_code, right_code), RushDuel.MaximumSummonTarget(left_code, right_code),
RushDuel.MaximumSummonOperation(left_code, right_code), RushDuel.MaximumSummonValue, POS_FACEUP_ATTACK)
-- 极大攻击力
local e1 = Effect.CreateEffect(card)
......@@ -86,7 +86,7 @@ end
function RushDuel.MaximumSummonTarget(left_code, right_code)
return function(e, tp, eg, ep, ev, re, r, rp, chk, c, og, min, max)
local mg = Duel.GetMatchingGroup(RushDuel.MaximumSummonFilter, tp, LOCATION_HAND, 0, nil, e, tp, left_code, right_code)
Duel.Hint(HINT_SELECTMSG, tp, Auxiliary.Stringid(120000000, 1))
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_MAXMATERIAL)
local cancel = Duel.GetCurrentChain() == 0
local g = mg:SelectSubGroup(tp, RushDuel.MaximumSummonCheck, cancel, 2, 2)
if g then
......
......@@ -81,7 +81,7 @@ end
-- 仪式召唤 - 选择仪式素材
function RushDuel.SelectRitualMaterial(tp, rc, type, mat, gc)
local mg, max = RushDuel.GetRitualMaterial(tp, rc, type, mat)
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_FMATERIAL)
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_RMATERIAL)
Auxiliary.GCheckAdditional = RushDuel.RitualCheckAdditional(rc, type)
local sg = mg:SelectSubGroup(tp, RushDuel.RitualChecker, true, 1, max, rc, tp, type, gc)
Auxiliary.GCheckAdditional = nil
......
......@@ -28,7 +28,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,0,LOCATION_MZONE,1,1,nil,function(g)
RD.ChangeRace(e,g:GetFirst(),RACE_INSECT,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
if Duel.IsExistingMatchingCard(cm.exfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler()) then
RD.CanDraw(aux.Stringid(m,1),tp,1)
RD.CanDraw(aux.Stringid(m,2),tp,1)
end
end)
end
\ No newline at end of file
local m=120274084
local cm=_G["c"..m]
cm.name="波纹防护罩 -波浪之力-"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.filter(c)
return c:IsAttackPos() and c:IsAbleToDeck()
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsControler(1-tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,0,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(cm.filter,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.filter,tp,0,LOCATION_MZONE,nil)
if g:GetCount()>0 then
RD.SendToOpponentDeck(g)
end
end
\ No newline at end of file
local m=120277037
local cm=_G["c"..m]
cm.name="气球动物伙伴"
function cm.initial_effect(c)
--Special Summon Counter
Duel.AddCustomActivityCounter(m,ACTIVITY_SPSUMMON,aux.FALSE)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_SPECIAL_SUMMON)
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
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsLevelBelow(6) and Duel.GetMZoneCount(tp)>0 and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCustomActivityCount(m,tp,ACTIVITY_SPSUMMON)==0
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)
local sg,og=RD.SendDeckTopToGraveAndCanSelect(tp,2,aux.Stringid(m,1),HINTMSG_SPSUMMON,aux.NecroValleyFilter(cm.spfilter),1,1,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.BreakEffect()
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
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