Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System; //Need to accsess the enum class
- public class BaseCharacter : MonoBehaviour {
- private string _name;
- private int _level;
- private uint _freeExp;
- private Atrribute[] _primaryAttribute;
- private Vital[] _vital;
- private Skill[] _skill;
- public void Awake(){
- _name = string.Empty;
- _level = 0;
- _freeExp = 0;
- _primaryAttribute = new Atrribute[Enum.GetValues (typeof(AttributeName)).Length]; //Sets the array length to the amount of atributes in the enumetator
- _vital = new Vital[Enum.GetValues (typeof(VitalName)).Length];
- _skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
- SETUPSkills ();
- SETUPSkillModifer ();
- SETUPVitals();
- }
- 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 amount){
- _freeExp += amount;
- }
- public void CalculateLevel(){
- //This is going to do something interesting and new
- //probably take average of all player skills and make that level?
- }
- private void SETUPPrimaryAtributes(){
- for (int i = 0; i < _primaryAttribute.Length; i++) {
- _primaryAttribute[i] = new Atrribute();
- }
- }
- private void SETUPVitals(){
- for (int i = 0; i < _vital.Length; i++) {
- _vital[i] = new Vital();
- }
- }
- private void SETUPSkills(){
- for (int i = 0; i < _skill.Length; i++) {
- _skill[i] = new Skill();
- }
- }
- public Atrribute GetPrimaryAttribute(int index){
- return _primaryAttribute[index];
- }
- public Vital GetVital(int index){
- return _vital [index];
- }
- public Skill GetSkill(int index){
- return _skill [index];
- }
- //Sets up Vitals and skills that are modified by the core attributes
- private void SETUPVitalModifer(){
- //health
- GetVital ((int)VitalName.Health).AddModifer (new ModifingAttribute (GetPrimaryAttribute((int)AttributeName.Constitution), .5f));
- //stamina
- GetVital ((int)VitalName.Stamnia).AddModifer (new ModifingAttribute (GetPrimaryAttribute((int)AttributeName.Constitution), 1));
- //manna
- GetVital ((int)VitalName.Mana).AddModifer (new ModifingAttribute (GetPrimaryAttribute((int)AttributeName.Willpower), 1 ));
- }
- private void SETUPSkillModifer(){
- //This is a mess and I dont even know how to comment it, so good luck, cus I barley know how it works
- //melee offence
- GetSkill((int)SkillName.Melee_Offense).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Might),33f));
- GetSkill((int)SkillName.Melee_Offense).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness),33f));
- //melee defense
- GetSkill((int)SkillName.Melee_Defence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Speed),33f));
- GetSkill((int)SkillName.Melee_Defence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution),33f));
- //magic offence
- GetSkill((int)SkillName.Magic_Offence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Concetration),33f));
- GetSkill((int)SkillName.Magic_Offence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower),33f));
- //magic defence
- GetSkill((int)SkillName.Magic_Defence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Concetration),33f));
- GetSkill((int)SkillName.Magic_Defence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower),33f));
- //ranged offence
- GetSkill((int)SkillName.Ranged_Offence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Concetration),33f));
- GetSkill((int)SkillName.Ranged_Offence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Speed),33f));
- //ranged defence
- GetSkill((int)SkillName.Ranged_Defence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Speed),33f));
- GetSkill((int)SkillName.Ranged_Defence).AddModifer(new ModifingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness),33f));
- }
- public void StatUpdate(){
- for (int i = 0; i < _vital.Length; i++) {
- _vital[i].Update();
- }
- for (int i = 0; i < _skill.Length; i++) {
- _skill[i].Update();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment