name: Number
card_text: 2 Xyz Monsters with the same Rank
  (This card's original Rank is always treated as 1.)
  Gains ATK/DEF equal to the combined Ranks of all Xyz Monsters you control and in your opponent's GY x 500. Your opponent's monsters cannot target monsters for attacks, except this one, also your opponent cannot target other cards on the field with card effects. Once per turn, when your opponent activates a card or effect on the field (Quick Effect): You can detach 1 material from this card; take control of 1 monster your opponent controls, also for the rest of this turn, this card cannot be destroyed by battle or card effects.
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--xyz summon
  	aux.AddXyzProcedureLevelFree(c, s.mfilter, s.xyzcheck, 2, 2)
  	c:EnableReviveLimit()
  	--atk def up
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE)
  	e1:SetCode(EFFECT_UPDATE_ATTACK)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e1:SetValue(s.atkval)
  	c:RegisterEffect(e1)
  	local e2 = e1:Clone()
  	e2:SetCode(EFFECT_UPDATE_DEFENSE)
  	c:RegisterEffect(e2)
  	--atk limit
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD)
  	e3:SetRange(LOCATION_MZONE)
  	e3:SetTargetRange(0, LOCATION_MZONE)
  	e3:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
  	e3:SetValue(s.atlimit)
  	c:RegisterEffect(e3)
  	--cannot be target
  	local e4 = Effect.CreateEffect(c)
  	e4:SetType(EFFECT_TYPE_FIELD)
  	e4:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
  	e4:SetRange(LOCATION_MZONE)
  	e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE + EFFECT_FLAG_SET_AVAILABLE)
  	e4:SetTargetRange(LOCATION_ONFIELD, LOCATION_ONFIELD)
  	e4:SetTarget(s.tgtg)
  	e4:SetValue(aux.tgoval)
  	c:RegisterEffect(e4)
  	--control
  	local e5 = Effect.CreateEffect(c)
  	e5:SetDescription(aux.Stringid(id, 1))
  	e5:SetCategory(CATEGORY_CONTROL)
  	e5:SetType(EFFECT_TYPE_QUICK_O)
  	e5:SetCode(EVENT_CHAINING)
  	e5:SetRange(LOCATION_MZONE)
  	e5:SetCountLimit(1)
  	e5:SetCondition(s.ctcon)
  	e5:SetCost(s.ctcost)
  	e5:SetTarget(s.cttg)
  	e5:SetOperation(s.ctop)
  	c:RegisterEffect(e5)
  end
  aux.xyz_number[id] = 0
  function s.mfilter(c, xyzc)
  	return c:IsXyzType(TYPE_XYZ)
  end
  function s.xyzcheck(g)
  	return g:GetClassCount(Card.GetRank) == 1
  end
  function s.atkfilter(c)
  	return c:IsFaceupEx() and c:IsType(TYPE_XYZ)
  end
  function s.atkval(e, c)
  	local g = Duel.GetMatchingGroup(s.atkfilter, c:GetControler(), LOCATION_MZONE, LOCATION_GRAVE, nil)
  	return g:GetSum(Card.GetRank) * 500
  end
  function s.atlimit(e, c)
  	return c ~= e:GetHandler()
  end
  function s.tgtg(e, c)
  	return c ~= e:GetHandler()
  end
  function s.ctcon(e, tp, eg, ep, ev, re, r, rp)
  	return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and ep == 1 - tp and (re:GetActivateLocation() & LOCATION_ONFIELD) > 0
  end
  function s.ctcost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return e:GetHandler():CheckRemoveOverlayCard(tp, 1, REASON_COST)
  	end
  	e:GetHandler():RemoveOverlayCard(tp, 1, 1, REASON_COST)
  end
  function s.tgfilter(c)
  	return c:IsControlerCanBeChanged()
  end
  function s.cttg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(s.tgfilter, tp, 0, LOCATION_MZONE, 1, nil)
  	end
  	Duel.Hint(HINT_OPSELECTED, 1 - tp, e:GetDescription())
  	Duel.SetOperationInfo(0, CATEGORY_CONTROL, nil, 1, 1 - tp, LOCATION_MZONE)
  end
  function s.ctop(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_CONTROL)
  	local g = Duel.SelectMatchingCard(tp, s.tgfilter, tp, 0, LOCATION_MZONE, 1, 1, nil)
  	local tc = g:GetFirst()
  	if tc then
  		Duel.HintSelection(g)
  		Duel.GetControl(tc, tp)
  	end
  	if c:IsRelateToChain() then
  		local e1 = Effect.CreateEffect(c)
  		e1:SetType(EFFECT_TYPE_SINGLE)
  		e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
  		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
  		e1:SetValue(1)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END)
  		c:RegisterEffect(e1)
  		local e2 = e1:Clone()
  		e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
  		c:RegisterEffect(e2)
  	end
  end
  
  
