Problem with C# script.

Errors:

    Assets/Scripts/Character Classes/BaseCharacter.cs(85,141): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(85,49): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(85,49): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(86,139): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(86,49): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(86,49): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(87,135): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(87,47): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(87,47): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(91,143): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(91,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(91,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(92,148): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(92,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(92,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(93,143): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(93,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(93,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(94,149): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(94,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(94,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(95,151): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(95,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(95,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(96,147): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(96,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(96,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(97,151): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(97,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(97,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(98,147): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(98,56): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(98,56): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(99,152): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(99,57): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(99,57): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(100,144): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(100,57): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(100,57): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(101,144): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(101,57): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(101,57): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(102,149): error CS1729: The type `ModifyingAttribute' does not contain a constructor that takes `2' arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(102,57): error CS1502: The best overloaded method match for `ModifiedStat.AddModifier(ModifyingAttribute)' has some invalid arguments
    
    Assets/Scripts/Character Classes/BaseCharacter.cs(102,57): error CS1503: Argument `#1' cannot convert `object' expression to type `ModifyingAttribute'

Script:

using UnityEngine;

using System.Collections;

using System; 



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();

	}

	

	

	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++) {

			_vital[cnt] = new Vital();

		}

	}

	

	private void SetupSkills() {

		for(int cnt = 0; cnt < _skill.Length; cnt++) {

			_skill[cnt] = new Skill();

		}

	}

	

	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() {

		GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .5f));

		GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), 1));

		GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));

	}

	

	private void SetupSkillModifiers() {

		GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f));

		GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));

		GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));

		GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .33f));

		GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));

		GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));

		GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));

		GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));

		GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));

		GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));

		GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));

		GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));

	}

}

You are constructing ModifyingAttribute’s with two arguments, a primary attribute (whatever that is) and a float. The compiler is telling you that it expects fewer or more arguments.

   new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),
                          .5f)

Look at ModifyingAtttribute’s constructors, or (if you didn’t write that code) your examples & documentation, to see how to construct them.