function imp:choose_target() -- Si no te ganes de fer res, no moure if self.mood==self.moods.stop then return end -- S'ha acabat el temps per a arribar a un target if self.timers.target <= 0 then -- Canviar a moviment lliure self:free_movement() -- Reinicialitzar el patró de moviment i el cooldown self:reset_mood_timer() self:path_reset() -- Seleccionar el següent target self:next_target() end end function imp:next_target() if self.move_type==self.move_types.free then self:free_next_target() elseif self.move_type==self.move_types.pattern then self:pattern_next_target() elseif self.move_type==self.move_types.super then self:super_next_target() end self:reset_target_timer() end function imp:free_next_target() --OK if DEBUG_FN_NAME then print("free_next_target") end ---- Abans se seleccionava un target aleatoriament ... -- local new_point = math.random(#self.hot_points) -- if self.target == self.hot_points[new_point] then -- new_point = ((new_point+1)%#self.hot_points)+1 -- end -- self.old_target = self.target -- self.target=self.hot_points[new_point] ---- ... ara s'intenta tornar al moviment per patró self:pattern_recovery() end function imp:pattern_next_target() if not DEBUG_FN_NAME then print("pattern_next_target") end local next_target = self.hot_points[self.pattern.target] print(next_target.id) self.target = next_target end