source_text: Number
  2 Xyz Monsters with the same Rank
  (This card's original Rank is always treated as 1.)
  Gains ATK/DEF equal to the combined Ranks of all Xyz Monsters you control and in your opponent's GY x 500. Your opponent's monsters cannot target monsters for attacks, except this one, also your opponent cannot target other cards on the field with card effects. Once per turn, when your opponent activates a card or effect on the field (Quick Effect): You can detach 1 material from this card; take control of 1 monster your opponent controls, also for the rest of this turn, this card cannot be destroyed by battle or card effects.
target_text: -- Number
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--xyz summon
  	aux.AddXyzProcedureLevelFree(c, s.mfilter, s.xyzcheck, 2, 2)
  	c:EnableReviveLimit()
  	--atk def up
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE)
  	e1:SetCode(EFFECT_UPDATE_ATTACK)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e1:SetValue(s.atkval)
  	c:RegisterEffect(e1)
  	local e2 = e1:Clone()
  	e2:SetCode(EFFECT_UPDATE_DEFENSE)
  	c:RegisterEffect(e2)
  	--atk limit
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD)
  	e3:SetRange(LOCATION_MZONE)
  	e3:SetTargetRange(0, LOCATION_MZONE)
  	e3:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
  	e3:SetValue(s.atlimit)
  	c:RegisterEffect(e3)
  	--cannot be target
  	local e4 = Effect.CreateEffect(c)
  	e4:SetType(EFFECT_TYPE_FIELD)
  	e4:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
  	e4:SetRange(LOCATION_MZONE)
  	e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE + EFFECT_FLAG_SET_AVAILABLE)
  	e4:SetTargetRange(LOCATION_ONFIELD, LOCATION_ONFIELD)
  	e4:SetTarget(s.tgtg)
  	e4:SetValue(aux.tgoval)
  	c:RegisterEffect(e4)
  	--control
  	local e5 = Effect.CreateEffect(c)
  	e5:SetDescription(aux.Stringid(id, 1))
  	e5:SetCategory(CATEGORY_CONTROL)
  	e5:SetType(EFFECT_TYPE_QUICK_O)
  	e5:SetCode(EVENT_CHAINING)
  	e5:SetRange(LOCATION_MZONE)
  	e5:SetCountLimit(1)
  	e5:SetCondition(s.ctcon)
  	e5:SetCost(s.ctcost)
  	e5:SetTarget(s.cttg)
  	e5:SetOperation(s.ctop)
  	c:RegisterEffect(e5)
  end
  aux.xyz_number[id] = 0
  function s.mfilter(c, xyzc)
  	return c:IsXyzType(TYPE_XYZ)
  end
  function s.xyzcheck(g)
  	return g:GetClassCount(Card.GetRank) == 1
  end
  function s.atkfilter(c)
  	return c:IsFaceupEx() and c:IsType(TYPE_XYZ)
  end
  function s.atkval(e, c)
  	local g = Duel.GetMatchingGroup(s.atkfilter, c:GetControler(), LOCATION_MZONE, LOCATION_GRAVE, nil)
  	return g:GetSum(Card.GetRank) * 500
  end
  function s.atlimit(e, c)
  	return c ~= e:GetHandler()
  end
  function s.tgtg(e, c)
  	return c ~= e:GetHandler()
  end
  function s.ctcon(e, tp, eg, ep, ev, re, r, rp)
  	return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and ep == 1 - tp and (re:GetActivateLocation() & LOCATION_ONFIELD) > 0
  end
  function s.ctcost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return e:GetHandler():CheckRemoveOverlayCard(tp, 1, REASON_COST)
  	end
  	e:GetHandler():RemoveOverlayCard(tp, 1, 1, REASON_COST)
  end
  function s.tgfilter(c)
  	return c:IsControlerCanBeChanged()
  end
  function s.cttg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(s.tgfilter, tp, 0, LOCATION_MZONE, 1, nil)
  	end
  	Duel.Hint(HINT_OPSELECTED, 1 - tp, e:GetDescription())
  	Duel.SetOperationInfo(0, CATEGORY_CONTROL, nil, 1, 1 - tp, LOCATION_MZONE)
  end
  function s.ctop(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_CONTROL)
  	local g = Duel.SelectMatchingCard(tp, s.tgfilter, tp, 0, LOCATION_MZONE, 1, 1, nil)
  	local tc = g:GetFirst()
  	if tc then
  		Duel.HintSelection(g)
  		Duel.GetControl(tc, tp)
  	end
  	if c:IsRelateToChain() then
  		local e1 = Effect.CreateEffect(c)
  		e1:SetType(EFFECT_TYPE_SINGLE)
  		e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
  		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
  		e1:SetValue(1)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END)
  		c:RegisterEffect(e1)
  		local e2 = e1:Clone()
  		e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
  		c:RegisterEffect(e2)
  	end
  end
  
  