Add skill management system: implement Skill and PetSkill models, create SkillController, and update ApplicationDbContext for skills
This commit is contained in:
82
Models/Skill.cs
Normal file
82
Models/Skill.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
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; }
|
||||
public virtual ICollection<PetSkill> PetSkills { get; set; }
|
||||
}
|
||||
|
||||
public class SkillEffect
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
public int SkillId { get; set; }
|
||||
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; }
|
||||
public virtual Pet Pet { get; set; }
|
||||
public int SkillId { get; set; }
|
||||
public virtual Skill Skill { get; set; }
|
||||
public SkillTier CurrentTier { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user