Error CS1503, Error CS1502

I have been following BurgZergArcade’s tutorials and have been loving it but i have an error with the BaseCharacter Script(for about a week now), It has to do with my ‘AttibuteName’ it cannot convert object to int. Here are my errors(there are 48 of them, they repeat on a bunch of lines):

Assets/Scripts/Character Classes/BaseCharacter.cs(118,133): error CS0103: The name `AttributeName’ does not exist in the current context

Assets/Scripts/Character Classes/BaseCharacter.cs(118,107): error CS1503: Argument #1' cannot convert object’ expression to type `int’

Assets/Scripts/Character Classes/BaseCharacter.cs(118,107): error CS1502: The best overloaded method match for `BaseCharacter.GetPrimaryAttribute(int)’ has some invalid arguments

Here is my BaseChraracter Code(Attribute Class after it):

using UnityEngine;
using System.Collections;
using System; //added to acess enum class
using System.Collections.Generic;

public class BaseCharacter : MonoBehaviour{
 private string _name;
 private int _level;
 private uint _freeExp;
 
 private Attribute[] _primaryAttribute;
 private Vital[] _vital;
 private Skill[] _skill;
 
 public void Awake(){
 _name = string.Empty;
 _level = 0;
 _freeExp = 0;
 
 _primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
 _vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
 _skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
 
 SetupPrimaryAttributes();
 SetupVitals();
 SetupSkills();
 }
 
 
 public string Name {
 get {return _name;}
 set {_name = value;}
 }
 public int Level {
 get {return _level;}
 set {_level = value;}
 }
 
 public uint FreeExp {
 get {return _freeExp;}
 set {_freeExp = value;}
 }
 
 public void AddExp(uint exp){
 _freeExp += exp; 
 CalculateLevel();
 }
 
 //take average of all players skills and assign that as player level
 public void CalculateLevel(){
 
 }
 
 private void SetupPrimaryAttributes(){
 for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++){
 _primaryAttribute[cnt] = new Attribute();
 } 
 }
 
 private void SetupVitals(){
 for(int cnt = 0; cnt < _vital.Length; cnt++){
 _primaryAttribute[cnt] = new Attribute();
 } 
 }
 
 private void SetupSkills(){
 for(int cnt = 0; cnt <_skill.Length; cnt++){
 _primaryAttribute[cnt] = new Attribute();
 } 
 } 
 
 public Attribute GetPrimaryAttribute(int index){
 return  _primaryAttribute[index];
 }
 
 public Vital GetVital(int index){
 return  _vital[index];
 }
 
 public Skill GetSkill(int index){
 return  _skill[index];
 }
 
 private void SetupVitalModifiers(){
 //health
 GetVital((int) VitalName.Health).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Constitution), ratio = 0.5f });

 //energy
 GetVital((int) VitalName.Energy).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Constitution), ratio = 1 });
 
 //mana
 GetVital((int) VitalName.Mana).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Willpower), ratio = 0.5f });
 }
 
 private void SetupSkillModifiers(){
 //melee_offence
 GetSkill((int) SkillName.Melee_Offence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Might), ratio = 0.33f });
 GetSkill((int) SkillName.Melee_Offence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Nimbleness), ratio = 0.33f });
 
 //melee _defence
 GetSkill((int) SkillName.Melee_Defence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Speed), ratio = 0.33f });
 GetSkill((int) SkillName.Melee_Defence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Constitution), ratio = 0.33f }); 
 
 //magic offence
 GetSkill((int) SkillName.Magic_Offence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Concentration), ratio = 0.33f });
 GetSkill((int) SkillName.Magic_Offence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Willpower), ratio = 0.33f });
 
 //magic defence
 GetSkill((int) SkillName.Magic_Defence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Concentration), ratio = 0.33f });
 GetSkill((int) SkillName.Magic_Defence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Willpower), ratio = 0.33f });
 
 //ranged offence
 GetSkill((int) SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Concentration), ratio = 0.33f });
 GetSkill((int) SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Speed), ratio = 0.33f });
 
 //ranged defence
 GetSkill((int) SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.Speed), ratio = 0.33f });
 GetSkill((int) SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute { attribute = GetPrimaryAttribute((int) AttributeName.NimbleNess), ratio = 0.33f });
 
 
 }
 public void StatUpdate(){
 for(int cnt = 0; cnt < _vital.Length; cnt++)
 _vital[cnt].Update();
 for(int cnt = 0; cnt < _skill.Length; cnt++)
 _skill[cnt].Update(); 
 
 } 
}

And here is my Attribute Class:
public class Attribute : BaseStat {

       public Attribute(){
       ExpToLevel = 50;
       LevelModifier = 1.05f;
    } 
   public enum AttributeName{
        Might,
        Constitution,
        Nimbleness,
        Speed,
        Concentration,
        Willpower,
        Charisma
    }
}

Please Help With my error (any help is much appreciated) I have had it for about a week now and it is killing me, if you need more info let me know thank you.

As your AttributeName enum is encapsulated in the class Attribute, you need to access it using Attribute.AttributeName.Something, not just AttributeName.Something.