ブルーアイズ・タイラント・ドラゴン
「青眼の白龍」+ドラゴン族モンスター
このカードは融合召喚及び以下の方法でのみEXデッキから特殊召喚できる。
●融合モンスターを装備した自分の「青眼の白龍」1体をリリースした場合にEXデッキから特殊召喚できる。
1:フィールドのこのカードは罠カードの効果を受けない。
2:このカードは相手モンスター全てに1回ずつ攻撃できる。
3:1ターンに1度、このカードが戦闘を行ったダメージステップ終了時、自分の墓地の罠カード1枚を対象として発動できる。
そのカードを自分フィールドにセットする。
local CARD_ID_0 = 89631139 --青眼の白龍

local CARD_ID_0 = 89631139 --青眼の白龍
local s, id, o = GetID()
function s.initial_effect(c)
	--fusion material
	c:EnableReviveLimit()
	aux.AddFusionProcCodeFun(c, CARD_ID_0, aux.FilterBoolFunction(Card.IsRace, RACE_DRAGON), 1, true, true)
	--special summon condition
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE + EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
	e1:SetCode(EFFECT_SPSUMMON_CONDITION)
	e1:SetRange(LOCATION_EXTRA)
	e1:SetValue(aux.fuslimit)
	c:RegisterEffect(e1)
	--special summon rule
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD)
	e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
	e2:SetCode(EFFECT_SPSUMMON_PROC)
	e2:SetRange(LOCATION_EXTRA)
	e2:SetCondition(s.sprcon)
	e2:SetTarget(s.sprtg)
	e2:SetOperation(s.sprop)
	c:RegisterEffect(e2)
	--immune
	local e3 = Effect.CreateEffect(c)
	e3:SetType(EFFECT_TYPE_SINGLE)
	e3:SetCode(EFFECT_IMMUNE_EFFECT)
	e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
	e3:SetRange(LOCATION_MZONE)
	e3:SetValue(s.efilter)
	c:RegisterEffect(e3)
	--attack all
	local e4 = Effect.CreateEffect(c)
	e4:SetType(EFFECT_TYPE_SINGLE)
	e4:SetCode(EFFECT_ATTACK_ALL)
	e4:SetValue(1)
	c:RegisterEffect(e4)
	--set trap
	local e5 = Effect.CreateEffect(c)
	e5:SetDescription(aux.Stringid(id, 0))
	e5:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
	e5:SetCode(EVENT_DAMAGE_STEP_END)
	e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
	e5:SetCondition(s.setcon)
	e5:SetTarget(s.settg)
	e5:SetOperation(s.setop)
	c:RegisterEffect(e5)
end
function s.ultimate_fusion_check(tp, sg, fc)
	return aux.gffcheck(sg, Card.IsFusionCode, CARD_ID_0, Card.IsRace, RACE_DRAGON)
end
function s.cfilter(c)
	return c:IsFaceup() and c:GetOriginalType() & TYPE_FUSION ~= 0
end
function s.sprfilter(c, tp, sc)
	local eqc = c:GetEquipGroup():FilterCount(s.cfilter, nil)
	return c:IsFusionCode(CARD_ID_0) and eqc > 0 and Duel.GetLocationCountFromEx(tp, tp, c, sc) > 0 and c:IsCanBeFusionMaterial(sc, SUMMON_TYPE_SPECIAL)
end
function s.sprcon(e, c)
	if c == nil then
		return true
	end
	local tp = c:GetControler()
	return Duel.CheckReleaseGroupEx(tp, s.sprfilter, 1, REASON_SPSUMMON, false, nil, tp, c)
end
function s.sprtg(e, tp, eg, ep, ev, re, r, rp, chk, c)
	local g = Duel.GetReleaseGroup(tp, false, REASON_SPSUMMON):Filter(s.sprfilter, nil, tp, c)
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_RELEASE)
	local tc = g:SelectUnselect(nil, tp, false, true, 1, 1)
	if tc then
		e:SetLabelObject(tc)
		return true
	else
		return false
	end
end
function s.sprop(e, tp, eg, ep, ev, re, r, rp, c)
	local tc = e:GetLabelObject()
	c:SetMaterial(Group.FromCards(tc))
	Duel.Release(tc, REASON_SPSUMMON)
end
function s.efilter(e, te)
	return te:IsActiveType(TYPE_TRAP)
end
function s.setcon(e, tp, eg, ep, ev, re, r, rp)
	return e:GetHandler():GetFlagEffect(id) == 0 and aux.dsercon(e, tp, eg, ep, ev, re, r, rp)
end
function s.setfilter(c)
	return c:IsType(TYPE_TRAP) and c:IsSSetable()
end
function s.settg(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
	if chkc then
		return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.setfilter(chkc)
	end
	if chk == 0 then
		return Duel.IsExistingTarget(s.setfilter, tp, LOCATION_GRAVE, 0, 1, nil)
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SET)
	local g = Duel.SelectTarget(tp, s.setfilter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
	Duel.SetOperationInfo(0, CATEGORY_LEAVE_GRAVE, g, 1, 0, 0)
	if e:IsCostChecked() then
		e:GetHandler():RegisterFlagEffect(id, RESET_EVENT | RESET_TOFIELD | RESET_TURN_SET | RESET_PHASE | PHASE_END, 0, 0, 1)
	end
end
function s.setop(e, tp, eg, ep, ev, re, r, rp)
	local tc = Duel.GetFirstTarget()
	if tc:IsRelateToEffect(e) then
		Duel.SSet(tp, tc)
	end
end


ブルーアイズ・タイラント・ドラゴン
「青眼の白龍」+ドラゴン族モンスター
このカードは融合召喚及び以下の方法でのみEXデッキから特殊召喚できる。
●融合モンスターを装備した自分の「青眼の白龍」1体をリリースした場合にEXデッキから特殊召喚できる。
1:フィールドのこのカードは罠カードの効果を受けない。
2:このカードは相手モンスター全てに1回ずつ攻撃できる。
3:1ターンに1度、このカードが戦闘を行ったダメージステップ終了時、自分の墓地の罠カード1枚を対象として発動できる。
そのカードを自分フィールドにセットする。
-- ブルーアイズ・タイラント・ドラゴン
local CARD_ID_0 = 89631139 --青眼の白龍
local s, id, o = GetID()
function s.initial_effect(c)
	--fusion material
	c:EnableReviveLimit()
	aux.AddFusionProcCodeFun(c, CARD_ID_0, aux.FilterBoolFunction(Card.IsRace, RACE_DRAGON), 1, true, true)
	--special summon condition
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE + EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
	e1:SetCode(EFFECT_SPSUMMON_CONDITION)
	e1:SetRange(LOCATION_EXTRA)
	e1:SetValue(aux.fuslimit)
	c:RegisterEffect(e1)
	--special summon rule
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD)
	e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
	e2:SetCode(EFFECT_SPSUMMON_PROC)
	e2:SetRange(LOCATION_EXTRA)
	e2:SetCondition(s.sprcon)
	e2:SetTarget(s.sprtg)
	e2:SetOperation(s.sprop)
	c:RegisterEffect(e2)
	--immune
	local e3 = Effect.CreateEffect(c)
	e3:SetType(EFFECT_TYPE_SINGLE)
	e3:SetCode(EFFECT_IMMUNE_EFFECT)
	e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
	e3:SetRange(LOCATION_MZONE)
	e3:SetValue(s.efilter)
	c:RegisterEffect(e3)
	--attack all
	local e4 = Effect.CreateEffect(c)
	e4:SetType(EFFECT_TYPE_SINGLE)
	e4:SetCode(EFFECT_ATTACK_ALL)
	e4:SetValue(1)
	c:RegisterEffect(e4)
	--set trap
	local e5 = Effect.CreateEffect(c)
	e5:SetDescription(aux.Stringid(id, 0))
	e5:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
	e5:SetCode(EVENT_DAMAGE_STEP_END)
	e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
	e5:SetCondition(s.setcon)
	e5:SetTarget(s.settg)
	e5:SetOperation(s.setop)
	c:RegisterEffect(e5)
end
function s.ultimate_fusion_check(tp, sg, fc)
	return aux.gffcheck(sg, Card.IsFusionCode, CARD_ID_0, Card.IsRace, RACE_DRAGON)
end
function s.cfilter(c)
	return c:IsFaceup() and c:GetOriginalType() & TYPE_FUSION ~= 0
end
function s.sprfilter(c, tp, sc)
	local eqc = c:GetEquipGroup():FilterCount(s.cfilter, nil)
	return c:IsFusionCode(CARD_ID_0) and eqc > 0 and Duel.GetLocationCountFromEx(tp, tp, c, sc) > 0 and c:IsCanBeFusionMaterial(sc, SUMMON_TYPE_SPECIAL)
end
function s.sprcon(e, c)
	if c == nil then
		return true
	end
	local tp = c:GetControler()
	return Duel.CheckReleaseGroupEx(tp, s.sprfilter, 1, REASON_SPSUMMON, false, nil, tp, c)
end
function s.sprtg(e, tp, eg, ep, ev, re, r, rp, chk, c)
	local g = Duel.GetReleaseGroup(tp, false, REASON_SPSUMMON):Filter(s.sprfilter, nil, tp, c)
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_RELEASE)
	local tc = g:SelectUnselect(nil, tp, false, true, 1, 1)
	if tc then
		e:SetLabelObject(tc)
		return true
	else
		return false
	end
end
function s.sprop(e, tp, eg, ep, ev, re, r, rp, c)
	local tc = e:GetLabelObject()
	c:SetMaterial(Group.FromCards(tc))
	Duel.Release(tc, REASON_SPSUMMON)
end
function s.efilter(e, te)
	return te:IsActiveType(TYPE_TRAP)
end
function s.setcon(e, tp, eg, ep, ev, re, r, rp)
	return e:GetHandler():GetFlagEffect(id) == 0 and aux.dsercon(e, tp, eg, ep, ev, re, r, rp)
end
function s.setfilter(c)
	return c:IsType(TYPE_TRAP) and c:IsSSetable()
end
function s.settg(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
	if chkc then
		return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.setfilter(chkc)
	end
	if chk == 0 then
		return Duel.IsExistingTarget(s.setfilter, tp, LOCATION_GRAVE, 0, 1, nil)
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SET)
	local g = Duel.SelectTarget(tp, s.setfilter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
	Duel.SetOperationInfo(0, CATEGORY_LEAVE_GRAVE, g, 1, 0, 0)
	if e:IsCostChecked() then
		e:GetHandler():RegisterFlagEffect(id, RESET_EVENT | RESET_TOFIELD | RESET_TURN_SET | RESET_PHASE | PHASE_END, 0, 0, 1)
	end
end
function s.setop(e, tp, eg, ep, ev, re, r, rp)
	local tc = Duel.GetFirstTarget()
	if tc:IsRelateToEffect(e) then
		Duel.SSet(tp, tc)
	end
end

