name: 覇王黒竜オッドアイズ・リベリオン・ドラゴン
card_text: 【Pスケール:青4/赤4】
  1:1ターンに1度、もう片方の自分のPゾーンにカードが存在しない場合に発動できる。
  デッキからPモンスター1体を選び、自分のPゾーンに置く。
  【モンスター効果】
  ドラゴン族レベル7モンスター×2
  レベル7がP召喚可能な場合にEXデッキの表側表示のこのカードはP召喚できる。
  1:このカードがXモンスターを素材としてX召喚に成功した場合に発動する。
  相手フィールドのレベル7以下のモンスターを全て破壊し、破壊した数×1000ダメージを相手に与える。
  このターン、このカードは1度のバトルフェイズ中に3回攻撃できる。
  2:モンスターゾーンのこのカードが戦闘・効果で破壊された場合に発動できる。
  自分のPゾーンのカードを全て破壊し、このカードを自分のPゾーンに置く。
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--xyz summon
  	aux.AddXyzProcedure(c, aux.FilterBoolFunction(Card.IsRace, RACE_DRAGON), 7, 2)
  	c:EnableReviveLimit()
  	--pendulum summon
  	aux.EnablePendulumAttribute(c, false)
  	--pendulum set
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetType(EFFECT_TYPE_IGNITION)
  	e1:SetRange(LOCATION_PZONE)
  	e1:SetCountLimit(1)
  	e1:SetTarget(s.pctg)
  	e1:SetOperation(s.pcop)
  	c:RegisterEffect(e1)
  	--destroy
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 1))
  	e2:SetCategory(CATEGORY_DESTROY + CATEGORY_DAMAGE)
  	e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_F)
  	e2:SetCode(EVENT_SPSUMMON_SUCCESS)
  	e2:SetCondition(s.descon)
  	e2:SetTarget(s.destg)
  	e2:SetOperation(s.desop)
  	c:RegisterEffect(e2)
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_SINGLE)
  	e3:SetCode(EFFECT_MATERIAL_CHECK)
  	e3:SetValue(s.valcheck)
  	e3:SetLabelObject(e2)
  	c:RegisterEffect(e3)
  	--pendulum
  	local e4 = Effect.CreateEffect(c)
  	e4:SetDescription(aux.Stringid(id, 2))
  	e4:SetCategory(CATEGORY_DESTROY)
  	e4:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e4:SetCode(EVENT_DESTROYED)
  	e4:SetProperty(EFFECT_FLAG_DELAY)
  	e4:SetCondition(s.pencon)
  	e4:SetTarget(s.pentg)
  	e4:SetOperation(s.penop)
  	c:RegisterEffect(e4)
  end
  s.pendulum_level = 7
  function s.pcfilter(c)
  	return c:IsType(TYPE_PENDULUM) and not c:IsForbidden()
  end
  function s.pctg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return (Duel.CheckLocation(tp, LOCATION_PZONE, 0) or Duel.CheckLocation(tp, LOCATION_PZONE, 1)) and Duel.IsExistingMatchingCard(s.pcfilter, tp, LOCATION_DECK, 0, 1, nil)
  	end
  end
  function s.pcop(e, tp, eg, ep, ev, re, r, rp)
  	if not Duel.CheckLocation(tp, LOCATION_PZONE, 0) and not Duel.CheckLocation(tp, LOCATION_PZONE, 1) then
  		return
  	end
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_TOFIELD)
  	local g = Duel.SelectMatchingCard(tp, s.pcfilter, tp, LOCATION_DECK, 0, 1, 1, nil)
  	if g:GetCount() > 0 then
  		Duel.MoveToField(g:GetFirst(), tp, tp, LOCATION_PZONE, POS_FACEUP, true)
  	end
  end
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and e:GetLabel() == 1
  end
  function s.desfilter(c)
  	return c:IsFaceup() and c:IsLevelBelow(7)
  end
  function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil)
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
  	Duel.SetOperationInfo(0, CATEGORY_DAMAGE, nil, 0, 1 - tp, g:GetCount() * 1000)
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil)
  	local ct = Duel.Destroy(g, REASON_EFFECT)
  	if ct > 0 then
  		Duel.Damage(1 - tp, ct * 1000, REASON_EFFECT)
  	end
  	local c = e:GetHandler()
  	if c:IsRelateToEffect(e) then
  		local e1 = Effect.CreateEffect(c)
  		e1:SetType(EFFECT_TYPE_SINGLE)
  		e1:SetCode(EFFECT_EXTRA_ATTACK)
  		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
  		e1:SetValue(2)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END)
  		c:RegisterEffect(e1)
  	end
  end
  function s.valcheck(e, c)
  	local g = c:GetMaterial()
  	if g:IsExists(Card.IsType, 1, nil, TYPE_XYZ) then
  		e:GetLabelObject():SetLabel(1)
  	else
  		e:GetLabelObject():SetLabel(0)
  	end
  end
  function s.pencon(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	return bit.band(r, REASON_EFFECT + REASON_BATTLE) ~= 0 and c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
  end
  function s.pentg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.GetFieldGroupCount(tp, LOCATION_PZONE, 0) > 0
  	end
  	local g = Duel.GetFieldGroup(tp, LOCATION_PZONE, 0)
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
  end
  function s.penop(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetFieldGroup(tp, LOCATION_PZONE, 0)
  	if Duel.Destroy(g, REASON_EFFECT) ~= 0 and e:GetHandler():IsRelateToEffect(e) then
  		Duel.MoveToField(e:GetHandler(), tp, tp, LOCATION_PZONE, POS_FACEUP, true)
  	end
  end
  
  
source_text: 覇王黒竜オッドアイズ・リベリオン・ドラゴン
  【Pスケール:青4/赤4】
  1:1ターンに1度、もう片方の自分のPゾーンにカードが存在しない場合に発動できる。
  デッキからPモンスター1体を選び、自分のPゾーンに置く。
  【モンスター効果】
  ドラゴン族レベル7モンスター×2
  レベル7がP召喚可能な場合にEXデッキの表側表示のこのカードはP召喚できる。
  1:このカードがXモンスターを素材としてX召喚に成功した場合に発動する。
  相手フィールドのレベル7以下のモンスターを全て破壊し、破壊した数×1000ダメージを相手に与える。
  このターン、このカードは1度のバトルフェイズ中に3回攻撃できる。
  2:モンスターゾーンのこのカードが戦闘・効果で破壊された場合に発動できる。
  自分のPゾーンのカードを全て破壊し、このカードを自分のPゾーンに置く。
target_text: -- 覇王黒竜オッドアイズ・リベリオン・ドラゴン
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--xyz summon
  	aux.AddXyzProcedure(c, aux.FilterBoolFunction(Card.IsRace, RACE_DRAGON), 7, 2)
  	c:EnableReviveLimit()
  	--pendulum summon
  	aux.EnablePendulumAttribute(c, false)
  	--pendulum set
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetType(EFFECT_TYPE_IGNITION)
  	e1:SetRange(LOCATION_PZONE)
  	e1:SetCountLimit(1)
  	e1:SetTarget(s.pctg)
  	e1:SetOperation(s.pcop)
  	c:RegisterEffect(e1)
  	--destroy
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 1))
  	e2:SetCategory(CATEGORY_DESTROY + CATEGORY_DAMAGE)
  	e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_F)
  	e2:SetCode(EVENT_SPSUMMON_SUCCESS)
  	e2:SetCondition(s.descon)
  	e2:SetTarget(s.destg)
  	e2:SetOperation(s.desop)
  	c:RegisterEffect(e2)
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_SINGLE)
  	e3:SetCode(EFFECT_MATERIAL_CHECK)
  	e3:SetValue(s.valcheck)
  	e3:SetLabelObject(e2)
  	c:RegisterEffect(e3)
  	--pendulum
  	local e4 = Effect.CreateEffect(c)
  	e4:SetDescription(aux.Stringid(id, 2))
  	e4:SetCategory(CATEGORY_DESTROY)
  	e4:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e4:SetCode(EVENT_DESTROYED)
  	e4:SetProperty(EFFECT_FLAG_DELAY)
  	e4:SetCondition(s.pencon)
  	e4:SetTarget(s.pentg)
  	e4:SetOperation(s.penop)
  	c:RegisterEffect(e4)
  end
  s.pendulum_level = 7
  function s.pcfilter(c)
  	return c:IsType(TYPE_PENDULUM) and not c:IsForbidden()
  end
  function s.pctg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return (Duel.CheckLocation(tp, LOCATION_PZONE, 0) or Duel.CheckLocation(tp, LOCATION_PZONE, 1)) and Duel.IsExistingMatchingCard(s.pcfilter, tp, LOCATION_DECK, 0, 1, nil)
  	end
  end
  function s.pcop(e, tp, eg, ep, ev, re, r, rp)
  	if not Duel.CheckLocation(tp, LOCATION_PZONE, 0) and not Duel.CheckLocation(tp, LOCATION_PZONE, 1) then
  		return
  	end
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_TOFIELD)
  	local g = Duel.SelectMatchingCard(tp, s.pcfilter, tp, LOCATION_DECK, 0, 1, 1, nil)
  	if g:GetCount() > 0 then
  		Duel.MoveToField(g:GetFirst(), tp, tp, LOCATION_PZONE, POS_FACEUP, true)
  	end
  end
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and e:GetLabel() == 1
  end
  function s.desfilter(c)
  	return c:IsFaceup() and c:IsLevelBelow(7)
  end
  function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil)
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
  	Duel.SetOperationInfo(0, CATEGORY_DAMAGE, nil, 0, 1 - tp, g:GetCount() * 1000)
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil)
  	local ct = Duel.Destroy(g, REASON_EFFECT)
  	if ct > 0 then
  		Duel.Damage(1 - tp, ct * 1000, REASON_EFFECT)
  	end
  	local c = e:GetHandler()
  	if c:IsRelateToEffect(e) then
  		local e1 = Effect.CreateEffect(c)
  		e1:SetType(EFFECT_TYPE_SINGLE)
  		e1:SetCode(EFFECT_EXTRA_ATTACK)
  		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
  		e1:SetValue(2)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END)
  		c:RegisterEffect(e1)
  	end
  end
  function s.valcheck(e, c)
  	local g = c:GetMaterial()
  	if g:IsExists(Card.IsType, 1, nil, TYPE_XYZ) then
  		e:GetLabelObject():SetLabel(1)
  	else
  		e:GetLabelObject():SetLabel(0)
  	end
  end
  function s.pencon(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	return bit.band(r, REASON_EFFECT + REASON_BATTLE) ~= 0 and c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
  end
  function s.pentg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.GetFieldGroupCount(tp, LOCATION_PZONE, 0) > 0
  	end
  	local g = Duel.GetFieldGroup(tp, LOCATION_PZONE, 0)
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
  end
  function s.penop(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetFieldGroup(tp, LOCATION_PZONE, 0)
  	if Duel.Destroy(g, REASON_EFFECT) ~= 0 and e:GetHandler():IsRelateToEffect(e) then
  		Duel.MoveToField(e:GetHandler(), tp, tp, LOCATION_PZONE, POS_FACEUP, true)
  	end
  end
  
  