- Home /
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.
Answer by Wolfram · Jul 05, 2012 at 02:00 AM
As your AttributeName
enum is encapsulated in the class Attribute
, you need to access it using Attribute.AttributeName.Something
, not just AttributeName.Something
.