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

2023/10/19 新增:圣丽的冻士 格拉基耶斯

parent 97f71169
Pipeline #23785 passed with stages
in 7 minutes and 16 seconds
No preview for this file type
...@@ -134,7 +134,7 @@ function RushDuel.CanSelectGroupAndSpecialSummon(desc, filter, check, tp, s_rang ...@@ -134,7 +134,7 @@ function RushDuel.CanSelectGroupAndSpecialSummon(desc, filter, check, tp, s_rang
end end
return 0 return 0
end end
-- 操作: 选择魔法陷阱卡盖放 -- 操作: 选择魔法, 陷阱卡盖放
function RushDuel.SelectAndSet(filter, tp, s_range, o_range, min, max, expect, e, break_effect) function RushDuel.SelectAndSet(filter, tp, s_range, o_range, min, max, expect, e, break_effect)
local ct = RushDuel.GetSZoneCount(tp, max) local ct = RushDuel.GetSZoneCount(tp, max)
if ct >= min then if ct >= min then
...@@ -142,7 +142,7 @@ function RushDuel.SelectAndSet(filter, tp, s_range, o_range, min, max, expect, e ...@@ -142,7 +142,7 @@ function RushDuel.SelectAndSet(filter, tp, s_range, o_range, min, max, expect, e
end end
return 0 return 0
end end
-- 可选操作: 选择魔法陷阱卡盖放 -- 可选操作: 选择魔法, 陷阱卡盖放
function RushDuel.CanSelectAndSet(desc, filter, tp, s_range, o_range, min, max, expect, e, break_effect) function RushDuel.CanSelectAndSet(desc, filter, tp, s_range, o_range, min, max, expect, e, break_effect)
local ct = RushDuel.GetSZoneCount(tp, max) local ct = RushDuel.GetSZoneCount(tp, max)
if ct >= min then if ct >= min then
...@@ -150,7 +150,7 @@ function RushDuel.CanSelectAndSet(desc, filter, tp, s_range, o_range, min, max, ...@@ -150,7 +150,7 @@ function RushDuel.CanSelectAndSet(desc, filter, tp, s_range, o_range, min, max,
end end
return 0 return 0
end end
-- 操作: 选择魔法陷阱卡盖放 (子卡片组) -- 操作: 选择魔法, 陷阱卡盖放 (子卡片组)
function RushDuel.SelectGroupAndSet(filter, check, tp, s_range, o_range, min, max, expect, e, break_effect) function RushDuel.SelectGroupAndSet(filter, check, tp, s_range, o_range, min, max, expect, e, break_effect)
local ct = RushDuel.GetSZoneCount(tp, max) local ct = RushDuel.GetSZoneCount(tp, max)
if ct >= min then if ct >= min then
...@@ -158,7 +158,7 @@ function RushDuel.SelectGroupAndSet(filter, check, tp, s_range, o_range, min, ma ...@@ -158,7 +158,7 @@ function RushDuel.SelectGroupAndSet(filter, check, tp, s_range, o_range, min, ma
end end
return 0 return 0
end end
-- 可选操作: 选择魔法陷阱卡盖放 (子卡片组) -- 可选操作: 选择魔法, 陷阱卡盖放 (子卡片组)
function RushDuel.CanSelectGroupAndSet(desc, filter, check, tp, s_range, o_range, min, max, expect, e, break_effect) function RushDuel.CanSelectGroupAndSet(desc, filter, check, tp, s_range, o_range, min, max, expect, e, break_effect)
local ct = RushDuel.GetSZoneCount(tp, max) local ct = RushDuel.GetSZoneCount(tp, max)
if ct >= min then if ct >= min then
...@@ -283,12 +283,12 @@ function RushDuel.SendToOpponentDeckBottom(target, player) ...@@ -283,12 +283,12 @@ function RushDuel.SendToOpponentDeckBottom(target, player)
end end
-- 操作: 翻开卡组并选择卡 -- 操作: 翻开卡组并选择卡
function RushDuel.RevealDeckTopAndSelect(player, count, hint, filter, min, max) function RushDuel.RevealDeckTopAndSelect(player, count, hint, filter, min, max, ...)
Duel.ConfirmDecktop(player, count) Duel.ConfirmDecktop(player, count)
local g = Duel.GetDecktopGroup(player, count) local g = Duel.GetDecktopGroup(player, count)
if g:GetCount() > 0 then if g:GetCount() > 0 then
Duel.Hint(HINT_SELECTMSG, player, hint) Duel.Hint(HINT_SELECTMSG, player, hint)
local sg = g:FilterSelect(player, filter, min, max, nil) local sg = g:FilterSelect(player, filter, min, max, nil, ...)
g:Sub(sg) g:Sub(sg)
return sg, g return sg, g
else else
......
...@@ -143,7 +143,7 @@ end ...@@ -143,7 +143,7 @@ end
function RushDuel.AttachCannotTribute(e, card, value, desc, reset, forced) function RushDuel.AttachCannotTribute(e, card, value, desc, reset, forced)
return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_UNRELEASABLE_SUM, value, reset, forced) return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_UNRELEASABLE_SUM, value, reset, forced)
end end
-- 赋予: 不能发动 -- 赋予: 不能发动效果
function RushDuel.AttachCannotTrigger(e, card, desc, reset, forced) function RushDuel.AttachCannotTrigger(e, card, desc, reset, forced)
return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_CANNOT_TRIGGER, nil, reset, forced) return RushDuel.CreateSingleEffect(e, desc, card, EFFECT_CANNOT_TRIGGER, nil, reset, forced)
end end
......
...@@ -67,7 +67,7 @@ function RushDuel.IsPreviousRace(card, race) ...@@ -67,7 +67,7 @@ function RushDuel.IsPreviousRace(card, race)
return (card:GetPreviousRaceOnField() & race) ~= 0 return (card:GetPreviousRaceOnField() & race) ~= 0
end end
-- 条件可以攻击 -- 条件: 可以攻击
function RushDuel.IsCanAttack(card) function RushDuel.IsCanAttack(card)
return not card:IsHasEffect(EFFECT_CANNOT_ATTACK) return not card:IsHasEffect(EFFECT_CANNOT_ATTACK)
end end
...@@ -133,7 +133,7 @@ function RushDuel.IsCanAttachTripleTribute(card, value) ...@@ -133,7 +133,7 @@ function RushDuel.IsCanAttachTripleTribute(card, value)
end end
-- 条件: 可否赋予效果 - 使用对方的怪兽解放 -- 条件: 可否赋予效果 - 使用对方的怪兽解放
function RushDuel.IsCanAttachOpponentTribute(card, flag) function RushDuel.IsCanAttachOpponentTribute(card, flag)
return card:GetFlagEffect(flag) == 0 return not card:IsHasEffect(EFFECT_UNRELEASABLE_SUM) and card:GetFlagEffect(flag) == 0
end end
-- 条件: 可否赋予效果 - 战斗破坏抗性 -- 条件: 可否赋予效果 - 战斗破坏抗性
function RushDuel.IsCanAttachBattleIndes(card, value) function RushDuel.IsCanAttachBattleIndes(card, value)
......
...@@ -159,7 +159,7 @@ function RushDuel.CostSendDeckTopToGrave(count, set_label, set_object) ...@@ -159,7 +159,7 @@ function RushDuel.CostSendDeckTopToGrave(count, set_label, set_object)
end end
end end
end end
-- 代价: 从卡组上面把卡送去墓地 -- 代价: 从卡组上面把任意数量的卡送去墓地
function RushDuel.CostSendDeckTopAnyToGrave(desc, min, max, set_label, set_object) function RushDuel.CostSendDeckTopAnyToGrave(desc, min, max, set_label, set_object)
return function(e, tp, eg, ep, ev, re, r, rp, chk) return function(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then if chk == 0 then
...@@ -222,6 +222,10 @@ end ...@@ -222,6 +222,10 @@ end
function RushDuel.CostSendOnFieldToGrave(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendOnFieldToGrave(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToGrave(filter, LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) return RushDuel.CostSendMatchToGrave(filter, LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 把场上的卡送去墓地 (子卡片组)
function RushDuel.CostSendOnFieldSubToGrave(filter, check, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendGroupToGrave(filter, check, LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after)
end
-- 代价: 让怪兽返回卡组 -- 代价: 让怪兽返回卡组
function RushDuel.CostSendMZoneToDeck(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMZoneToDeck(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_MZONE, min, max, except_self, SEQ_DECKSHUFFLE, true, false, set_label_before, set_object_before, set_label_after, set_object_after) return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_MZONE, min, max, except_self, SEQ_DECKSHUFFLE, true, false, set_label_before, set_object_before, set_label_after, set_object_after)
...@@ -242,18 +246,14 @@ end ...@@ -242,18 +246,14 @@ end
function RushDuel.CostSendOnFieldToDeckBottom(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendOnFieldToDeckBottom(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_ONFIELD, min, max, except_self, SEQ_DECKBOTTOM, true, false, set_label_before, set_object_before, set_label_after, set_object_after) return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_ONFIELD, min, max, except_self, SEQ_DECKBOTTOM, true, false, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 把场上的卡送去墓地 (子卡片组) -- 代价: 把手卡返回卡组
function RushDuel.CostSendOnFieldSubToGrave(filter, check, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandToDeck(filter, min, max, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendGroupToGrave(filter, check, LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_HAND, min, max, true, SEQ_DECKSHUFFLE, false, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 把手卡返回卡组上面 -- 代价: 把手卡返回卡组上面
function RushDuel.CostSendHandToDeckTop(filter, min, max, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandToDeckTop(filter, min, max, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_HAND, min, max, true, SEQ_DECKTOP, false, confirm, set_label_before, set_object_before, set_label_after, set_object_after) return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_HAND, min, max, true, SEQ_DECKTOP, false, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 把手卡返回卡组
function RushDuel.CostSendHandToDeck(filter, min, max, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_HAND, min, max, true, SEQ_DECKSHUFFLE, false, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
end
-- 代价: 把手卡返回卡组下面 -- 代价: 把手卡返回卡组下面
function RushDuel.CostSendHandToDeckBottom(filter, min, max, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandToDeckBottom(filter, min, max, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_HAND, min, max, true, SEQ_DECKBOTTOM, false, confirm, set_label_before, set_object_before, set_label_after, set_object_after) return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_HAND, min, max, true, SEQ_DECKBOTTOM, false, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
......
local m=120253034
local cm=_G["c"..m]
cm.name="圣丽的冻士 格拉基耶斯"
function cm.initial_effect(c)
--Level Up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Level Up
cm.indval=RD.ValueEffectIndesType(0,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP)
function cm.costfilter(c)
return c:IsAbleToGraveAsCost()
end
function cm.tdfilter(c)
return c:IsFacedown() and c:IsAbleToDeck()
end
cm.cost=RD.CostSendMatchToGrave(cm.costfilter,LOCATION_HAND+LOCATION_ONFIELD,1,6,true,false,false,nil,nil,Group.GetCount)
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
RD.AttachLevel(e,c,1,RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
RD.AttachEffectIndes(e,c,cm.indval,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
local ct=math.floor(e:GetLabel()/3)
if ct>0 then
RD.CanSelectAndDoAction(aux.Stringid(m,1),HINTMSG_TODECK,cm.tdfilter,tp,0,LOCATION_ONFIELD,1,ct,nil,function(g)
RD.SendToOpponentHand(g)
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