Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System; //Untuk Akses Enum
- 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();
- SetupSkills();
- 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; }
- }
- private void SetupPrimaryAttributes()
- {
- for (int i = 0; i < _primaryAttribute.Length; i++)
- {
- _primaryAttribute[i] = new Attribute();
- _primaryAttribute[i].Name = ((AttributeName)i).ToString();
- }
- }
- private void SetupVitals()
- {
- for (int i = 0; i < _vital.Length; i++)
- _vital[i] = new Vital();
- SetupVitalModifiers();
- }
- private void SetupSkills()
- {
- for (int i = 0; i <_skill.Length; i++)
- _skill[i] = new Skill();
- SetupSkillModifiers();
- }
- public Attribute GetPrimaryAttribute(int index)
- {
- return _primaryAttribute[index];
- }
- public Vital GetVital(int index)
- {
- return _vital[index];
- }
- public Skill GetSkill(int index)
- {
- return _skill[index];
- }
- public void AddExp(uint exp)
- {
- _freeExp += exp;
- CalculateLevel();
- }
- private void CalculateLevel()
- {
- }
- private void SetupVitalModifiers()
- {
- //health
- GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength),0.5f));
- GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 0.25f));
- //energy
- GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 1.0f));
- GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 0.5f));
- //mana
- GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Inteligence), 1.0f));
- GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 0.15f));
- GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), 0.15f));
- }
- private void SetupSkillModifiers()
- {
- GetSkill((int)SkillName.Physical_damage).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), 1.0f));
- GetSkill((int)SkillName.Physical_defense).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), 1.0f));
- GetSkill((int)SkillName.Evasion_rating).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 1.0f));
- GetSkill((int)SkillName.Critical_rating).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Agility), 1.0f));
- GetSkill((int)SkillName.Magical_damage).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Inteligence), 1.0f));
- GetSkill((int)SkillName.Magical_defense).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Inteligence), 1.0f));
- }
- 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();
- }
- // Use this for initialization
- void Start()
- {
- }
- // Update is called once per frame
- void Update () {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement