using PetCompanion.Models; using PetCompanion.Repositories; namespace PetCompanion.Services { public class PetClassService { private readonly PetClassRepository _petClassRepository; public PetClassService(PetClassRepository petClassRepository) { _petClassRepository = petClassRepository; } public IEnumerable GetAllPetClasses() { return _petClassRepository.GetAllPetClassesInfo(); } public Resources CalculateGatheredResources(PetStats stats, int petLevel, PetActionGather action, DateTime actionSince) { var timeElapsed = (DateTime.UtcNow - actionSince).TotalHours; var resources = new Resources(); if (action == PetActionGather.IDLE) return resources; var baseRate = timeElapsed * 0.5 + petLevel; // Base rate per hour resources.Junk = (int)(baseRate * 2); switch (action) { case PetActionGather.GATHERING_WISDOM: resources.Wisdom = (int)(baseRate * (stats.Intelligence * 2)); break; case PetActionGather.GATHERING_GOLD: resources.Gold = (int)(baseRate * (stats.Charisma * 2)); break; case PetActionGather.GATHERING_FOOD: resources.Food = (int)(baseRate * (stats.Strength * 1.5)); break; } return resources; } } }