Advertisement
Rakshalpha

Character

May 24th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.23 KB | None | 0 0
  1. using UnityEngine;
  2. using Assets.Scripts.Stats;
  3.  
  4. public class Character : MonoBehaviour
  5. {
  6.     #region Stat Parameters
  7.  
  8.     /// <summary>
  9.     /// Character Attributes
  10.     /// </summary>
  11.     public Stat Strength;
  12.     public Stat Agility;
  13.     public Stat Intelligence;
  14.     public Stat Vitality;
  15.  
  16.     /// <summary>
  17.     /// Defensive Scores
  18.     /// </summary>
  19.     public Stat Defense;
  20.     public Stat Evasion;
  21.  
  22.     /// <summary>
  23.     /// Offensive Scores
  24.     /// </summary>
  25.     public Stat Damage;
  26.     public Stat CriticalChance;
  27.  
  28.     #endregion
  29.  
  30.     [SerializeField] Inventory inventory;
  31.     [SerializeField] EquipmentManager equipmentPanel;
  32.     [SerializeField] StatPanel statPanel;
  33.  
  34.     private void Awake()
  35.     {
  36.         statPanel.SetStats(Strength, Agility, Intelligence, Vitality);
  37.         statPanel.UpdateStatNames();
  38.  
  39.         inventory.OnItemRightClickedEvent += EquipFromInventory;
  40.         equipmentPanel.OnItemRightClickedEvent += UnequipFromEquipmentPanel;
  41.     }
  42.  
  43.     private void EquipFromInventory(Item item)
  44.     {
  45.         if (item is EquippableItem)
  46.         {
  47.             Equip((EquippableItem)item);
  48.         }
  49.     }
  50.  
  51.     private void UnequipFromEquipmentPanel(Item item)
  52.     {
  53.         if (item is EquippableItem)
  54.         {
  55.             Unequip((EquippableItem)item);
  56.         }
  57.     }
  58.  
  59.     public void Equip(EquippableItem item)
  60.     {
  61.         if (inventory.RemoveItem(item))
  62.         {
  63.             EquippableItem previousItem;
  64.             if (equipmentPanel.AddItem(item, out previousItem))
  65.             {
  66.                 if (previousItem != null)
  67.                 {
  68.                     inventory.AddItem(previousItem);
  69.                     previousItem.Unequip(this);
  70.                     statPanel.UpdateStatValues();
  71.                 }
  72.                 item.Equip(this);
  73.                 statPanel.UpdateStatValues();
  74.             }
  75.             else
  76.             {
  77.                 inventory.AddItem(item);
  78.             }
  79.         }
  80.     }
  81.  
  82.     public void Unequip(EquippableItem item)
  83.     {
  84.         if (!inventory.IsFull() && equipmentPanel.RemoveItem(item))
  85.         {
  86.             item.Unequip(this);
  87.             statPanel.UpdateStatValues();
  88.             inventory.AddItem(item);
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement