using Ai; using DG.Tweening; using Meta; using UnityEngine; using Random = UnityEngine.Random; namespace Equip { public class LootManager : MonoBehaviour { [SerializeField] private GameObject _loot; [SerializeField] private float _lootChance; [SerializeField] private GameObject _coin; [SerializeField] private int _min = 2; [SerializeField] private int _max = 5; private void OnEnable() { AiController.Instance.EnemyDiedEvent += OnEnemyDied; } private void OnDisable() { AiController.Instance.EnemyDiedEvent -= OnEnemyDied; } private void OnEnemyDied(Vector3 position) { DropLoot(position); } private void DropLoot(Vector3 position) { SoundsManager.Instance.PlaySound("drop_gold"); var coinCount = Random.Range(_min, _max); for (var i = 0; i < coinCount; i++) { var obj = Instantiate(_coin); position.y = obj.transform.position.y; obj.transform.position = position; var random = (Vector3) Random.insideUnitCircle * 2; random.z = random.y; random.y = 0; obj.transform.DOMove(position + random, 0.5f); } var randomChance = Random.value; if (randomChance < _lootChance + PlayerResources.Instance.EquipChance) { var item = EquipSettings.UnlockRandomItem(); if (item != null) { var obj = Instantiate(_loot); obj.transform.position = position; var random = (Vector3)Random.insideUnitCircle * 2; random.z = random.y; random.y = 0; obj.transform.DOMove(position + random, 0.5f); PlayerResources.Instance.AddItem(item); } } else return; } } }