pet-companion-back/Services/PetClassService.cs

48 lines
1.5 KiB
C#

using pet_companion_api.Models;
using pet_companion_api.Repositories;
namespace pet_companion_api.Services
{
public class PetClassService
{
private readonly PetClassRepository _petClassRepository;
public PetClassService(PetClassRepository petClassRepository)
{
_petClassRepository = petClassRepository;
}
public IEnumerable<PetClassInfo> 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;
}
}
}