/// <summary> /// Use a skill. /// </summary> /// <param name="skillIndex">The index of the skill to use.</param> /// <param name="targets">The fighters that this skill should target.</param> public void UseSkill(int skillIndex, Fighter[] targets) { if (!CanUseSkill(skillIndex)) { return; } Skill skill = Skills[skillIndex]; int previousSkillPoints = CurrentSkillPoints; CurrentSkillPoints -= skill.Cost; skill.Use(this, targets); PointEventArgs args = new PointEventArgs(previousSkillPoints, CurrentSkillPoints); OnSkillPointsChange?.Invoke(this, args); }
public void RestoreSkillPoints(int skillAmount) { if (!IsAlive) { return; } int previousSkillPoints = CurrentSkillPoints; CurrentSkillPoints += skillAmount; // Clamp skill points if (CurrentSkillPoints > MaxSkillPoints) { CurrentSkillPoints = MaxSkillPoints; } PointEventArgs args = new PointEventArgs(previousSkillPoints, CurrentSkillPoints); OnSkillPointsChange?.Invoke(this, args); }