Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System; //added to access the 'enum' class
- 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();
- }
- #region Setters and Getters
- 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;}
- }
- #endregion
- 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();
- SetupVitalModifiers();
- }
- }
- private void SetupSkills()
- {
- for (int cnt = 0; cnt < _skill.Length; cnt++)
- {
- _skill[cnt] = new Skill();
- SetupSkillModifiers();
- }
- }
- public Vital GetVital(int index) {
- return _vital[index];
- }
- public Skill GetSkill(int index)
- {
- return _skill[index];
- }
- public Attribute GetPrimaryAttribute(int index)
- {
- return _primaryAttribute[index];
- }
- private void SetupVitalModifiers() {
- GetVital((int)VitalName.Health).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .5f)); //health
- GetVital((int)VitalName.Energy).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 1)); //energy
- GetVital((int)VitalName.Mana).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1)); //mana
- }
- private void SetupSkillModifiers()
- {
- //Melee_Offence
- GetSkill((int)SkillName.Melee_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), 0.33f));
- GetSkill((int)SkillName.Melee_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), 0.33f));
- //Melee_Defence
- GetSkill((int)SkillName.Melee_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), 0.33f));
- GetSkill((int)SkillName.Melee_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 0.33f));
- //Ranged_Offence
- GetSkill((int)SkillName.Ranged_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), 0.33f));
- GetSkill((int)SkillName.Ranged_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), 0.33f));
- //Ranged_Defence
- GetSkill((int)SkillName.Ranged_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), 0.33f));
- GetSkill((int)SkillName.Ranged_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), 0.33f));
- //Magic_Offence
- GetSkill((int)SkillName.Magic_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 0.33f));
- GetSkill((int)SkillName.Magic_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), 0.33f));
- //Magic_Defence
- GetSkill((int)SkillName.Magic_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 0.33f));
- GetSkill((int)SkillName.Magic_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), 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 ();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement