Infernity
When a monster you control, except "Infernity Avenger", is destroyed by battle with an opponent's monster and sent to the Graveyard, while you have no cards in your hand, you can Special Summon this card from your Graveyard. In that case, the Level of this card is equal to the Level of your destroyed monster.
local s, id, o = GetID()
function s.initial_effect(c)
	--special summon
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 0))
	e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
	e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
	e1:SetCode(EVENT_BATTLE_DESTROYED)
	e1:SetRange(LOCATION_GRAVE)
	e1:SetCondition(s.spcon)
	e1:SetTarget(s.sptg)
	e1:SetOperation(s.spop)
	c:RegisterEffect(e1)
end
function s.filter(c, tp)
	return c:IsLocation(LOCATION_GRAVE) and c:IsReason(REASON_BATTLE) and c:GetLevel() > 0 and c:IsControler(tp) and c:IsPreviousControler(tp) and not c:IsCode(id)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
	local g = eg:Filter(s.filter, nil, tp)
	local tc = g:GetFirst()
	if tc then
		e:SetLabel(tc:GetLevel())
		return Duel.GetFieldGroupCount(tp, LOCATION_HAND, 0) == 0
	else
		return false
	end
end
function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0 and e:GetHandler():IsCanBeSpecialSummoned(e, 0, tp, false, false)
	end
	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, e:GetHandler(), 1, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	if Duel.GetLocationCount(tp, LOCATION_MZONE) <= 0 then
		return
	end
	if Duel.GetFieldGroupCount(tp, LOCATION_HAND, 0) ~= 0 or not c:IsRelateToEffect(e) then
		return
	end
	Duel.SpecialSummonStep(c, 0, tp, tp, false, false, POS_FACEUP)
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetCode(EFFECT_CHANGE_LEVEL)
	e1:SetValue(e:GetLabel())
	e1:SetReset(RESET_EVENT + RESETS_STANDARD)
	c:RegisterEffect(e1)
	Duel.SpecialSummonComplete()
end


Infernity
When a monster you control, except "Infernity Avenger", is destroyed by battle with an opponent's monster and sent to the Graveyard, while you have no cards in your hand, you can Special Summon this card from your Graveyard. In that case, the Level of this card is equal to the Level of your destroyed monster.
-- Infernity
local s, id, o = GetID()
function s.initial_effect(c)
	--special summon
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 0))
	e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
	e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
	e1:SetCode(EVENT_BATTLE_DESTROYED)
	e1:SetRange(LOCATION_GRAVE)
	e1:SetCondition(s.spcon)
	e1:SetTarget(s.sptg)
	e1:SetOperation(s.spop)
	c:RegisterEffect(e1)
end
function s.filter(c, tp)
	return c:IsLocation(LOCATION_GRAVE) and c:IsReason(REASON_BATTLE) and c:GetLevel() > 0 and c:IsControler(tp) and c:IsPreviousControler(tp) and not c:IsCode(id)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
	local g = eg:Filter(s.filter, nil, tp)
	local tc = g:GetFirst()
	if tc then
		e:SetLabel(tc:GetLevel())
		return Duel.GetFieldGroupCount(tp, LOCATION_HAND, 0) == 0
	else
		return false
	end
end
function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0 and e:GetHandler():IsCanBeSpecialSummoned(e, 0, tp, false, false)
	end
	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, e:GetHandler(), 1, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	if Duel.GetLocationCount(tp, LOCATION_MZONE) <= 0 then
		return
	end
	if Duel.GetFieldGroupCount(tp, LOCATION_HAND, 0) ~= 0 or not c:IsRelateToEffect(e) then
		return
	end
	Duel.SpecialSummonStep(c, 0, tp, tp, false, false, POS_FACEUP)
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetCode(EFFECT_CHANGE_LEVEL)
	e1:SetValue(e:GetLabel())
	e1:SetReset(RESET_EVENT + RESETS_STANDARD)
	c:RegisterEffect(e1)
	Duel.SpecialSummonComplete()
end

