Advertisement
gotoheavenbro

BaseCharacter

Sep 29th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.27 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System; //Untuk Akses Enum
  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.         _name= string.Empty;
  16.         _level=0;
  17.         _freeExp=0;
  18.  
  19.         _primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
  20.         _vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
  21.         _skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
  22.  
  23.         SetupPrimaryAttributes();
  24.         SetupSkills();
  25.         SetupVitals();
  26.     }
  27.     public string Name
  28.     {
  29.         get { return _name; }
  30.         set { _name = value; }
  31.     }
  32.     public int Level
  33.     {
  34.         get { return _level; }
  35.         set { _level = value; }
  36.     }
  37.     public uint FreeExp
  38.     {
  39.         get { return _freeExp; }
  40.         set { _freeExp = value; }
  41.     }
  42.     private void SetupPrimaryAttributes()
  43.     {
  44.         for (int i = 0; i < _primaryAttribute.Length; i++)
  45.         {
  46.             _primaryAttribute[i] = new Attribute();
  47.             _primaryAttribute[i].Name = ((AttributeName)i).ToString();
  48.         }
  49.     }
  50.     private void SetupVitals()
  51.     {
  52.         for (int i = 0; i < _vital.Length; i++)
  53.             _vital[i] = new Vital();
  54.         SetupVitalModifiers();
  55.     }
  56.     private void SetupSkills()
  57.     {
  58.         for (int i = 0; i <_skill.Length; i++)
  59.             _skill[i] = new Skill();
  60.         SetupSkillModifiers();
  61.     }
  62.     public Attribute GetPrimaryAttribute(int index)
  63.     {
  64.         return _primaryAttribute[index];
  65.     }
  66.     public Vital GetVital(int index)
  67.     {
  68.         return _vital[index];
  69.     }
  70.     public Skill GetSkill(int index)
  71.     {
  72.         return _skill[index];
  73.     }
  74.     public void AddExp(uint exp)
  75.     {
  76.         _freeExp += exp;
  77.         CalculateLevel();
  78.     }
  79.     private void CalculateLevel()
  80.     {
  81.  
  82.     }
  83.     private void SetupVitalModifiers()
  84.     {
  85.         //health
  86.         GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength),0.5f));
  87.         GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 0.25f));
  88.         //energy
  89.         GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 1.0f));
  90.         GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 0.5f));
  91.         //mana
  92.         GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Inteligence), 1.0f));
  93.         GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 0.15f));
  94.         GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), 0.15f));
  95.     }
  96.     private void SetupSkillModifiers()
  97.     {
  98.         GetSkill((int)SkillName.Physical_damage).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), 1.0f));
  99.         GetSkill((int)SkillName.Physical_defense).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), 1.0f));
  100.         GetSkill((int)SkillName.Evasion_rating).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 1.0f));
  101.         GetSkill((int)SkillName.Critical_rating).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 1.0f));
  102.         GetSkill((int)SkillName.Magical_damage).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Inteligence), 1.0f));
  103.         GetSkill((int)SkillName.Magical_defense).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Inteligence), 1.0f));
  104.     }
  105.     public void StatUpdate()
  106.     {
  107.         for (int i = 0; i < _vital.Length; i++)
  108.             _vital[i].Update();
  109.  
  110.         for (int i = 0; i < _skill.Length; i++)
  111.             _skill[i].Update();
  112.     }
  113.     // Use this for initialization
  114.     void Start()
  115.     {
  116.    
  117.     }
  118.    
  119.     // Update is called once per frame
  120.     void Update () {
  121.    
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement