Mist
Cannot declare an attack unless you return 1 card you control to the hand.
local s, id, o = GetID()
function s.initial_effect(c)
	--attack cost
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetCode(EFFECT_ATTACK_COST)
	e1:SetCost(s.atcost)
	e1:SetOperation(s.atop)
	c:RegisterEffect(e1)
end
function s.atcost(e, c, tp)
	return Duel.IsExistingMatchingCard(Card.IsAbleToHandAsCost, tp, LOCATION_ONFIELD, 0, 1, e:GetHandler())
end
function s.atop(e, tp, eg, ep, ev, re, r, rp)
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_RTOHAND)
	local g = Duel.SelectMatchingCard(tp, Card.IsAbleToHandAsCost, tp, LOCATION_ONFIELD, 0, 1, 1, e:GetHandler())
	Duel.SendtoHand(g, nil, REASON_COST)
end


Mist
Cannot declare an attack unless you return 1 card you control to the hand.
-- Mist
local s, id, o = GetID()
function s.initial_effect(c)
	--attack cost
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetCode(EFFECT_ATTACK_COST)
	e1:SetCost(s.atcost)
	e1:SetOperation(s.atop)
	c:RegisterEffect(e1)
end
function s.atcost(e, c, tp)
	return Duel.IsExistingMatchingCard(Card.IsAbleToHandAsCost, tp, LOCATION_ONFIELD, 0, 1, e:GetHandler())
end
function s.atop(e, tp, eg, ep, ev, re, r, rp)
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_RTOHAND)
	local g = Duel.SelectMatchingCard(tp, Card.IsAbleToHandAsCost, tp, LOCATION_ONFIELD, 0, 1, 1, e:GetHandler())
	Duel.SendtoHand(g, nil, REASON_COST)
end

