No.84
レベル11モンスター×2
このカードはX素材を2つ以上持っている自分のランク8~10の闇属性Xモンスターの上に重ねてX召喚する事もできる。
1:このカードの守備力は、自分フィールドのXモンスターのランクの合計×200アップする。
2:X素材を持っているこのカードがモンスターゾーンに存在する限り、相手が魔法・罠カードを発動する度に相手に600ダメージを与える。
3:1ターンに1度、このカードのX素材を1つ取り除いて発動できる。
このカードの守備力以下の守備力を持つ相手フィールドのモンスターを全て破壊する。
local s, id, o = GetID()
function s.initial_effect(c)
	--xyz summon
	aux.AddXyzProcedure(c, nil, 11, 2, s.ovfilter, aux.Stringid(id, 0), 2)
	c:EnableReviveLimit()
	--atk/def
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
	e1:SetRange(LOCATION_MZONE)
	e1:SetCode(EFFECT_UPDATE_DEFENSE)
	e1:SetValue(s.defval)
	c:RegisterEffect(e1)
	--damage
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
	e2:SetCode(EVENT_CHAINING)
	e2:SetRange(LOCATION_MZONE)
	e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
	e2:SetOperation(s.regop)
	c:RegisterEffect(e2)
	local e3 = Effect.CreateEffect(c)
	e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
	e3:SetCode(EVENT_CHAIN_SOLVED)
	e3:SetRange(LOCATION_MZONE)
	e3:SetCondition(s.damcon)
	e3:SetOperation(s.damop)
	c:RegisterEffect(e3)
	--destroy
	local e4 = Effect.CreateEffect(c)
	e4:SetDescription(aux.Stringid(id, 1))
	e4:SetCategory(CATEGORY_DESTROY)
	e4:SetType(EFFECT_TYPE_IGNITION)
	e4:SetRange(LOCATION_MZONE)
	e4:SetCountLimit(1)
	e4:SetCost(s.descost)
	e4:SetTarget(s.destg)
	e4:SetOperation(s.desop)
	c:RegisterEffect(e4)
end
aux.xyz_number[id] = 84
function s.ovfilter(c)
	local rk = c:GetRank()
	return c:IsFaceup() and c:GetOverlayCount() >= 2 and c:IsType(TYPE_XYZ) and c:IsAttribute(ATTRIBUTE_DARK) and rk >= 8 and rk <= 10
end
function s.defval(e, c)
	local g = Duel.GetMatchingGroup(Card.IsFaceup, c:GetControler(), LOCATION_MZONE, 0, nil)
	return g:GetSum(Card.GetRank) * 200
end
function s.regop(e, tp, eg, ep, ev, re, r, rp)
	if rp == tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then
		return
	end
	e:GetHandler():RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD - RESET_TURN_SET + RESET_CHAIN, 0, 1)
end
function s.damcon(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	return c:GetOverlayCount() > 0 and ep ~= tp and c:GetFlagEffect(id) ~= 0 and re:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function s.damop(e, tp, eg, ep, ev, re, r, rp)
	Duel.Hint(HINT_CARD, 0, id)
	Duel.Damage(1 - tp, 600, REASON_EFFECT)
end
function s.descost(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.desfilter(c, def)
	return c:IsFaceup() and c:IsDefenseBelow(def)
end
function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
	local c = e:GetHandler()
	if chk == 0 then
		return Duel.IsExistingMatchingCard(s.desfilter, tp, 0, LOCATION_MZONE, 1, nil, c:GetDefense())
	end
	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil, c:GetDefense())
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
end
function s.desop(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	if not c:IsRelateToEffect(e) or c:IsFacedown() then
		return
	end
	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil, c:GetDefense())
	Duel.Destroy(g, REASON_EFFECT)
end


No.84
レベル11モンスター×2
このカードはX素材を2つ以上持っている自分のランク8~10の闇属性Xモンスターの上に重ねてX召喚する事もできる。
1:このカードの守備力は、自分フィールドのXモンスターのランクの合計×200アップする。
2:X素材を持っているこのカードがモンスターゾーンに存在する限り、相手が魔法・罠カードを発動する度に相手に600ダメージを与える。
3:1ターンに1度、このカードのX素材を1つ取り除いて発動できる。
このカードの守備力以下の守備力を持つ相手フィールドのモンスターを全て破壊する。
-- No.84
local s, id, o = GetID()
function s.initial_effect(c)
	--xyz summon
	aux.AddXyzProcedure(c, nil, 11, 2, s.ovfilter, aux.Stringid(id, 0), 2)
	c:EnableReviveLimit()
	--atk/def
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
	e1:SetRange(LOCATION_MZONE)
	e1:SetCode(EFFECT_UPDATE_DEFENSE)
	e1:SetValue(s.defval)
	c:RegisterEffect(e1)
	--damage
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
	e2:SetCode(EVENT_CHAINING)
	e2:SetRange(LOCATION_MZONE)
	e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
	e2:SetOperation(s.regop)
	c:RegisterEffect(e2)
	local e3 = Effect.CreateEffect(c)
	e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
	e3:SetCode(EVENT_CHAIN_SOLVED)
	e3:SetRange(LOCATION_MZONE)
	e3:SetCondition(s.damcon)
	e3:SetOperation(s.damop)
	c:RegisterEffect(e3)
	--destroy
	local e4 = Effect.CreateEffect(c)
	e4:SetDescription(aux.Stringid(id, 1))
	e4:SetCategory(CATEGORY_DESTROY)
	e4:SetType(EFFECT_TYPE_IGNITION)
	e4:SetRange(LOCATION_MZONE)
	e4:SetCountLimit(1)
	e4:SetCost(s.descost)
	e4:SetTarget(s.destg)
	e4:SetOperation(s.desop)
	c:RegisterEffect(e4)
end
aux.xyz_number[id] = 84
function s.ovfilter(c)
	local rk = c:GetRank()
	return c:IsFaceup() and c:GetOverlayCount() >= 2 and c:IsType(TYPE_XYZ) and c:IsAttribute(ATTRIBUTE_DARK) and rk >= 8 and rk <= 10
end
function s.defval(e, c)
	local g = Duel.GetMatchingGroup(Card.IsFaceup, c:GetControler(), LOCATION_MZONE, 0, nil)
	return g:GetSum(Card.GetRank) * 200
end
function s.regop(e, tp, eg, ep, ev, re, r, rp)
	if rp == tp or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then
		return
	end
	e:GetHandler():RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD - RESET_TURN_SET + RESET_CHAIN, 0, 1)
end
function s.damcon(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	return c:GetOverlayCount() > 0 and ep ~= tp and c:GetFlagEffect(id) ~= 0 and re:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function s.damop(e, tp, eg, ep, ev, re, r, rp)
	Duel.Hint(HINT_CARD, 0, id)
	Duel.Damage(1 - tp, 600, REASON_EFFECT)
end
function s.descost(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.desfilter(c, def)
	return c:IsFaceup() and c:IsDefenseBelow(def)
end
function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
	local c = e:GetHandler()
	if chk == 0 then
		return Duel.IsExistingMatchingCard(s.desfilter, tp, 0, LOCATION_MZONE, 1, nil, c:GetDefense())
	end
	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil, c:GetDefense())
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
end
function s.desop(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	if not c:IsRelateToEffect(e) or c:IsFacedown() then
		return
	end
	local g = Duel.GetMatchingGroup(s.desfilter, tp, 0, LOCATION_MZONE, nil, c:GetDefense())
	Duel.Destroy(g, REASON_EFFECT)
end

