凶導の葬列
このカード名のカードは1ターンに1枚しか発動できない。
1:レベルの合計が儀式召喚するモンスターのレベル以上になるように、自分の手札・フィールドのモンスターをリリース、またはリリースの代わりに自分の墓地の融合・Sモンスターを除外し、自分の手札・墓地から「ドラグマ」儀式モンスター1体を儀式召喚する。
その後、フィールドに「凶導の白騎士」及び「凶導の白聖骸」が存在する場合、自分か相手のEXデッキを確認してその内のモンスター1体を墓地へ送る事ができる。
local CARD_ID_0 = 40352445 --凶導の白騎士
local CARD_ID_1 = 48654323 --凶導の白聖骸
local SETCARD_ID_0 = 0x145 --ドラグマ

local CARD_ID_0 = 40352445 --凶導の白騎士
local CARD_ID_1 = 48654323 --凶導の白聖骸
local SETCARD_ID_0 = 0x145 --ドラグマ
local s, id, o = GetID()
function s.initial_effect(c)
	aux.AddCodeList(c, CARD_ID_0, CARD_ID_1)
	local e1 = aux.AddRitualProcGreater2(c, s.filter, LOCATION_HAND + LOCATION_GRAVE, s.grfilter, nil, true, s.extraop)
	e1:SetCountLimit(1, id + EFFECT_COUNT_CODE_OATH)
	c:RegisterEffect(e1)
end
function s.filter(c)
	return c:IsSetCard(SETCARD_ID_0)
end
function s.grfilter(c)
	return c:IsType(TYPE_FUSION + TYPE_SYNCHRO)
end
function s.opfilter(c, code)
	return c:IsFaceup() and c:IsCode(code)
end
function s.extraop(e, tp, eg, ep, ev, re, r, rp, tc)
	if not tc then
		return
	end
	local g1 = Duel.GetFieldGroup(tp, LOCATION_EXTRA, 0)
	local g2 = Duel.GetFieldGroup(tp, 0, LOCATION_EXTRA)
	if
		Duel.IsExistingMatchingCard(s.opfilter, tp, LOCATION_ONFIELD, LOCATION_ONFIELD, 1, nil, CARD_ID_0)
		and Duel.IsExistingMatchingCard(s.opfilter, tp, LOCATION_ONFIELD, LOCATION_ONFIELD, 1, nil, CARD_ID_1)
		and (#g1 ~= 0 or #g2 ~= 0)
		and Duel.SelectYesNo(tp, aux.Stringid(id, 0))
	then
		Duel.BreakEffect()
		local g = nil
		if #g1 ~= 0 and (#g2 == 0 or Duel.SelectOption(tp, aux.Stringid(id, 1), aux.Stringid(id, 2)) == 0) then
			g = g1
		else
			g = g2
			Duel.ConfirmCards(tp, g, true)
		end
		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_TOGRAVE)
		local tg = g:FilterSelect(tp, Card.IsAbleToGrave, 1, 1, nil)
		Duel.SendtoGrave(tg, REASON_EFFECT)
	end
end


凶導の葬列
このカード名のカードは1ターンに1枚しか発動できない。
1:レベルの合計が儀式召喚するモンスターのレベル以上になるように、自分の手札・フィールドのモンスターをリリース、またはリリースの代わりに自分の墓地の融合・Sモンスターを除外し、自分の手札・墓地から「ドラグマ」儀式モンスター1体を儀式召喚する。
その後、フィールドに「凶導の白騎士」及び「凶導の白聖骸」が存在する場合、自分か相手のEXデッキを確認してその内のモンスター1体を墓地へ送る事ができる。
-- 凶導の葬列
local CARD_ID_0 = 40352445 --凶導の白騎士
local CARD_ID_1 = 48654323 --凶導の白聖骸
local SETCARD_ID_0 = 0x145 --ドラグマ
local s, id, o = GetID()
function s.initial_effect(c)
	aux.AddCodeList(c, CARD_ID_0, CARD_ID_1)
	local e1 = aux.AddRitualProcGreater2(c, s.filter, LOCATION_HAND + LOCATION_GRAVE, s.grfilter, nil, true, s.extraop)
	e1:SetCountLimit(1, id + EFFECT_COUNT_CODE_OATH)
	c:RegisterEffect(e1)
end
function s.filter(c)
	return c:IsSetCard(SETCARD_ID_0)
end
function s.grfilter(c)
	return c:IsType(TYPE_FUSION + TYPE_SYNCHRO)
end
function s.opfilter(c, code)
	return c:IsFaceup() and c:IsCode(code)
end
function s.extraop(e, tp, eg, ep, ev, re, r, rp, tc)
	if not tc then
		return
	end
	local g1 = Duel.GetFieldGroup(tp, LOCATION_EXTRA, 0)
	local g2 = Duel.GetFieldGroup(tp, 0, LOCATION_EXTRA)
	if
		Duel.IsExistingMatchingCard(s.opfilter, tp, LOCATION_ONFIELD, LOCATION_ONFIELD, 1, nil, CARD_ID_0)
		and Duel.IsExistingMatchingCard(s.opfilter, tp, LOCATION_ONFIELD, LOCATION_ONFIELD, 1, nil, CARD_ID_1)
		and (#g1 ~= 0 or #g2 ~= 0)
		and Duel.SelectYesNo(tp, aux.Stringid(id, 0))
	then
		Duel.BreakEffect()
		local g = nil
		if #g1 ~= 0 and (#g2 == 0 or Duel.SelectOption(tp, aux.Stringid(id, 1), aux.Stringid(id, 2)) == 0) then
			g = g1
		else
			g = g2
			Duel.ConfirmCards(tp, g, true)
		end
		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_TOGRAVE)
		local tg = g:FilterSelect(tp, Card.IsAbleToGrave, 1, 1, nil)
		Duel.SendtoGrave(tg, REASON_EFFECT)
	end
end

