using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Beyond { public class EquipWeaponStep : MonoBehaviour { private const int weaponItemID = 3; public BaseStepController baseStepController; public bEquipArea equipArea; public InventoryMenuController inventoryMenuController; private bool weaponEquipped = false; // Start is called before the first frame update private void Start() { baseStepController.OnStarted += () => { Player.Instance.ItemManager.onEquipItem.AddListener(TryToMarkAsWeaponEquipped); /*UnequipAxe();*/ }; baseStepController.OnEvaluationStart += () => { CheckIfWeaponEquipped(); }; baseStepController.ConditionsAreMet += () => weaponEquipped; //open gemstones on completed baseStepController.OnCompleted += () => { inventoryMenuController.TryToSelectGemstoneInResources(); Player.Instance.ItemManager.onEquipItem.RemoveListener(TryToMarkAsWeaponEquipped); }; } public void CheckIfWeaponEquipped() { //in case player equips the sword before the check begins if (equipArea.equipSlots.Find(slot => slot.item && slot.item.id == weaponItemID)) { weaponEquipped = true; Player.Instance.ItemManager.onEquipItem.RemoveListener(TryToMarkAsWeaponEquipped); } } private void TryToMarkAsWeaponEquipped(bEquipArea area, bItem weapon) { if (weapon.id == weaponItemID) { weaponEquipped = true; } Player.Instance.ItemManager.onEquipItem.RemoveListener(TryToMarkAsWeaponEquipped); } } }