2022-02-14 22:03:08 +03:00

54 lines
1.3 KiB
C#

using DefaultNamespace;
using DG.Tweening;
using Units;
using UnityEngine;
namespace Items.ItemViews
{
public class ItemView : MonoBehaviour
{
private Item _item;
public bool pickedUp;
public string itemName;
public Item Item => _item;
public void SetUp(Item item)
{
_item = item;
pickedUp = false;
itemName = _item.name;
Rotate();
}
public void PickUp(Unit unit)
{
if (_item is Bonus { BonusType: BonusType.Heal } bonus)
{
VFXController.Instance.PlayEffect(bonus.UsisngVFX, unit.Instance.transform);
unit.UnitView.OnHit.Invoke(-bonus.Value);
Despawn();
return;
}
transform.DOMove(unit.UnitView.transform.position + new Vector3(0,1,0), 0.1f).OnComplete(() =>
{
unit.PickUpItem(_item);
Despawn();
});
}
public void Despawn()
{
transform.DOKill();
Destroy(gameObject);
}
private void Rotate()
{
transform.DORotate(transform.rotation.eulerAngles + new Vector3(0, 10, 0), 0.1f)
.SetEase(Ease.InQuad)
.SetLoops(-1, LoopType.Incremental);
}
}
}