Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using Assets.Scripts.Stats;
- public class Character : MonoBehaviour
- {
- #region Stat Parameters
- /// <summary>
- /// Character Attributes
- /// </summary>
- public Stat Strength;
- public Stat Agility;
- public Stat Intelligence;
- public Stat Vitality;
- /// <summary>
- /// Defensive Scores
- /// </summary>
- public Stat Defense;
- public Stat Evasion;
- /// <summary>
- /// Offensive Scores
- /// </summary>
- public Stat Damage;
- public Stat CriticalChance;
- #endregion
- [SerializeField] Inventory inventory;
- [SerializeField] EquipmentManager equipmentPanel;
- [SerializeField] StatPanel statPanel;
- private void Awake()
- {
- statPanel.SetStats(Strength, Agility, Intelligence, Vitality);
- statPanel.UpdateStatNames();
- inventory.OnItemRightClickedEvent += EquipFromInventory;
- equipmentPanel.OnItemRightClickedEvent += UnequipFromEquipmentPanel;
- }
- private void EquipFromInventory(Item item)
- {
- if (item is EquippableItem)
- {
- Equip((EquippableItem)item);
- }
- }
- private void UnequipFromEquipmentPanel(Item item)
- {
- if (item is EquippableItem)
- {
- Unequip((EquippableItem)item);
- }
- }
- public void Equip(EquippableItem item)
- {
- if (inventory.RemoveItem(item))
- {
- EquippableItem previousItem;
- if (equipmentPanel.AddItem(item, out previousItem))
- {
- if (previousItem != null)
- {
- inventory.AddItem(previousItem);
- previousItem.Unequip(this);
- statPanel.UpdateStatValues();
- }
- item.Equip(this);
- statPanel.UpdateStatValues();
- }
- else
- {
- inventory.AddItem(item);
- }
- }
- }
- public void Unequip(EquippableItem item)
- {
- if (!inventory.IsFull() && equipmentPanel.RemoveItem(item))
- {
- item.Unequip(this);
- statPanel.UpdateStatValues();
- inventory.AddItem(item);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement