name: ファントム・オブ・ユベル
card_text: 「ユベル」モンスター+攻撃力と守備力が0の悪魔族モンスター
  自分の手札・フィールド・墓地の上記のカードをデッキ・EXデッキに戻した場合のみ特殊召喚できる。
  このカードは融合素材にできない。
  このカード名の2の効果は1ターンに1度しか使用できない。
  1:このカードは戦闘では破壊されず、このカードの戦闘で発生する自分への戦闘ダメージは0になる。
  2:相手モンスターの効果が発動した時、このカードをリリースして発動できる。
  その効果は「相手は自身の手札・デッキ・フィールドの「ユベル」モンスター1体を破壊する」となる。
external_ids: local SETCARD_ID_0 = 0x1a5 --ユベル
  
lua: local SETCARD_ID_0 = 0x1a5 --ユベル
  local s, id, o = GetID()
  function s.initial_effect(c)
  	c:EnableReviveLimit()
  	aux.AddFusionProcFunFun(c, aux.FilterBoolFunction(Card.IsFusionSetCard, SETCARD_ID_0), s.ffilter, 1, true)
  	aux.AddContactFusionProcedure(c, s.cfilter, LOCATION_HAND + LOCATION_MZONE + LOCATION_GRAVE, 0, aux.ContactFusionSendToDeck(c))
  	--
  	local e0 = Effect.CreateEffect(c)
  	e0:SetType(EFFECT_TYPE_SINGLE)
  	e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e0:SetCode(EFFECT_SPSUMMON_CONDITION)
  	c:RegisterEffect(e0)
  	--
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE)
  	e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e1:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
  	e1:SetValue(1)
  	c:RegisterEffect(e1)
  	--
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
  	e2:SetValue(1)
  	c:RegisterEffect(e2)
  	local e3 = e2:Clone()
  	e3:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
  	c:RegisterEffect(e3)
  	--
  	local e4 = Effect.CreateEffect(c)
  	e4:SetDescription(aux.Stringid(id, 0))
  	e4:SetType(EFFECT_TYPE_QUICK_O)
  	e4:SetCode(EVENT_CHAINING)
  	e4:SetRange(LOCATION_MZONE)
  	e4:SetCountLimit(1, id)
  	e4:SetCondition(s.chcon)
  	e4:SetCost(s.chcost)
  	e4:SetTarget(s.chtg)
  	e4:SetOperation(s.chop)
  	c:RegisterEffect(e4)
  end
  function s.ffilter(c)
  	return c:IsRace(RACE_FIEND) and c:IsAttack(0) and c:IsDefense(0)
  end
  function s.cfilter(c)
  	return c:IsType(TYPE_MONSTER) and c:IsAbleToDeckOrExtraAsCost()
  end
  function s.chcon(e, tp, eg, ep, ev, re, r, rp)
  	return rp == 1 - tp and re:IsActiveType(TYPE_MONSTER)
  end
  function s.chcost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return e:GetHandler():IsReleasable()
  	end
  	Duel.Release(e:GetHandler(), REASON_COST)
  end
  function s.filter(c)
  	return c:IsType(TYPE_MONSTER) and c:IsSetCard(SETCARD_ID_0) and c:IsFaceupEx()
  end
  function s.chtg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(s.filter, rp, 0, LOCATION_HAND + LOCATION_MZONE + LOCATION_DECK, 1, e:GetHandler())
  	end
  end
  function s.chop(e, tp, eg, ep, ev, re, r, rp)
  	local g = Group.CreateGroup()
  	Duel.ChangeTargetCard(ev, g)
  	Duel.ChangeChainOperation(ev, s.repop)
  end
  function s.repop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Hint(HINT_SELECTMSG, 1 - tp, HINTMSG_DESTROY)
  	local g = Duel.SelectMatchingCard(1 - tp, s.filter, tp, 0, LOCATION_HAND + LOCATION_MZONE + LOCATION_DECK, 1, 1, nil)
  	if g:GetCount() > 0 then
  		Duel.Destroy(g, REASON_EFFECT)
  	end
  end
  
  
