Advertisement
Guest User

BaseCharacter.cs

a guest
Jan 1st, 2015
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.19 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System;                                   //added to access the 'enum' class
  4.  
  5. public class BaseCharacter : MonoBehaviour {
  6.     private string _name;
  7.     private int _level;
  8.     private uint _freeExp;
  9.  
  10.     private Attribute[] _primaryAttribute;
  11.     private Vital[] _vital;
  12.     private Skill[] _skill;
  13.  
  14.     public void Awake()
  15.     {
  16.         _name = string.Empty;
  17.         _level = 0;
  18.         _freeExp = 0;
  19.  
  20.         _primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
  21.         _vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
  22.         _skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
  23.  
  24.         SetupPrimaryAttributes();
  25.         SetupVitals();
  26.         SetupSkills();
  27.     }
  28.  
  29. #region Setters and Getters
  30.     public string Name
  31.     {
  32.         get{ return _name;}
  33.         set{ _name = value;}
  34.     }
  35.  
  36.     public int Level
  37.     {
  38.         get{ return _level;}
  39.         set{ _level = value;}
  40.     }
  41.  
  42.     public uint FreeExp
  43.     {
  44.         get{ return _freeExp;}
  45.         set{ _freeExp = value;}
  46.     }
  47.    
  48. #endregion
  49.     public void AddExp(uint exp)
  50.     {
  51.         _freeExp += exp;
  52.  
  53.         CalculateLevel();
  54.     }
  55.  
  56.     public void CalculateLevel()
  57.     {
  58.  
  59.     }
  60.  
  61.     private void SetupPrimaryAttributes()
  62.     {
  63.         for (int cnt = 0; cnt < _primaryAttribute.Length; cnt++)
  64.         {
  65.             _primaryAttribute[cnt] = new Attribute();
  66.         }
  67.     }
  68.  
  69.     private void SetupVitals()
  70.     {
  71.         for (int cnt = 0; cnt < _vital.Length; cnt++)
  72.         {
  73.             _vital[cnt] = new Vital();
  74.             SetupVitalModifiers();
  75.         }
  76.     }
  77.  
  78.     private void SetupSkills()
  79.     {
  80.         for (int cnt = 0; cnt < _skill.Length; cnt++)
  81.         {
  82.             _skill[cnt] = new Skill();
  83.             SetupSkillModifiers();
  84.         }
  85.     }
  86.  
  87.     public Vital GetVital(int index) {
  88.  
  89.         return _vital[index];
  90.    
  91.     }
  92.  
  93.     public Skill GetSkill(int index)
  94.     {
  95.         return _skill[index];
  96.     }
  97.  
  98.     public Attribute GetPrimaryAttribute(int index)
  99.     {
  100.         return _primaryAttribute[index];
  101.     }
  102.  
  103.     private void SetupVitalModifiers() {
  104.         GetVital((int)VitalName.Health).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .5f)); //health
  105.         GetVital((int)VitalName.Energy).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 1));   //energy
  106.         GetVital((int)VitalName.Mana).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));        //mana
  107.  
  108.        
  109.     }
  110.  
  111.     private void SetupSkillModifiers()
  112.     {
  113.         //Melee_Offence
  114.         GetSkill((int)SkillName.Melee_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), 0.33f));
  115.         GetSkill((int)SkillName.Melee_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), 0.33f));
  116.         //Melee_Defence
  117.         GetSkill((int)SkillName.Melee_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), 0.33f));
  118.         GetSkill((int)SkillName.Melee_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 0.33f));
  119.         //Ranged_Offence
  120.         GetSkill((int)SkillName.Ranged_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), 0.33f));
  121.         GetSkill((int)SkillName.Ranged_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), 0.33f));
  122.         //Ranged_Defence
  123.         GetSkill((int)SkillName.Ranged_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), 0.33f));
  124.         GetSkill((int)SkillName.Ranged_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), 0.33f));
  125.         //Magic_Offence
  126.         GetSkill((int)SkillName.Magic_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 0.33f));
  127.         GetSkill((int)SkillName.Magic_Offence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), 0.33f));
  128.         //Magic_Defence
  129.         GetSkill((int)SkillName.Magic_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 0.33f));
  130.         GetSkill((int)SkillName.Magic_Defence).AddModifyer(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), 0.33f));
  131.     }
  132.  
  133.     public void StatUpdate()
  134.     {
  135.         for(int cnt = 0; cnt < _vital.Length; cnt++)
  136.             _vital[cnt].Update ();
  137.  
  138.         for(int cnt = 0; cnt < _skill.Length; cnt++)
  139.             _skill[cnt].Update ();
  140.     }
  141.  
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement