compare these two function implementation: function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
	if chkc then return chkc:islocation(location_mzone) and chkc:iscontroler(1-tp) end
	if chk==0 then return NAME_1.isexistingtarget(nil,tp,0,location_mzone,1,nil) end
	NAME_1.hint(hint_selectmsg,tp,hintmsg_target)
	local g=NAME_1.selecttarget(tp,nil,tp,0,location_mzone,1,1,nil)
	NAME_1.settargetcard(g:getfirst()) -- set the target card for proper registration
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
	if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) end
	if chk==0 then return NAME_1.IsExistingTarget(nil,tp,0,LOCATION_MZONE,1,nil) end
	NAME_1.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
	local g=NAME_1.SelectTarget(tp,nil,tp,0,LOCATION_MZONE,1,1,nil)
end