Commit 97f71169 authored by 未闻皂名's avatar 未闻皂名

2023/10/17 新增:银龙的轰咆,三重解放的临时解决方案

parent 97565159
Pipeline #23774 passed with stages
in 7 minutes and 10 seconds
No preview for this file type
......@@ -39,8 +39,11 @@ function RushDuel.AttachDoubleTribute(e, card, value, desc, reset, forced)
return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_DOUBLE_TRIBUTE, value, reset, forced)
end
-- 赋予: 三重解放
function RushDuel.AttachTripleTribute(e, card, value, desc, reset, forced)
return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_TRIPLE_TRIBUTE, value, reset, forced)
function RushDuel.AttachTripleTribute(e, card, value, desc1, desc2, reset, forced)
local e1 = RushDuel.CreateSingleEffect(e, desc1, card, EFFECT_TRIPLE_TRIBUTE, value, reset, forced)
local e2 = RushDuel.CreateTripleTribute(e:GetHandler(), card, desc2, value, forced)
e2:SetReset(reset)
return e1, e2
end
-- 赋予: 使用对方的怪兽解放
function RushDuel.AttachOpponentTribute(e, card, flag, desc, reset, reset_player)
......
......@@ -378,6 +378,7 @@ function RushDuel.CreateAdvanceCheck(card, filter, count, flag)
e2:SetCondition(RushDuel.AdvanceCheckCondition)
e2:SetOperation(RushDuel.AdvanceCheckOperation)
card:RegisterEffect(e2)
return e1, e2
end
function RushDuel.AdvanceCheckCondition(e, tp, eg, ep, ev, re, r, rp)
return e:GetLabelObject():GetLabel() ~= 0 and e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
......@@ -416,6 +417,7 @@ function RushDuel.CreateAdvanceSummonFlag(card, flag)
e1:SetCondition(RushDuel.AdvanceSummonFlagCondition)
e1:SetOperation(RushDuel.AdvanceSummonFlagOperation)
card:RegisterEffect(e1)
return e1
end
function RushDuel.AdvanceSummonFlagCondition(e, tp, eg, ep, ev, re, r, rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_ADVANCE)
......@@ -424,6 +426,41 @@ function RushDuel.AdvanceSummonFlagOperation(e, tp, eg, ep, ev, re, r, rp)
e:GetHandler():RegisterFlagEffect(e:GetLabel(), RESET_EVENT + RESETS_STANDARD, 0, 1)
end
-- 三重解放 (临时处理方法)
function RushDuel.CreateTripleTribute(source, card, desc, value, forced)
local e1 = Effect.CreateEffect(source)
e1:SetDescription(desc)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SUMMON_PROC)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_HAND, 0)
e1:SetCondition(RushDuel.TripleTributeCondition)
e1:SetTarget(RushDuel.TripleTributeTarget(value))
e1:SetOperation(RushDuel.TripleTributeOperation)
e1:SetValue(SUMMON_TYPE_ADVANCE + SUMMON_VALUE_SELF)
card:RegisterEffect(e1, forced)
return e1
end
function RushDuel.TripleTributeCondition(e, c, minc)
if c == nil then
return true
end
local tc = e:GetHandler()
local tp = c:GetControler()
local mg = Duel.GetTributeGroup(c)
return minc <= 3 and mg:IsContains(tc) and Duel.GetMZoneCount(tp, tc) > 0
end
function RushDuel.TripleTributeTarget(value)
return function(e, c)
return value(e, c) and c:IsCode(120235000, 120253004)
end
end
function RushDuel.TripleTributeOperation(e, tp, eg, ep, ev, re, r, rp, c)
local mg = Group.FromCards(e:GetHandler())
c:SetMaterial(mg)
Duel.Release(mg, REASON_SUMMON + REASON_MATERIAL)
end
-- 添加记述卡牌列表
function RushDuel.AddCodeList(card, ...)
for _, list in ipairs {...} do
......
local m=120102010
local cm=_G["c"..m]
cm.name="银龙的轰咆"
function cm.initial_effect(c)
Duel.AddCustomActivityCounter(m,ACTIVITY_CHAIN,cm.chainfilter)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.chainfilter(re,tp,cid)
return not (re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():IsCode(m))
end
function cm.spfilter(c,e,tp)
return c:IsType(TYPE_NORMAL) and c:IsRace(RACE_DRAGON) 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_CHAIN)==0
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndSpecialSummon(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP)
end
\ No newline at end of file
......@@ -34,7 +34,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if RD.SendToHandAndExists(g,1-tp) and c:IsFaceup() and c:IsRelateToEffect(e) then
RD.AttachDoubleTribute(e,c,cm.trival,aux.Stringid(m,1),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
RD.AttachTripleTribute(e,c,cm.trival,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
RD.AttachTripleTribute(e,c,cm.trival,aux.Stringid(m,2),aux.Stringid(m,3),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
end
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