87 lines
2.4 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
namespace PetCompanion.Models
{
public enum SkillType
{
GROUND,
GRAND
}
public enum SkillTier
{
I = 1,
II = 2,
III = 3
}
public class Skill
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public SkillType Type { get; set; }
public int PointsCost { get; set; }
public string Icon { get; set; }
public List<int>? SkillsIdRequired { get; set; }
public virtual ICollection<SkillEffect> Effects { get; set; }
[JsonIgnore]
public virtual ICollection<PetSkill> PetSkills { get; set; }
}
public class SkillEffect
{
[Key]
public int Id { get; set; }
public int SkillId { get; set; }
[JsonIgnore]
public virtual Skill Skill { get; set; }
public SkillTier Tier { get; set; }
public string Effect { get; set; }
public decimal Value { get; set; }
public void PetSkillUpgrade(ref Pet pet)
{
switch (Effect)
{
case "MaxHealth":
pet.MaxHealth += (int)Value;
break;
case "MaxIntelligence":
pet.Stats.MaxIntelligence += (int)Value;
break;
case "MaxStrength":
pet.Stats.MaxStrength += (int)Value;
break;
case "MaxCharisma":
pet.Stats.MaxCharisma += (int)Value;
break;
case "Luck":
pet.Stats.Luck += (int)Value;
break;
case "Agility":
pet.Stats.Agility += (int)Value;
break;
case "Perception":
pet.Stats.Perception += (int)Value;
break;
// Add more effects as needed
}
}
}
public class PetSkill
{
[Key]
public int Id { get; set; }
public string PetId { get; set; }
[JsonIgnore]
public virtual Pet Pet { get; set; }
public int SkillId { get; set; }
public virtual Skill Skill { get; set; }
public SkillTier CurrentTier { get; set; }
}
}