source_text: ファントム・オブ・ユベル
  「ユベル」モンスター+攻撃力と守備力が0の悪魔族モンスター
  自分の手札・フィールド・墓地の上記のカードをデッキ・EXデッキに戻した場合のみ特殊召喚できる。
  このカードは融合素材にできない。
  このカード名の2の効果は1ターンに1度しか使用できない。
  1:このカードは戦闘では破壊されず、このカードの戦闘で発生する自分への戦闘ダメージは0になる。
  2:相手モンスターの効果が発動した時、このカードをリリースして発動できる。
  その効果は「相手は自身の手札・デッキ・フィールドの「ユベル」モンスター1体を破壊する」となる。
target_text: -- ファントム・オブ・ユベル
  local SETCARD_ID_0 = 0x1a5 --ユベル
  local s, id, o = GetID()
  function s.initial_effect(c)
  	c:EnableReviveLimit()
  	aux.AddFusionProcFunFun(c, aux.FilterBoolFunction(Card.IsFusionSetCard, SETCARD_ID_0), s.ffilter, 1, true)
  	aux.AddContactFusionProcedure(c, s.cfilter, LOCATION_HAND + LOCATION_MZONE + LOCATION_GRAVE, 0, aux.ContactFusionSendToDeck(c))
  	--
  	local e0 = Effect.CreateEffect(c)
  	e0:SetType(EFFECT_TYPE_SINGLE)
  	e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e0:SetCode(EFFECT_SPSUMMON_CONDITION)
  	c:RegisterEffect(e0)
  	--
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE)
  	e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e1:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
  	e1:SetValue(1)
  	c:RegisterEffect(e1)
  	--
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
  	e2:SetValue(1)
  	c:RegisterEffect(e2)
  	local e3 = e2:Clone()
  	e3:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
  	c:RegisterEffect(e3)
  	--
  	local e4 = Effect.CreateEffect(c)
  	e4:SetDescription(aux.Stringid(id, 0))
  	e4:SetType(EFFECT_TYPE_QUICK_O)
  	e4:SetCode(EVENT_CHAINING)
  	e4:SetRange(LOCATION_MZONE)
  	e4:SetCountLimit(1, id)
  	e4:SetCondition(s.chcon)
  	e4:SetCost(s.chcost)
  	e4:SetTarget(s.chtg)
  	e4:SetOperation(s.chop)
  	c:RegisterEffect(e4)
  end
  function s.ffilter(c)
  	return c:IsRace(RACE_FIEND) and c:IsAttack(0) and c:IsDefense(0)
  end
  function s.cfilter(c)
  	return c:IsType(TYPE_MONSTER) and c:IsAbleToDeckOrExtraAsCost()
  end
  function s.chcon(e, tp, eg, ep, ev, re, r, rp)
  	return rp == 1 - tp and re:IsActiveType(TYPE_MONSTER)
  end
  function s.chcost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return e:GetHandler():IsReleasable()
  	end
  	Duel.Release(e:GetHandler(), REASON_COST)
  end
  function s.filter(c)
  	return c:IsType(TYPE_MONSTER) and c:IsSetCard(SETCARD_ID_0) and c:IsFaceupEx()
  end
  function s.chtg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(s.filter, rp, 0, LOCATION_HAND + LOCATION_MZONE + LOCATION_DECK, 1, e:GetHandler())
  	end
  end
  function s.chop(e, tp, eg, ep, ev, re, r, rp)
  	local g = Group.CreateGroup()
  	Duel.ChangeTargetCard(ev, g)
  	Duel.ChangeChainOperation(ev, s.repop)
  end
  function s.repop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Hint(HINT_SELECTMSG, 1 - tp, HINTMSG_DESTROY)
  	local g = Duel.SelectMatchingCard(1 - tp, s.filter, tp, 0, LOCATION_HAND + LOCATION_MZONE + LOCATION_DECK, 1, 1, nil)
  	if g:GetCount() > 0 then
  		Duel.Destroy(g, REASON_EFFECT)
  	end
  end
  
  