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

2025/10/22 新增:KP23和S253新卡

parent 31af1828
Pipeline #41211 passed with stages
in 10 minutes and 33 seconds
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -59,7 +59,8 @@ function RushDuel._private_cost_select_group(hint, filter, check, s_range, o_ran ...@@ -59,7 +59,8 @@ function RushDuel._private_cost_select_group(hint, filter, check, s_range, o_ran
end end
end end
-- 内部方法: 送去墓地动作 -- 内部方法: 送去墓地动作
function RushDuel._private_action_send_grave(reason, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel._private_action_send_grave(reason, hint_selection, confirm, set_label_before, set_object_before,
set_label_after, set_object_after)
return function(g, e, tp, eg, ep, ev, re, r, rp) return function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.HintOrConfirm(g, hint_selection, confirm, 1 - tp) RushDuel.HintOrConfirm(g, hint_selection, confirm, 1 - tp)
RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before) RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before)
...@@ -70,7 +71,8 @@ function RushDuel._private_action_send_grave(reason, hint_selection, confirm, se ...@@ -70,7 +71,8 @@ function RushDuel._private_action_send_grave(reason, hint_selection, confirm, se
end end
end end
-- 内部方法: 返回卡组动作 -- 内部方法: 返回卡组动作
function RushDuel._private_action_send_deck_sort(sequence, reason, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel._private_action_send_deck_sort(sequence, reason, hint_selection, confirm, set_label_before,
set_object_before, set_label_after, set_object_after)
return function(g, e, tp, eg, ep, ev, re, r, rp) return function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.HintOrConfirm(g, hint_selection, confirm, 1 - tp) RushDuel.HintOrConfirm(g, hint_selection, confirm, 1 - tp)
RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before) RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before)
...@@ -79,7 +81,8 @@ function RushDuel._private_action_send_deck_sort(sequence, reason, hint_selectio ...@@ -79,7 +81,8 @@ function RushDuel._private_action_send_deck_sort(sequence, reason, hint_selectio
end end
end end
-- 内部方法: 返回卡组上面或下面动作 -- 内部方法: 返回卡组上面或下面动作
function RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, reason, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, reason, hint_selection, confirm,
set_label_before, set_object_before, set_label_after, set_object_after)
return function(g, e, tp, eg, ep, ev, re, r, rp) return function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.HintOrConfirm(g, hint_selection, confirm, 1 - tp) RushDuel.HintOrConfirm(g, hint_selection, confirm, 1 - tp)
RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before) RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before)
...@@ -89,7 +92,8 @@ function RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, ...@@ -89,7 +92,8 @@ function RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc,
end end
end end
-- 内部方法: 返回手卡动作 -- 内部方法: 返回手卡动作
function RushDuel._private_action_send_hand(reason, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel._private_action_send_hand(reason, hint_selection, confirm, set_label_before, set_object_before,
set_label_after, set_object_after)
return function(g, e, tp, eg, ep, ev, re, r, rp) return function(g, e, tp, eg, ep, ev, re, r, rp)
if hint_selection then if hint_selection then
Duel.HintSelection(g) Duel.HintSelection(g)
...@@ -105,7 +109,8 @@ function RushDuel._private_action_send_hand(reason, hint_selection, confirm, set ...@@ -105,7 +109,8 @@ function RushDuel._private_action_send_hand(reason, hint_selection, confirm, set
end end
end end
-- 内部方法: 改变表示形式动作 -- 内部方法: 改变表示形式动作
function RushDuel._private_action_change_position(position, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel._private_action_change_position(position, set_label_before, set_object_before, set_label_after,
set_object_after)
return function(g, e, tp, eg, ep, ev, re, r, rp) return function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before) RushDuel.SetLabelAndObject(e, g, set_label_before, set_object_before)
if RushDuel.ChangePosition(g, e, tp, REASON_COST, position) ~= 0 then if RushDuel.ChangePosition(g, e, tp, REASON_COST, position) ~= 0 then
...@@ -132,40 +137,52 @@ function RushDuel.NoCostCheck(cost, flag_effect) ...@@ -132,40 +137,52 @@ function RushDuel.NoCostCheck(cost, flag_effect)
end end
-- 代价: 选择匹配卡片, 送去墓地 -- 代价: 选择匹配卡片, 送去墓地
function RushDuel.CostSendMatchToGrave(filter, field, min, max, except_self, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMatchToGrave(filter, field, min, max, except_self, hint_selection, confirm, set_label_before,
local action = RushDuel._private_action_send_grave(REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_grave(REASON_COST, hint_selection, confirm, set_label_before,
set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_match(HINTMSG_TOGRAVE, filter, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_match(HINTMSG_TOGRAVE, filter, field, 0, min, max, except_self, action)
end end
-- 代价: 选择子卡片组, 送去墓地 -- 代价: 选择子卡片组, 送去墓地
function RushDuel.CostSendGroupToGrave(filter, check, field, min, max, except_self, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGroupToGrave(filter, check, field, min, max, except_self, hint_selection, confirm,
local action = RushDuel._private_action_send_grave(REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) set_label_before, set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_grave(REASON_COST, hint_selection, confirm, set_label_before,
set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_group(HINTMSG_TOGRAVE, filter, check, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_group(HINTMSG_TOGRAVE, filter, check, field, 0, min, max, except_self, action)
end end
-- 代价: 选择匹配卡片, 返回卡组 (排序) -- 代价: 选择匹配卡片, 返回卡组 (排序)
function RushDuel.CostSendMatchToDeckSort(filter, field, min, max, except_self, sequence, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMatchToDeckSort(filter, field, min, max, except_self, sequence, hint_selection, confirm,
local action = RushDuel._private_action_send_deck_sort(sequence, REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) set_label_before, set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_deck_sort(sequence, REASON_COST, hint_selection, confirm,
set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_match(HINTMSG_TODECK, filter, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_match(HINTMSG_TODECK, filter, field, 0, min, max, except_self, action)
end end
-- 代价: 选择子卡片组, 返回卡组 (排序) -- 代价: 选择子卡片组, 返回卡组 (排序)
function RushDuel.CostSendGroupToDeckSort(filter, check, field, min, max, except_self, sequence, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGroupToDeckSort(filter, check, field, min, max, except_self, sequence, hint_selection,
local action = RushDuel._private_action_send_deck_sort(sequence, REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) confirm, set_label_before, set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_deck_sort(sequence, REASON_COST, hint_selection, confirm,
set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_group(HINTMSG_TODECK, filter, check, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_group(HINTMSG_TODECK, filter, check, field, 0, min, max, except_self, action)
end end
-- 代价: 选择匹配卡片, 返回卡组上面或下面 -- 代价: 选择匹配卡片, 返回卡组上面或下面
function RushDuel.CostSendMatchToDeckTopOrBottom(filter, field, min, max, except_self, top_desc, bottom_desc, hint_selection, confirm, set_label_before, set_object_before, set_label_after, function RushDuel.CostSendMatchToDeckTopOrBottom(filter, field, min, max, except_self, top_desc, bottom_desc,
set_object_after) hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) local action = RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, REASON_COST, hint_selection,
confirm, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_match(HINTMSG_TODECK, filter, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_match(HINTMSG_TODECK, filter, field, 0, min, max, except_self, action)
end end
-- 代价: 选择子卡片组, 返回卡组上面或下面 -- 代价: 选择子卡片组, 返回卡组上面或下面
function RushDuel.CostSendGroupToDeckTopOrBottom(filter, check, field, min, max, except_self, top_desc, bottom_desc, hint_selection, confirm, set_label_before, set_object_before, set_label_after, function RushDuel.CostSendGroupToDeckTopOrBottom(filter, check, field, min, max, except_self, top_desc, bottom_desc,
set_object_after) hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) local action = RushDuel._private_action_send_deck_top_or_bottom(top_desc, bottom_desc, REASON_COST, hint_selection,
confirm, set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_group(HINTMSG_TODECK, filter, check, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_group(HINTMSG_TODECK, filter, check, field, 0, min, max, except_self, action)
end end
-- 代价: 选择匹配卡片, 返回手卡 -- 代价: 选择匹配卡片, 返回手卡
function RushDuel.CostSendMatchToHand(filter, field, min, max, except_self, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMatchToHand(filter, field, min, max, except_self, hint_selection, confirm, set_label_before,
local action = RushDuel._private_action_send_hand(REASON_COST, hint_selection, confirm, set_label_before, set_object_before, set_label_after, set_object_after) set_object_before, set_label_after, set_object_after)
local action = RushDuel._private_action_send_hand(REASON_COST, hint_selection, confirm, set_label_before,
set_object_before, set_label_after, set_object_after)
return RushDuel._private_cost_select_match(HINTMSG_TOGRAVE, filter, field, 0, min, max, except_self, action) return RushDuel._private_cost_select_match(HINTMSG_TOGRAVE, filter, field, 0, min, max, except_self, action)
end end
...@@ -176,11 +193,13 @@ function RushDuel.CostPayLP(lp) ...@@ -176,11 +193,13 @@ function RushDuel.CostPayLP(lp)
return Duel.CheckLPCost(tp, lp) return Duel.CheckLPCost(tp, lp)
end end
Duel.PayLPCost(tp, lp) Duel.PayLPCost(tp, lp)
return true
end end
end end
-- 代价: 把手卡给对方观看 -- 代价: 把手卡给对方观看
function RushDuel.CostShowHand(filter, min, max, set_label, set_object) function RushDuel.CostShowHand(filter, min, max, set_label, set_object)
return RushDuel._private_cost_select_match(HINTMSG_CONFIRM, filter, LOCATION_HAND, 0, min, max, true, function(g, e, tp, eg, ep, ev, re, r, rp) return RushDuel._private_cost_select_match(HINTMSG_CONFIRM, filter, LOCATION_HAND, 0, min, max, true,
function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.SetLabelAndObject(e, g, set_label, set_object) RushDuel.SetLabelAndObject(e, g, set_label, set_object)
Duel.ConfirmCards(1 - tp, g) Duel.ConfirmCards(1 - tp, g)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
...@@ -188,7 +207,8 @@ function RushDuel.CostShowHand(filter, min, max, set_label, set_object) ...@@ -188,7 +207,8 @@ function RushDuel.CostShowHand(filter, min, max, set_label, set_object)
end end
-- 代价: 把手卡给对方观看 (子卡片组) -- 代价: 把手卡给对方观看 (子卡片组)
function RushDuel.CostShowGroupHand(filter, check, min, max, set_label, set_object) function RushDuel.CostShowGroupHand(filter, check, min, max, set_label, set_object)
return RushDuel._private_cost_select_group(HINTMSG_CONFIRM, filter, check, LOCATION_HAND, 0, min, max, true, function(g, e, tp, eg, ep, ev, re, r, rp) return RushDuel._private_cost_select_group(HINTMSG_CONFIRM, filter, check, LOCATION_HAND, 0, min, max, true,
function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.SetLabelAndObject(e, g, set_label, set_object) RushDuel.SetLabelAndObject(e, g, set_label, set_object)
Duel.ConfirmCards(1 - tp, g) Duel.ConfirmCards(1 - tp, g)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
...@@ -196,14 +216,16 @@ function RushDuel.CostShowGroupHand(filter, check, min, max, set_label, set_obje ...@@ -196,14 +216,16 @@ function RushDuel.CostShowGroupHand(filter, check, min, max, set_label, set_obje
end end
-- 代价: 把额外卡组给对方观看 -- 代价: 把额外卡组给对方观看
function RushDuel.CostShowExtra(filter, min, max, set_label, set_object) function RushDuel.CostShowExtra(filter, min, max, set_label, set_object)
return RushDuel._private_cost_select_match(HINTMSG_CONFIRM, filter, LOCATION_EXTRA, 0, min, max, false, function(g, e, tp, eg, ep, ev, re, r, rp) return RushDuel._private_cost_select_match(HINTMSG_CONFIRM, filter, LOCATION_EXTRA, 0, min, max, false,
function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.SetLabelAndObject(e, g, set_label, set_object) RushDuel.SetLabelAndObject(e, g, set_label, set_object)
Duel.ConfirmCards(1 - tp, g) Duel.ConfirmCards(1 - tp, g)
end) end)
end end
-- 代价: 把额外卡组给对方观看 (子卡片组) -- 代价: 把额外卡组给对方观看 (子卡片组)
function RushDuel.CostShowGroupExtra(filter, check, min, max, set_label, set_object) function RushDuel.CostShowGroupExtra(filter, check, min, max, set_label, set_object)
return RushDuel._private_cost_select_group(HINTMSG_CONFIRM, filter, check, LOCATION_EXTRA, 0, min, max, false, function(g, e, tp, eg, ep, ev, re, r, rp) return RushDuel._private_cost_select_group(HINTMSG_CONFIRM, filter, check, LOCATION_EXTRA, 0, min, max, false,
function(g, e, tp, eg, ep, ev, re, r, rp)
RushDuel.SetLabelAndObject(e, g, set_label, set_object) RushDuel.SetLabelAndObject(e, g, set_label, set_object)
Duel.ConfirmCards(1 - tp, g) Duel.ConfirmCards(1 - tp, g)
end) end)
...@@ -218,6 +240,7 @@ function RushDuel.CostSendDeckTopToGrave(count, set_label, set_object) ...@@ -218,6 +240,7 @@ function RushDuel.CostSendDeckTopToGrave(count, set_label, set_object)
local og = Duel.GetOperatedGroup() local og = Duel.GetOperatedGroup()
RushDuel.SetLabelAndObject(e, og, set_label, set_object) RushDuel.SetLabelAndObject(e, og, set_label, set_object)
end end
return true
end end
end end
-- 代价: 从卡组上面把任意数量的卡送去墓地 -- 代价: 从卡组上面把任意数量的卡送去墓地
...@@ -238,6 +261,7 @@ function RushDuel.CostSendDeckTopAnyToGrave(desc, min, max, set_label, set_objec ...@@ -238,6 +261,7 @@ function RushDuel.CostSendDeckTopAnyToGrave(desc, min, max, set_label, set_objec
local og = Duel.GetOperatedGroup() local og = Duel.GetOperatedGroup()
RushDuel.SetLabelAndObject(e, og, set_label, set_object) RushDuel.SetLabelAndObject(e, og, set_label, set_object)
end end
return true
end end
end end
-- 代价: 从卡组下面把卡送去墓地 -- 代价: 从卡组下面把卡送去墓地
...@@ -252,6 +276,7 @@ function RushDuel.CostSendDeckBottomToGrave(count, set_label, set_object) ...@@ -252,6 +276,7 @@ function RushDuel.CostSendDeckBottomToGrave(count, set_label, set_object)
local og = Duel.GetOperatedGroup() local og = Duel.GetOperatedGroup()
RushDuel.SetLabelAndObject(e, og, set_label, set_object) RushDuel.SetLabelAndObject(e, og, set_label, set_object)
end end
return true
end end
end end
-- 代价: 把自己场上表侧表示的这张卡送去墓地 -- 代价: 把自己场上表侧表示的这张卡送去墓地
...@@ -261,41 +286,58 @@ function RushDuel.CostSendSelfToGrave() ...@@ -261,41 +286,58 @@ function RushDuel.CostSendSelfToGrave()
return e:GetHandler():IsAbleToGraveAsCost() return e:GetHandler():IsAbleToGraveAsCost()
end end
Duel.SendtoGrave(RushDuel.ToMaximunGroup(e:GetHandler()), REASON_COST) Duel.SendtoGrave(RushDuel.ToMaximunGroup(e:GetHandler()), REASON_COST)
return true
end end
end end
-- 代价: 把手卡送去墓地 -- 代价: 把手卡送去墓地
function RushDuel.CostSendHandToGrave(filter, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandToGrave(filter, min, max, set_label_before, set_object_before, set_label_after,
local cost = RushDuel.CostSendMatchToGrave(filter, LOCATION_HAND, min, max, true, false, false, set_label_before, set_object_before, set_label_after, set_object_after) set_object_after)
local cost = RushDuel.CostSendMatchToGrave(filter, LOCATION_HAND, min, max, true, false, false, set_label_before,
set_object_before, set_label_after, set_object_after)
return RushDuel.NoCostCheck(cost, EFFECT_NO_COST_SEND_HAND_TO_GRAVE) return RushDuel.NoCostCheck(cost, EFFECT_NO_COST_SEND_HAND_TO_GRAVE)
end end
-- 代价: 把手卡送去墓地 (子卡片组) -- 代价: 把手卡送去墓地 (子卡片组)
function RushDuel.CostSendHandSubToGrave(filter, check, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandSubToGrave(filter, check, min, max, set_label_before, set_object_before, set_label_after,
local cost = RushDuel.CostSendGroupToGrave(filter, check, LOCATION_HAND, min, max, true, false, false, set_label_before, set_object_before, set_label_after, set_object_after) set_object_after)
local cost = RushDuel.CostSendGroupToGrave(filter, check, LOCATION_HAND, min, max, true, false, false,
set_label_before, set_object_before, set_label_after, set_object_after)
return RushDuel.NoCostCheck(cost, EFFECT_NO_COST_SEND_HAND_TO_GRAVE) return RushDuel.NoCostCheck(cost, EFFECT_NO_COST_SEND_HAND_TO_GRAVE)
end end
-- 代价: 把怪兽送去墓地 -- 代价: 把怪兽送去墓地
function RushDuel.CostSendMZoneToGrave(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMZoneToGrave(filter, min, max, except_self, set_label_before, set_object_before,
return RushDuel.CostSendMatchToGrave(filter, LOCATION_MZONE, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendMatchToGrave(filter, LOCATION_MZONE, min, max, except_self, false, false, set_label_before,
set_object_before, set_label_after, set_object_after)
end end
-- 代价: 把怪兽送去墓地 (子卡片组) -- 代价: 把怪兽送去墓地 (子卡片组)
function RushDuel.CostSendMZoneSubToGrave(filter, check, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMZoneSubToGrave(filter, check, min, max, except_self, set_label_before, set_object_before,
return RushDuel.CostSendGroupToGrave(filter, check, LOCATION_MZONE, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendGroupToGrave(filter, check, LOCATION_MZONE, min, max, except_self, false, false,
set_label_before, set_object_before, set_label_after, set_object_after)
end 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,
return RushDuel.CostSendMatchToGrave(filter, LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) 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) function RushDuel.CostSendOnFieldSubToGrave(filter, check, min, max, except_self, set_label_before, set_object_before,
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) 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 end
-- 代价: 把手卡·场上的卡送去墓地 -- 代价: 把手卡·场上的卡送去墓地
function RushDuel.CostSendHandOrFieldToGrave(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandOrFieldToGrave(filter, min, max, except_self, set_label_before, set_object_before,
return RushDuel.CostSendMatchToGrave(filter, LOCATION_HAND + LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendMatchToGrave(filter, LOCATION_HAND + LOCATION_ONFIELD, min, max, except_self, false, false,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 把手卡·场上的卡送去墓地 (子卡片组) -- 代价: 把手卡·场上的卡送去墓地 (子卡片组)
function RushDuel.CostSendHandOrFieldSubToGrave(filter, check, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendHandOrFieldSubToGrave(filter, check, min, max, except_self, set_label_before,
return RushDuel.CostSendGroupToGrave(filter, check, LOCATION_HAND + LOCATION_ONFIELD, min, max, except_self, false, false, set_label_before, set_object_before, set_label_after, set_object_after) set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendGroupToGrave(filter, check, LOCATION_HAND + LOCATION_ONFIELD, min, max, except_self, false,
false, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让自己场上表侧表示的这张卡回到卡组 -- 代价: 让自己场上表侧表示的这张卡回到卡组
function RushDuel.CostSendSelfToDeck() function RushDuel.CostSendSelfToDeck()
...@@ -304,6 +346,7 @@ function RushDuel.CostSendSelfToDeck() ...@@ -304,6 +346,7 @@ function RushDuel.CostSendSelfToDeck()
return e:GetHandler():IsAbleToDeckAsCost() return e:GetHandler():IsAbleToDeckAsCost()
end end
RushDuel.SendToDeckSort(e:GetHandler(), SEQ_DECKSHUFFLE, REASON_COST, tp) RushDuel.SendToDeckSort(e:GetHandler(), SEQ_DECKSHUFFLE, REASON_COST, tp)
return true
end end
end end
-- 代价: 让自己场上表侧表示的这张卡回到卡组上面 -- 代价: 让自己场上表侧表示的这张卡回到卡组上面
...@@ -313,6 +356,7 @@ function RushDuel.CostSendSelfToDeckTop() ...@@ -313,6 +356,7 @@ function RushDuel.CostSendSelfToDeckTop()
return e:GetHandler():IsAbleToDeckAsCost() return e:GetHandler():IsAbleToDeckAsCost()
end end
RushDuel.SendToDeckSort(e:GetHandler(), SEQ_DECKTOP, REASON_COST, tp) RushDuel.SendToDeckSort(e:GetHandler(), SEQ_DECKTOP, REASON_COST, tp)
return true
end end
end end
-- 代价: 让自己场上表侧表示的这张卡回到卡组下面 -- 代价: 让自己场上表侧表示的这张卡回到卡组下面
...@@ -322,82 +366,118 @@ function RushDuel.CostSendSelfToDeckBottom() ...@@ -322,82 +366,118 @@ function RushDuel.CostSendSelfToDeckBottom()
return e:GetHandler():IsAbleToDeckAsCost() return e:GetHandler():IsAbleToDeckAsCost()
end end
RushDuel.SendToDeckSort(e:GetHandler(), SEQ_DECKBOTTOM, REASON_COST, tp) RushDuel.SendToDeckSort(e:GetHandler(), SEQ_DECKBOTTOM, REASON_COST, tp)
return true
end end
end 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,
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) 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)
end end
-- 代价: 让怪兽返回卡组下面 -- 代价: 让怪兽返回卡组下面
function RushDuel.CostSendMZoneToDeckBottom(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMZoneToDeckBottom(filter, min, max, except_self, set_label_before, set_object_before,
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_MZONE, min, max, except_self, SEQ_DECKBOTTOM, true, false, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_MZONE, min, max, except_self, SEQ_DECKBOTTOM, true, false,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让怪兽返回卡组上面或下面 -- 代价: 让怪兽返回卡组上面或下面
function RushDuel.CostSendMZoneToDeckTopOrBottom(filter, min, max, top_desc, bottom_desc, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMZoneToDeckTopOrBottom(filter, min, max, top_desc, bottom_desc, except_self, set_label_before,
return RushDuel.CostSendMatchToDeckTopOrBottom(filter, LOCATION_MZONE, min, max, except_self, top_desc, bottom_desc, true, false, set_label_before, set_object_before, set_label_after, set_object_before, set_label_after, set_object_after)
set_object_after) return RushDuel.CostSendMatchToDeckTopOrBottom(filter, LOCATION_MZONE, min, max, except_self, top_desc, bottom_desc,
true, false, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让场上的卡返回卡组 -- 代价: 让场上的卡返回卡组
function RushDuel.CostSendOnFieldToDeck(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendOnFieldToDeck(filter, min, max, except_self, set_label_before, set_object_before,
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_ONFIELD, min, max, except_self, SEQ_DECKSHUFFLE, true, false, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_ONFIELD, min, max, except_self, SEQ_DECKSHUFFLE, true,
false, set_label_before, set_object_before, set_label_after, set_object_after)
end 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,
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) 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.CostSendHandToDeck(filter, min, max, confirm, 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,
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) 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,
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) 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.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,
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) 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)
end end
-- 代价: 让墓地的卡返回卡组 -- 代价: 让墓地的卡返回卡组
function RushDuel.CostSendGraveToDeck(filter, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveToDeck(filter, min, max, set_label_before, set_object_before, set_label_after,
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_GRAVE, min, max, false, SEQ_DECKSHUFFLE, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_GRAVE, min, max, false, SEQ_DECKSHUFFLE, false, true,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组 (子卡片组) -- 代价: 让墓地的卡返回卡组 (子卡片组)
function RushDuel.CostSendGraveSubToDeck(filter, check, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveSubToDeck(filter, check, min, max, set_label_before, set_object_before, set_label_after,
return RushDuel.CostSendGroupToDeckSort(filter, check, LOCATION_GRAVE, min, max, false, SEQ_DECKSHUFFLE, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_object_after)
return RushDuel.CostSendGroupToDeckSort(filter, check, LOCATION_GRAVE, min, max, false, SEQ_DECKSHUFFLE, false,
true, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组上面 -- 代价: 让墓地的卡返回卡组上面
function RushDuel.CostSendGraveToDeckTop(filter, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveToDeckTop(filter, min, max, set_label_before, set_object_before, set_label_after,
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_GRAVE, min, max, false, SEQ_DECKTOP, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_GRAVE, min, max, false, SEQ_DECKTOP, false, true,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组上面 (子卡片组) -- 代价: 让墓地的卡返回卡组上面 (子卡片组)
function RushDuel.CostSendGraveSubToDeckTop(filter, check, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveSubToDeckTop(filter, check, min, max, set_label_before, set_object_before,
return RushDuel.CostSendGroupToDeckSort(filter, check, LOCATION_GRAVE, min, max, false, SEQ_DECKTOP, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendGroupToDeckSort(filter, check, LOCATION_GRAVE, min, max, false, SEQ_DECKTOP, false, true,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组下面 -- 代价: 让墓地的卡返回卡组下面
function RushDuel.CostSendGraveToDeckBottom(filter, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveToDeckBottom(filter, min, max, set_label_before, set_object_before, set_label_after,
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_GRAVE, min, max, false, SEQ_DECKBOTTOM, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_object_after)
return RushDuel.CostSendMatchToDeckSort(filter, LOCATION_GRAVE, min, max, false, SEQ_DECKBOTTOM, false, true,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组下面 (子卡片组) -- 代价: 让墓地的卡返回卡组下面 (子卡片组)
function RushDuel.CostSendGraveSubToDeckBottom(filter, check, min, max, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveSubToDeckBottom(filter, check, min, max, set_label_before, set_object_before,
return RushDuel.CostSendGroupToDeckSort(filter, check, LOCATION_GRAVE, min, max, false, SEQ_DECKBOTTOM, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendGroupToDeckSort(filter, check, LOCATION_GRAVE, min, max, false, SEQ_DECKBOTTOM, false, true,
set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组上面或下面 -- 代价: 让墓地的卡返回卡组上面或下面
function RushDuel.CostSendGraveToDeckTopOrBottom(filter, min, max, top_desc, bottom_desc, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveToDeckTopOrBottom(filter, min, max, top_desc, bottom_desc, set_label_before,
return RushDuel.CostSendMatchToDeckTopOrBottom(filter, LOCATION_GRAVE, min, max, false, top_desc, bottom_desc, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_object_before, set_label_after, set_object_after)
return RushDuel.CostSendMatchToDeckTopOrBottom(filter, LOCATION_GRAVE, min, max, false, top_desc, bottom_desc,
false, true, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让墓地的卡返回卡组上面或下面 (子卡片组) -- 代价: 让墓地的卡返回卡组上面或下面 (子卡片组)
function RushDuel.CostSendGraveSubToDeckTopOrBottom(filter, check, min, max, top_desc, bottom_desc, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendGraveSubToDeckTopOrBottom(filter, check, min, max, top_desc, bottom_desc, set_label_before,
return RushDuel.CostSendGroupToDeckTopOrBottom(filter, check, LOCATION_GRAVE, min, max, false, top_desc, bottom_desc, false, true, set_label_before, set_object_before, set_label_after, set_object_before, set_label_after, set_object_after)
set_object_after) return RushDuel.CostSendGroupToDeckTopOrBottom(filter, check, LOCATION_GRAVE, min, max, false, top_desc,
bottom_desc, false, true, set_label_before, set_object_before, set_label_after, set_object_after)
end end
-- 代价: 让怪兽返回手卡 -- 代价: 让怪兽返回手卡
function RushDuel.CostSendMZoneToHand(filter, min, max, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostSendMZoneToHand(filter, min, max, except_self, set_label_before, set_object_before,
return RushDuel.CostSendMatchToHand(filter, LOCATION_MZONE, min, max, except_self, false, true, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel.CostSendMatchToHand(filter, LOCATION_MZONE, min, max, except_self, false, true, set_label_before,
set_object_before, set_label_after, set_object_after)
end end
-- 代价: 改变怪兽的表示形式 -- 代价: 改变怪兽的表示形式
function RushDuel.CostChangePosition(filter, min, max, position, except_self, set_label_before, set_object_before, set_label_after, set_object_after) function RushDuel.CostChangePosition(filter, min, max, position, except_self, set_label_before, set_object_before,
local action = RushDuel._private_action_change_position(position, set_label_before, set_object_before, set_label_after, set_object_after) set_label_after, set_object_after)
return RushDuel._private_cost_select_match(HINTMSG_POSCHANGE, filter, LOCATION_MZONE, 0, min, max, except_self, action) local action = RushDuel._private_action_change_position(position, set_label_before, set_object_before,
set_label_after, set_object_after)
return RushDuel._private_cost_select_match(HINTMSG_POSCHANGE, filter, LOCATION_MZONE, 0, min, max, except_self,
action)
end end
-- 代价: 让自己场上表侧表示的这张卡返回手卡 -- 代价: 让自己场上表侧表示的这张卡返回手卡
function RushDuel.CostSendSelfToHand() function RushDuel.CostSendSelfToHand()
...@@ -406,6 +486,7 @@ function RushDuel.CostSendSelfToHand() ...@@ -406,6 +486,7 @@ function RushDuel.CostSendSelfToHand()
return e:GetHandler():IsAbleToHandAsCost() return e:GetHandler():IsAbleToHandAsCost()
end end
Duel.SendtoHand(RushDuel.ToMaximunGroup(e:GetHandler()), nil, REASON_COST) Duel.SendtoHand(RushDuel.ToMaximunGroup(e:GetHandler()), nil, REASON_COST)
return true
end end
end end
-- 代价: 改变自身的表示形式 -- 代价: 改变自身的表示形式
...@@ -420,6 +501,7 @@ function RushDuel.CostChangeSelfPosition(pos1, pos2) ...@@ -420,6 +501,7 @@ function RushDuel.CostChangeSelfPosition(pos1, pos2)
else else
RushDuel.ChangePosition(c, e, tp, REASON_COST) RushDuel.ChangePosition(c, e, tp, REASON_COST)
end end
return true
end end
end end
...@@ -441,6 +523,7 @@ function RushDuel.CostChoose(hit1, cost1, hit2, cost2) ...@@ -441,6 +523,7 @@ function RushDuel.CostChoose(hit1, cost1, hit2, cost2)
if chk == 0 then if chk == 0 then
return s1 or s2 return s1 or s2
end end
if s1 and s2 then
RushDuel.CostCancelable = true RushDuel.CostCancelable = true
::cancel:: ::cancel::
local op = aux.SelectFromOptions(tp, {s1, hit1}, {s2, hit2}) local op = aux.SelectFromOptions(tp, {s1, hit1}, {s2, hit2})
...@@ -454,5 +537,10 @@ function RushDuel.CostChoose(hit1, cost1, hit2, cost2) ...@@ -454,5 +537,10 @@ function RushDuel.CostChoose(hit1, cost1, hit2, cost2)
end end
end end
RushDuel.CostCancelable = false RushDuel.CostCancelable = false
elseif s1 then
cost1(e, tp, eg, ep, ev, re, r, rp, 1)
elseif s2 then
cost2(e, tp, eg, ep, ev, re, r, rp, 1)
end
end end
end end
...@@ -14,7 +14,8 @@ function cm.initial_effect(c) ...@@ -14,7 +14,8 @@ function cm.initial_effect(c)
end end
--Set --Set
function cm.setfilter(c) function cm.setfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable() return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable(true)
and (c:IsType(TYPE_FIELD) or Duel.GetLocationCount(c:GetControler(),LOCATION_SZONE)>0)
end end
function cm.thfilter(c) function cm.thfilter(c)
return c:IsLevelAbove(7) and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_MACHINE) and c:IsAbleToHand() return c:IsLevelAbove(7) and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_MACHINE) and c:IsAbleToHand()
...@@ -28,7 +29,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -28,7 +29,7 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),1-tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,0,LOCATION_GRAVE,1,1,nil)
if g:GetCount()>0 and Duel.SSet(1-tp,g)~=0 then if g:GetCount()>0 and Duel.SSet(1-tp,g)~=0 then
RD.CanSelectAndDoAction(aux.Stringid(m,1),HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(sg) RD.CanSelectAndDoAction(aux.Stringid(m,1),HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(sg)
Duel.BreakEffect() Duel.BreakEffect()
......
local cm,m=GetID() RD.AlternateCard(120160003)
cm.name="死灵女仆·小七" \ No newline at end of file
function cm.initial_effect(c)
--To Deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--To Deck
function cm.tdfilter(c)
return c:IsLevel(7) and c:IsAbleToDeck()
end
cm.cost=RD.CostSendSelfToGrave()
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE,0,1,nil)
and Duel.IsPlayerCanDraw(tp,2) end
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_TODECK,aux.NecroValleyFilter(cm.tdfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(g)
if RD.SendToDeckBottom(g,e,tp,REASON_EFFECT)~=0 then
Duel.Draw(tp,2,REASON_EFFECT)
end
end)
end
\ No newline at end of file
...@@ -2,6 +2,7 @@ local cm,m=GetID() ...@@ -2,6 +2,7 @@ local cm,m=GetID()
local list={120283001} local list={120283001}
cm.name="永劫之神导龙" cm.name="永劫之神导龙"
function cm.initial_effect(c) function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Destroy --Destroy
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
......
...@@ -2,6 +2,7 @@ local cm,m=GetID() ...@@ -2,6 +2,7 @@ local cm,m=GetID()
local list={120285100} local list={120285100}
cm.name="天导圣之守望人" cm.name="天导圣之守望人"
function cm.initial_effect(c) function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Special Summon --Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
......
...@@ -19,7 +19,7 @@ function cm.filter(c) ...@@ -19,7 +19,7 @@ function cm.filter(c)
end end
cm.cost=RD.CostSendDeckTopToGrave(1) cm.cost=RD.CostSendDeckTopToGrave(1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>4 end if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>3 end
end end
function cm.operation(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<3 then return end if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<3 then return end
......
...@@ -15,8 +15,9 @@ function cm.initial_effect(c) ...@@ -15,8 +15,9 @@ function cm.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
--Special Summon --Special Summon
function cm.costfilter(c) function cm.costfilter(c,e,tp)
return c:IsFaceup() and not c:IsType(TYPE_RITUAL) and c:IsAbleToGraveAsCost() return c:IsFaceup() and not c:IsType(TYPE_RITUAL) and c:IsAbleToGraveAsCost()
and Duel.GetMZoneCount(tp,c)>0
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsType(TYPE_RITUAL) and c:IsRace(RACE_THUNDER) and RD.IsDefense(c,1600) return c:IsType(TYPE_RITUAL) and c:IsRace(RACE_THUNDER) and RD.IsDefense(c,1600)
......
...@@ -2,6 +2,7 @@ local cm,m=GetID() ...@@ -2,6 +2,7 @@ local cm,m=GetID()
local list={120290100} local list={120290100}
cm.name="暗狱皇 阿巴德" cm.name="暗狱皇 阿巴德"
function cm.initial_effect(c) function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Multiple Attack --Multiple Attack
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
......
local cm,m=GetID()
cm.name="死灵女仆·护卫"
function cm.initial_effect(c)
--Level Up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Level Up
cm.trival=RD.ValueDoubleTributeAttrRace(nil,RACE_ZOMBIE)
cm.cost=RD.CostSendDeckTopToGrave(1)
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,3,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
RD.AttachDoubleTribute(e,c,cm.trival,aux.Stringid(m,1),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end
end
\ No newline at end of file
local cm,m=GetID()
local list={120294049,120294050}
cm.name="死灵女仆·灯火"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Set
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
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
--Set
function cm.setfilter(c)
return c:IsCode(list[1],list[2]) and c:IsSSetable()
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return RD.IsSummonTurn(c) or RD.IsSpecialSummonTurn(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsExistingMatchingCard(cm.setfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,1,tp,LOCATION_GRAVE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndSet(aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_GRAVE,0,1,1,nil,e)
end
\ No newline at end of file
local cm,m=GetID()
local list={120294018}
cm.name="死灵女仆·时钟"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Special Summon
function cm.costfilter(c)
return c:IsFaceup() and c:GetOriginalLevel()<=4 and c:IsAbleToGraveAsCost()
end
function cm.spfilter(c,e,tp)
return (c:IsCode(list[1]) or (c:IsType(TYPE_RITUAL) and c:IsAttribute(ATTRIBUTE_LIGHT)
and c:IsRace(RACE_ZOMBIE))) and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
function cm.costcheck(g,e,tp)
return Duel.GetMZoneCount(tp,g)>0
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return RD.IsSummonTurn(c) or RD.IsSpecialSummonTurn(c)
end
cm.cost=RD.CostSendMZoneSubToGrave(cm.costfilter,cm.costcheck,2,2,false)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (e:IsCostChecked() or 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.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndSpecialSummon(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP)
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_ZOMBIE,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)
--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(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Discard Deck
function cm.exfilter(c)
return c:IsRace(RACE_ZOMBIE)
end
function cm.setfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable(true)
and (c:IsType(TYPE_FIELD) or Duel.GetLocationCount(c:GetControler(),LOCATION_SZONE)>0)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return RD.IsSummonTurn(c) or RD.IsSpecialSummonTurn(c)
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 RD.SendDeckTopToGraveAndExists(tp,2,cm.exfilter,1,nil) then
RD.CanSelectAndDoAction(aux.Stringid(m,1),HINTMSG_SET,aux.NecroValleyFilter(cm.setfilter),tp,0,LOCATION_GRAVE,1,1,nil,function(g)
Duel.SSet(1-tp,g)
end)
end
end
\ No newline at end of file
local cm,m=GetID()
cm.name="死灵女仆·厨具"
function cm.initial_effect(c)
--To Grave
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:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--To Grave
function cm.filter(c)
return (c:IsRace(RACE_ZOMBIE) or (c:IsType(TYPE_RITUAL) and c:IsType(TYPE_SPELL)))
and c:IsAbleToGrave()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>4 end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<5 then return end
local sg,g=RD.RevealDeckTopAndCanSelect(tp,5,aux.Stringid(m,1),HINTMSG_TOGRAVE,cm.filter,1,1)
if sg:GetCount()>0 then
Duel.DisableShuffleCheck()
Duel.SendtoGrave(sg,REASON_EFFECT+REASON_REVEAL)
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
local cm,m=GetID()
local list={120294018}
cm.name="死灵女仆·南瓜"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--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:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Discard Deck
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,1) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,1)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if RD.SendDeckBottomToGraveAndExists(tp,1) then
local tc=Duel.GetOperatedGroup():GetFirst()
if tc:IsRace(RACE_ZOMBIE) and tc:IsLocation(LOCATION_GRAVE)
and Duel.GetMZoneCount(tp)>0 and RD.IsCanBeSpecialSummoned(tc,e,tp,POS_FACEUP)
and Duel.SelectEffectYesNo(tp,tc,aux.Stringid(m,1)) then
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 then
RD.CreateCannotActivateEffect(e,aux.Stringid(m,2),cm.aclimit,tp,1,0,RESET_PHASE+PHASE_END)
end
end
end
end
function cm.aclimit(e,re,tp)
local tc=re:GetHandler()
return RD.IsLegendCode(tc,list[1])
end
\ No newline at end of file
local cm,m=GetID()
cm.name="湧军机应炎"
function cm.initial_effect(c)
--To Hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_GRAVE_ACTION)
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.thfilter(c)
return c:IsType(TYPE_EFFECT) and c:IsLevelAbove(7) and c:IsAttribute(ATTRIBUTE_FIRE)
and c:IsRace(RACE_MACHINE) and RD.IsDefense(c,800) and c:IsAbleToHand()
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return RD.IsSummonTurn(c) or RD.IsSpecialSummonTurn(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(g)
RD.SendToHandAndExists(g,e,tp,REASON_EFFECT)
end)
end
\ No newline at end of file
local cm,m=GetID()
cm.name="湧军机海炎"
function cm.initial_effect(c)
--Special Summon Procedure
RD.AddHandConfirmSpecialSummonProcedure(c,aux.Stringid(m,0),cm.spconfilter)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Special Summon Procedure
function cm.spconfilter(c)
return not c:IsLevel(7) and c:IsAttribute(ATTRIBUTE_FIRE) and c:IsRace(RACE_MACHINE)
and not c:IsPublic()
end
--Special Summon
function cm.costfilter(c,e,tp)
return c:IsFaceup() and c:IsAbleToDeckOrExtraAsCost() and Duel.GetMZoneCount(tp,c)>0
end
function cm.spfilter(c,e,tp)
return c:IsLevel(9) and c:IsAttribute(ATTRIBUTE_FIRE) and c:IsRace(RACE_MACHINE)
and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
cm.cost=RD.CostSendMZoneToDeckBottom(cm.costfilter,1,1)
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>9
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (e:IsCostChecked() or Duel.GetMZoneCount(tp)>0)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndSpecialSummon(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP)
end
\ No newline at end of file
local cm,m=GetID()
cm.name="湧军机陆炎"
function cm.initial_effect(c)
--Special Summon Procedure
RD.AddHandConfirmSpecialSummonProcedure(c,aux.Stringid(m,0),cm.spconfilter)
--Indes
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(cm.target)
e1:SetValue(cm.indval)
c:RegisterEffect(e1)
--Continuous Effect
RD.AddContinuousEffect(c,e1)
end
--Special Summon Procedure
function cm.spconfilter(c)
return not c:IsLevel(8) and c:IsAttribute(ATTRIBUTE_FIRE) and c:IsRace(RACE_MACHINE)
and not c:IsPublic()
end
--Indes
cm.indval=RD.ValueEffectIndesType(TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP,true)
function cm.target(e,c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE)
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(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Discard Deck
function cm.exfilter(c)
return c:IsType(TYPE_EFFECT) and c:IsLevel(3,4) and c:IsAttackBelow(1500)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return RD.IsSummonTurn(c) or RD.IsSpecialSummonTurn(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,3) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,3)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if RD.SendDeckTopToGraveAndExists(tp,3) then
RD.CanSelectAndDoAction(aux.Stringid(m,1),aux.Stringid(m,2),cm.exfilter,tp,0,LOCATION_GRAVE,1,1,nil,function(g)
local tc=g:GetFirst()
local actlimit=function(e,re,tp)
return RushDuel.IsSameOriginalCode(re:GetHandler(),tc)
end
RD.CreateCannotActivateEffect(e,aux.Stringid(m,3),actlimit,tp,1,1,RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
end)
end
end
\ No newline at end of file
local cm,m=GetID()
local list={120160003}
cm.name="死灵女仆·潜伏者"
function cm.initial_effect(c)
RD.AddRitualProcedure(c)
--Change Code
RD.EnableChangeCode(c,list[1],LOCATION_GRAVE)
--Destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_DAMAGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Destroy
function cm.costfilter1(c)
return c:IsType(TYPE_RITUAL) and c:IsType(TYPE_MONSTER)
end
function cm.costfilter2(c)
return c:IsRace(RACE_ZOMBIE)
end
function cm.costfilter(c)
return (cm.costfilter1(c) or cm.costfilter2(c)) and c:IsAbleToDeckOrExtraAsCost()
end
function cm.check(g)
if g:GetCount()==1 then
return g:IsExists(cm.costfilter1,1,nil)
else
return g:FilterCount(cm.costfilter2,nil)==3
end
end
cm.cost=RD.CostSendGraveSubToDeck(cm.costfilter,cm.check,1,3)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_DESTROY,nil,tp,0,LOCATION_ONFIELD,1,1,nil,function(g)
if Duel.Destroy(g,REASON_EFFECT)~=0 then
RD.CanDamage(aux.Stringid(m,1),tp,700,true)
end
end)
end
\ No newline at end of file
local cm,m=GetID()
local list={120160003}
cm.name="死灵女仆·返:D"
function cm.initial_effect(c)
RD.AddRitualProcedure(c)
--Change Code
RD.EnableChangeCode(c,list[1],LOCATION_GRAVE)
--To Hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Destroy
function cm.costfilter1(c)
return c:IsType(TYPE_RITUAL) and c:IsType(TYPE_MONSTER)
end
function cm.costfilter2(c)
return c:IsRace(RACE_ZOMBIE)
end
function cm.costfilter(c)
return (cm.costfilter1(c) or cm.costfilter2(c)) and c:IsAbleToDeckOrExtraAsCost()
end
function cm.filter(c)
return c:IsFaceup() and c:IsAbleToHand()
end
function cm.check(g)
if g:GetCount()==1 then
return g:IsExists(cm.costfilter1,1,nil)
else
return g:FilterCount(cm.costfilter2,nil)==3
end
end
cm.cost=RD.CostSendGraveSubToDeck(cm.costfilter,cm.check,1,3)
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_TOHAND,g,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_RTOHAND,cm.filter,tp,0,LOCATION_MZONE,1,1,nil,function(g)
RD.SendToHandAndExists(g,e,tp,REASON_EFFECT)
end)
end
\ No newline at end of file
local cm,m=GetID()
local list={120294044}
cm.name="死灵女仆缝纫"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Activate
local e1=RD.CreateRitualEffect(c,RITUAL_ORIGINAL_LEVEL_GREATER,cm.matfilter,cm.spfilter)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
end
--Activate
function cm.matfilter(c)
return c:IsFaceup() and c:IsOnField()
end
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=RD.CreateRitualEffect(c,RITUAL_CURRENT_LEVEL_GREATER,cm.matfilter,cm.spfilter,nil,0,0,nil,RD.RitualToGrave,nil,nil,cm.limit)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
end
--Activate
function cm.matfilter(c)
return c:IsFaceup() and c:IsOnField() and c:IsRace(RACE_ZOMBIE)
end
function cm.spfilter(c)
return c:IsLevel(7) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_ZOMBIE)
end
function cm.limit(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_ZOMBIE,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)
--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:IsType(TYPE_EFFECT) and c:IsRace(RACE_ZOMBIE) and RD.IsDefense(c,700))
or (c:IsType(TYPE_RITUAL) and c:IsType(TYPE_SPELL)))
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)>3 then
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
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,2),RACE_ALL-RACE_ZOMBIE,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)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.spfilter(c,e,tp)
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_MACHINE) and c:IsAttack(2500)
and RD.IsDefense(c,1600) and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnCount()==2
end
cm.cost1=RD.CostSendHandToGrave(Card.IsAbleToGraveAsCost,2,2)
cm.cost2=RD.CostOnlyCondition(cm.condition)
cm.cost=RD.CostChoose(aux.Stringid(m,1),cm.cost1,aux.Stringid(m,2),cm.cost2)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_DESTROY,nil,tp,0,LOCATION_ONFIELD,1,1,nil,function(g)
if Duel.Destroy(g,REASON_EFFECT)~=0 then
RD.CanSelectAndSpecialSummon(aux.Stringid(m,3),aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP,true)
end
end)
end
\ No newline at end of file
local cm,m=GetID()
local list={120294100}
cm.name="壮严的火焰之影"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Atk Up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Atk Up
function cm.filter(c)
return c:IsFaceup() and c:IsType(TYPE_EFFECT) and c:IsLevelBelow(8)
end
cm.cost=RD.CostPayLP(500)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,2,nil,function(g)
g:ForEach(function(tc)
RD.AttachAtkDef(e,tc,500,0,RESET_EVENT+RESETS_STANDARD)
end)
end)
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateCannotActivateEffect(e,aux.Stringid(m,2),cm.aclimit,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.aclimit(e,re,tp)
local tc=re:GetHandler()
return tc:IsCode(list[1])
end
\ No newline at end of file
RD.AlternateCard(120246061)
\ No newline at end of file
RD.AlternateCard(120277037)
\ No newline at end of file
RD.AlternateCard(120285018)
\ No newline at end of file
RD.AlternateCard(120183054)
\ No newline at end of file
RD.AlternateCard(120280031)
\ No newline at end of file
...@@ -21,6 +21,7 @@ https://yugipedia.com/wiki/Category:Rush_Duel_cards ...@@ -21,6 +21,7 @@ https://yugipedia.com/wiki/Category:Rush_Duel_cards
- **September 20, 2025**: Structure Deck: ??? (RD/SD0F-JP): `120291XXX` - **September 20, 2025**: Structure Deck: ??? (RD/SD0F-JP): `120291XXX`
- **October 18, 2025**: Over Rush Pack 3 (RD/ORP3-JP): `120293XXX` - **October 18, 2025**: Over Rush Pack 3 (RD/ORP3-JP): `120293XXX`
- **November 29, 2025**: ??? (RD/KP23-JP): `120294XXX` - **November 29, 2025**: ??? (RD/KP23-JP): `120294XXX`
- **October 1, 2025**: Special Victory Pack (RD/S253-JP): `120295XXX`
# Archived # Archived
- **April 3, 2020** : Saikyō Jump May 2020 promotional card (RD/SJMP-JP) : `120100XXX` - **April 3, 2020** : Saikyō Jump May 2020 promotional card (RD/SJMP-JP) : `120100XXX`
......
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