private void Start() { inventory = PlayerManager.Instance.inventory; playerProps = PlayerManager.Instance.player.GetComponent <CharacterProps>(); onEquipmentChanged += UpdateStats; }
void Start() { inv = Inventory.instance; pStats = PlayerStats.instance; int numSlots = System.Enum.GetNames(typeof(EquipSlot)).Length; curEquipment = new Equipment[numSlots]; onEquipmentChanged += ChangeStats; }
// Start is called before the first frame update void Start() { player = Player.instance; inventory = Inventory.instance; int numOfSlots = System.Enum.GetNames(typeof(EquipSlot)).Length; currentEquipment = new Equipment[numOfSlots]; onEquipmentChangedCallback += OnEquipmentChange; }
private void Start() { inventory = Inventory.instance; int numSlots = System.Enum.GetNames(typeof(EquipmentSlot)).Length; currentEquipment = new Equipment[numSlots]; playerLevel = GetComponent <PlayerLevel>(); onEquipmentChanged += GetComponent <PlayerStats>().OnEquipmentChanged; EquipDefaultItems(); }
public Item Equip(AttachmentSlotId slotId, InventoryItem inventoryItem) { if (_slotLocks[slotId]) { return(null); } if (!Inventory.Contains(inventoryItem)) { return(null); } AttachableContext attachable = (AttachableContext)inventoryItem.context; Debug.AssertFormat(attachable, string.Format("Failed to equip: item '{0}' is not attachable", inventoryItem.context.name)); AttachmentSlot slot = _slots.FirstOrDefault(x => x.SlotId == slotId); Debug.AssertFormat(slot != null, string.Format("No slot found with slot id '{0}'", slotId)); if (_equippedItems[slotId] != null) { if (!_equippedItems[slotId].GetStateInfo().Depleted) { // Unequip currently equipped and re-add to the inventory AddToInventory(new InventoryItem( _equippedItems[slotId].GetContext(), _equippedItems[slotId].GetStateInfo())); } GameObject.Destroy(_equippedItems[slotId].gameObject); } // Spawn and equip item from inventory Item spawnedItem = GameObject.Instantiate(inventoryItem.context.Prefab); _equippedItems[slotId] = spawnedItem; if (inventoryItem.stateInfo != null) { _equippedItems[slotId].InitStateInfo(inventoryItem.stateInfo); } spawnedItem.transform.SetPositionAndRotation( slot.BoneTransform.position, slot.BoneTransform.rotation); spawnedItem.transform.SetParent(slot.BoneTransform); spawnedItem.transform.localPosition = attachable.AttachmentPositionOffset; spawnedItem.transform.localRotation = Quaternion.Euler(attachable.AttachmentRotationOffset); // Remove inventory item of equiped item RemoveFromInventory(inventoryItem); OnEquipmentChanged.Invoke(inventoryItem.context); return(spawnedItem); }
public void UnEquip(AttachmentSlotId slotId) { Item equipped = _equippedItems[slotId]; if (equipped != null) { _equippedItems[slotId] = null; equipped.transform.SetParent(null); OnEquipmentChanged.Invoke(null); } }
private void HandleDyeConfirm(byte dyeItemBag, byte dyeItemSlot, byte targetItemBag, byte targetItemSlot) { if (_dyeingManager.AvailableColors.Count == 0) { _dyeingManager.Reroll(); } var color = _dyeingManager.AvailableColors[new Random().Next(0, 5)]; InventoryItems.TryGetValue((dyeItemBag, dyeItemSlot), out var dyeItem); if (dyeItem is null || dyeItem.Special != SpecialEffect.Dye || _dyeingManager.DyeingItem is null) { _packetsHelper.SendDyeConfirm(Client, false, color); return; } InventoryItems.TryGetValue((targetItemBag, targetItemSlot), out var item); if (item is null) { _packetsHelper.SendDyeConfirm(Client, false, color); return; } bool success = (dyeItem.TypeId == 55 && item.IsWeapon) || (dyeItem.TypeId == 56 && item.IsArmor) || (dyeItem.TypeId == 57 && item.IsMount) || (dyeItem.TypeId == 58 && item.IsPet) || (dyeItem.TypeId == 59 && item.IsCostume); if (success) { _dyeingManager.DyeingItem.DyeColor = color; _dyeingManager.DyeingItem = null; _packetsHelper.SendDyeConfirm(Client, success, color); } else { _packetsHelper.SendDyeConfirm(Client, false, color); return; } if (success) { _taskQueue.Enqueue(ActionType.CREATE_DYE_COLOR, Id, item.Bag, item.Slot, color.Alpha, color.Saturation, color.R, color.G, color.B); if (item.Bag == 0) { OnEquipmentChanged?.Invoke(this, item, item.Slot); } UseItem(dyeItem.Bag, dyeItem.Slot); } }
private void SetArmorItem(Item armorItem) { this.armorItem = armorItem; if (armorItem != null) { armorItem.SetItemHolder(this); player.SetEquipment(armorItem.itemType); } else { // Unequipped Armor player.SetEquipment(Item.ItemType.ArmorNone); } OnEquipmentChanged?.Invoke(this, EventArgs.Empty); }
private void SetHelmetItem(Item helmetItem) { this.helmetItem = helmetItem; if (helmetItem != null) { helmetItem.SetItemHolder(this); player.SetEquipment(helmetItem.itemType); } else { // Unequipped Helmet player.SetEquipment(Item.ItemType.HelmetNone); } OnEquipmentChanged?.Invoke(this, EventArgs.Empty); }
private void SetWeaponItem(Item weaponItem) { this.weaponItem = weaponItem; if (weaponItem != null) { weaponItem.SetItemHolder(this); player.SetEquipment(weaponItem.itemType); } else { // Unequipped weapon player.SetEquipment(Item.ItemType.SwordNone); } OnEquipmentChanged?.Invoke(this, EventArgs.Empty); }
public void Awake() { controles = new Controles(); controles.PlayerControles.INVENTORY.performed += ctx => OpenCloseInventory(); #region Singleton Test if (instance != null) { Debug.Log("Mais de um Player Inventory na Scene"); return; } instance = this; #endregion OnEquipChangedCallback += UpdateEquipment; OnInvChangedCallback += UpdateInventory; }
public bool Equip(Equipment newItem) { Unequip(newItem.equipSlot); // Still equipment in the equipment slot!? if (equipment[(int)newItem.equipSlot] != null) { // Then we can't equip this item return(false); } equipment[(int)newItem.equipSlot] = newItem; if (OnEquipmentChanged != null) { OnEquipmentChanged.Invoke(null, newItem); } return(true); }
public Equipment Unequip(EquipmentSlot slot) { if (equipment[(int)slot] == null) { return(null); } var oldItem = equipment[(int)slot]; if (!InventoryManager.Instance.AddItem(oldItem)) { // Not enough bag space to unequip this item! return(null); } equipment[(int)slot] = null; if (OnEquipmentChanged != null) { OnEquipmentChanged.Invoke(oldItem, null); } return(oldItem); }
public void Start() { equiped = new Equipment[System.Enum.GetNames(typeof(EquipmentType)).Length]; inventory = PlayerInventory.instance; onEquipmentChangedCallBack += changeGraphics; }