81 lines
2.1 KiB
C#
81 lines
2.1 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
public class ItemEffectsManager : MonoBehaviour
|
|||
|
{
|
|||
|
public static ItemEffectsManager Instance { get; private set; }
|
|||
|
|
|||
|
public UseItemEvent itemEvent;
|
|||
|
|
|||
|
|
|||
|
public virtual void Awake()
|
|||
|
{
|
|||
|
if(Instance == null)
|
|||
|
{
|
|||
|
Instance = this;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Destroy(gameObject);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public virtual void UseItemEffect(ItemSlot itemSlot, PanelTypeEnum originPanel)
|
|||
|
{
|
|||
|
DetectItemActionGroup(itemSlot, originPanel);
|
|||
|
|
|||
|
// origin panel is passed for script to be able to recognize from witch list remove object etc...
|
|||
|
|
|||
|
// use other actions binded to item - not here becaues here item should be removed from chest xd
|
|||
|
}
|
|||
|
|
|||
|
public void DetectItemActionGroup(ItemSlot itemSlot, PanelTypeEnum originPanel)
|
|||
|
{
|
|||
|
var type = itemSlot?.Item.EquipmentType;
|
|||
|
|
|||
|
switch (type)
|
|||
|
{
|
|||
|
case EquipmentTypeEnum.Potion:
|
|||
|
{
|
|||
|
(PotionEffectsManager.Instance).UseItemEffect(itemSlot, originPanel);
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
Debug.LogError($"Event for item of type - {type} - is not implemented");
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
// TODO add case for next type to handle action for other items ;)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public UIWarehouseManager DetectOriginPanel(PanelTypeEnum originPanel)
|
|||
|
{
|
|||
|
// don't handle other types because there effects aren't allowed (and source class type is different xd - complicated)
|
|||
|
switch(originPanel)
|
|||
|
{
|
|||
|
case PanelTypeEnum.Inventory:
|
|||
|
{
|
|||
|
return InventoryUIManager.Instance;
|
|||
|
}
|
|||
|
case PanelTypeEnum.Equippment:
|
|||
|
{
|
|||
|
return EquipmentUIManager.Instance;
|
|||
|
}
|
|||
|
default:
|
|||
|
{
|
|||
|
Debug.LogError($"Event for item of type - {originPanel} - is not implemented");
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return UIWarehouseManager.Instance;
|
|||
|
}
|
|||
|
}
|