Ejemplo n.º 1
0
    private void Start()
    {
        inventory = PlayerManager.Instance.inventory;

        playerProps = PlayerManager.Instance.player.GetComponent <CharacterProps>();

        onEquipmentChanged += UpdateStats;
    }
Ejemplo n.º 2
0
    void Start()
    {
        inv    = Inventory.instance;
        pStats = PlayerStats.instance;
        int numSlots = System.Enum.GetNames(typeof(EquipSlot)).Length;

        curEquipment        = new Equipment[numSlots];
        onEquipmentChanged += ChangeStats;
    }
Ejemplo n.º 3
0
        // 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;
        }
Ejemplo n.º 4
0
    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();
    }
Ejemplo n.º 5
0
    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);
    }
Ejemplo n.º 6
0
    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);
 }
Ejemplo n.º 11
0
    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;
    }
Ejemplo n.º 12
0
    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);
    }
Ejemplo n.º 13
0
    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);
    }
Ejemplo n.º 14
0
 public void Start()
 {
     equiped   = new Equipment[System.Enum.GetNames(typeof(EquipmentType)).Length];
     inventory = PlayerInventory.instance;
     onEquipmentChangedCallBack += changeGraphics;
 }