57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using PetCompanion.Models.Enums;
|
|
|
|
namespace PetCompanion.Models
|
|
{
|
|
public class Pet
|
|
{
|
|
[Key]
|
|
public string Id { get; set; }
|
|
public string Name { get; set; }
|
|
public PetClass Class { get; set; }
|
|
public PetStats Stats { get; set; }
|
|
public Resources Resources { get; set; }
|
|
public Inventory Inventory { get; set; }
|
|
public int Level { get; set; }
|
|
public int Experience { get; set; }
|
|
public int Health { get; set; }
|
|
public int MaxHealth { get; set; }
|
|
public string UserId { get; set; }
|
|
public bool IsDead { get; set; }
|
|
|
|
public PetActionGather PetGatherAction { get; set; }
|
|
public DateTime GatherActionSince { get; set; }
|
|
|
|
public PetBasicAction PetBasicAction { get; set; }
|
|
public DateTime BasicActionCooldown { get; set; }
|
|
|
|
public Dictionary<EquipmentSlot, EquipableItem> Equipment { get; set; } = new();
|
|
|
|
public Pet()
|
|
{
|
|
foreach (EquipmentSlot slot in Enum.GetValues(typeof(EquipmentSlot)))
|
|
{
|
|
Equipment[slot] = null;
|
|
}
|
|
}
|
|
|
|
public void IncrementIntelligence(int amount)
|
|
{
|
|
var newValue = Stats.Intelligence + amount;
|
|
Stats.Intelligence = Math.Min(newValue, Stats.MaxIntelligence);
|
|
}
|
|
|
|
public void IncrementStrength(int amount)
|
|
{
|
|
var newValue = Stats.Strength + amount;
|
|
Stats.Strength = Math.Min(newValue, Stats.MaxStrength);
|
|
}
|
|
|
|
public void IncrementCharisma(int amount)
|
|
{
|
|
var newValue = Stats.Charisma + amount;
|
|
Stats.Charisma = Math.Min(newValue, Stats.MaxCharisma);
|
|
}
|
|
}
|
|
}
|