Ejemplo n.º 1
0
    public void OnAfterSlotUpdate(InventorySlot2 _slot)
    {
        if (_slot.ItemObject == null)
        {
            return;
        }
        switch (_slot.parent.inventory.type)
        {
        case InterfaceType.Inventory:
            Debug.Log("interacting with inventory : after");
            break;

        case InterfaceType.Equipment:

            break;

        case InterfaceType.Chest:
            break;

        case InterfaceType.Enchantress:
            Debug.Log("interacting with enchantress : after");
            GenerateModifierList(_slot);

            break;

        default:
            break;
        }
    }
Ejemplo n.º 2
0
    // Start is called before the first frame update
    void Start()
    {
        inventory = Inventory.instance;
        inventory.onItemChangedCallback += UpdateUI;

        slots = itemsParent.GetComponent <InventorySlot2>();
    }
Ejemplo n.º 3
0
    public void OnBeforeSlotUpdate(InventorySlot2 _slot)
    {
        if (_slot.ItemObject == null)
        {
            return;
        }
        switch (_slot.parent.inventory.type)
        {
        case InterfaceType.Inventory:
            Debug.Log("interacting with inventory : before");
            break;

        case InterfaceType.Equipment:

            break;

        case InterfaceType.Chest:
            break;

        case InterfaceType.Enchantress:
            Debug.Log("interacting with enchantress : before");
            var btns = statContainer.GetComponentsInChildren <EnchantressModButton>();
            foreach (var btn in btns)
            {
                Destroy(btn.gameObject);
            }

            break;

        default:
            break;
        }
    }
Ejemplo n.º 4
0
 public void SwapItems(InventorySlot2 item1, InventorySlot2 item2)
 {
     if (item2.CanPlaceInSlot(item1.ItemObject) && item1.CanPlaceInSlot(item2.ItemObject))
     {
         InventorySlot2 temp = new InventorySlot2(item2.item, item2.amount);
         item2.UpdateSlot(item1.item, item1.amount);
         item1.UpdateSlot(temp.item, temp.amount);
     }
 }
Ejemplo n.º 5
0
 //Generate a modifier list when an Item is dropped on enchanteress UI
 public void GenerateModifierList(InventorySlot2 _slot)
 {
     foreach (var buff in _slot.item.buffs)
     {
         var go = Instantiate(ModTextPrefab, statContainer);
         EnchantressModButton modButton = go.GetComponent <EnchantressModButton>();
         modButton.TextModButton.text = buff.attribute + " : " + buff.value;
         modButton.buff = buff;
     }
 }
Ejemplo n.º 6
0
    public void SetAnimatorPlayer(InventorySlot2 _slot)
    {
        if ((weaponRightTransform != null || weaponLeftTransform != null) && _slot.ItemObject.AnimatorOverride != null)
        {
            _animator.runtimeAnimatorController = _slot.ItemObject.AnimatorOverride;
        }

        else
        {
            _animator.runtimeAnimatorController = animatorOverrideDefault;
        }
    }
Ejemplo n.º 7
0
 private void OnSlotUpdate(InventorySlot2 _slot)
 {
     if (_slot.item.Id >= 0)
     {
         _slot.slotDisplay.transform.GetChild(0).GetComponentInChildren <Image>().sprite = _slot.ItemObject.uiDisplay;
         _slot.slotDisplay.transform.GetChild(0).GetComponentInChildren <Image>().color  = new Color(1, 1, 1, 1);
         _slot.slotDisplay.GetComponentInChildren <TextMeshProUGUI>().text =
             _slot.amount == 1 ? "" : _slot.amount.ToString("n0");
     }
     else
     {
         _slot.slotDisplay.transform.GetChild(0).GetComponentInChildren <Image>().sprite = null;
         _slot.slotDisplay.transform.GetChild(0).GetComponentInChildren <Image>().color  = new Color(1, 1, 1, 0);
         _slot.slotDisplay.GetComponentInChildren <TextMeshProUGUI>().text = "";
     }
 }
Ejemplo n.º 8
0
    // Mouse drag end
    public void OnDragEnd(GameObject obj)
    {
        Destroy(MouseData.tempItemBeingDragged);

        if (MouseData.interfaceMouseIsOver == null)
        {
            slotsOnInterface[obj].RemoveItem();
            return;
        }

        if (MouseData.slotHoveredOver)
        {
            InventorySlot2 mouseHoverSlotData =
                MouseData.interfaceMouseIsOver.slotsOnInterface[MouseData.slotHoveredOver];
            inventory.SwapItems(slotsOnInterface[obj], mouseHoverSlotData);
        }
    }
Ejemplo n.º 9
0
    public bool AddItem(Item2 _item, int _amount)
    {
        if (EmptySlotCount <= 0)
        {
            return(false);
        }

        InventorySlot2 slot = FindItemOnInventory(_item);

        if (!database.ItemObjects[_item.Id].stackable || slot == null)
        {
            SetEmptySlot(_item, _amount);
            return(true);
        }
        slot.AddAmount(_amount);
        return(true);
    }
Ejemplo n.º 10
0
    public void OnAddItem(InventorySlot2 _slot)
    {
        if (_slot.ItemObject == null)
        {
            return;
        }
        switch (_slot.parent.inventory.type)
        {
        case InterfaceType.Inventory:
            break;

        case InterfaceType.Equipment:
            print(string.Concat("Placed ", _slot.ItemObject, " on ", _slot.parent.inventory.type, ", Allowed Items: ", string.Join(", ", _slot.AllowedItems)));

            for (int i = 0; i < _slot.item.buffs.Length; i++)
            {
                for (int j = 0; j < attributes.Length; j++)
                {
                    if (attributes[j].type == _slot.item.buffs[i].attribute)
                    {
                        attributes[j].value.AddModifier(_slot.item.buffs[i]);
                    }
                }
                if (_slot.item.buffs[i].attribute == StatTypes.Stamina)
                {
                    Debug.Log("oof v'la la stamina");
                    GetComponent <Health>().addHealthPlayer(BONUS_HEATH_PER_POINT * _slot.item.buffs[i].value);
                    GameObject.Find("EnergyGlobe").GetComponentInChildren <EnergyGlobeControl>().addEnergyPlayer((int)BONUS_HEATH_PER_POINT * _slot.item.buffs[i].value);
                }
            }

            StatTextUpdate();
            if (_slot.ItemObject.characterDisplay != null || _slot.ItemObject.characterDisplayRight != null || _slot.ItemObject.characterDisplayLeft != null)
            {
                switch (_slot.AllowedItems[0])
                {
                case ItemType.Helmet:
                    //helmetTransform = boneCombiner.AddLimb(_slot.ItemObject.characterDisplay,_slot.ItemObject.boneNames);
                    GameManager.Instance.player.GetComponent <FighterSpell>().UpdateSpell(_slot.ItemObject.Spell, CastSource.Pet);

                    break;

                case ItemType.Weapon:
                    GameManager.Instance.player.GetComponent <FighterSpell>().UpdateSpell(_slot.ItemObject.Spell, CastSource.Weapon);
                    switch (_slot.ItemObject.type[1])
                    {
                    case ItemType.UniqueWeapon:
                        weaponRightTransform = Instantiate(_slot.ItemObject.characterDisplay, HandTransformRight).transform;
                        SetAnimatorPlayer(_slot);
                        break;

                    case ItemType.DualWeapon:
                        weaponRightTransform = Instantiate(_slot.ItemObject.characterDisplayRight, HandTransformRight).transform;
                        weaponLeftTransform  = Instantiate(_slot.ItemObject.characterDisplayLeft, HandTransformLeft).transform;
                        SetAnimatorPlayer(_slot);
                        break;

                    case ItemType.DoubleHandWeapon:
                        weaponRightTransform = Instantiate(_slot.ItemObject.characterDisplay, HandTransformRight).transform;
                        SetAnimatorPlayer(_slot);
                        break;

                    default:
                        Debug.Log("erreur");
                        break;
                    }

                    break;

                case ItemType.Legs:
                    //bootsTransform = boneCombiner.AddLimb(_slot.ItemObject.characterDisplay, _slot.ItemObject.boneNames);
                    break;

                case ItemType.Chest:
                    GameManager.Instance.player.GetComponent <FighterSpell>().UpdateSpell(_slot.ItemObject.Spell, CastSource.Armor);
                    //chestTransform = boneCombiner.AddLimb(_slot.ItemObject.characterDisplay, _slot.ItemObject.boneNames);
                    break;
                }
            }
            break;

        case InterfaceType.Chest:
            break;

        case InterfaceType.Enchantress:
            break;

        default:
            break;
        }
    }
Ejemplo n.º 11
0
    public void OnRemoveItem(InventorySlot2 _slot)
    {
        if (_slot.ItemObject == null)
        {
            return;
        }
        switch (_slot.parent.inventory.type)
        {
        case InterfaceType.Inventory:
            break;

        case InterfaceType.Equipment:
            print(string.Concat("Removed ", _slot.ItemObject, " on ", _slot.parent.inventory.type, ", Allowed Items: ", string.Join(", ", _slot.AllowedItems)));

            for (int i = 0; i < _slot.item.buffs.Length; i++)
            {
                for (int j = 0; j < attributes.Length; j++)
                {
                    if (attributes[j].type == _slot.item.buffs[i].attribute)
                    {
                        attributes[j].value.RemoveModifier(_slot.item.buffs[i]);
                    }
                }
                if (_slot.item.buffs[i].attribute == StatTypes.Stamina)
                {
                    GetComponent <Health>().addHealthPlayer(-(BONUS_HEATH_PER_POINT * _slot.item.buffs[i].value));
                    GameObject.Find("EnergyGlobe").GetComponentInChildren <EnergyGlobeControl>().addEnergyPlayer((int)-(BONUS_HEATH_PER_POINT * _slot.item.buffs[i].value));
                }
            }

            StatTextUpdate();
            if (_slot.ItemObject.characterDisplay != null || _slot.ItemObject.characterDisplayRight != null || _slot.ItemObject.characterDisplayLeft != null)
            {
                switch (_slot.AllowedItems[0])
                {
                case ItemType.Helmet:
                    GameManager.Instance.player.GetComponent <FighterSpell>().UpdateSpell(null, CastSource.Pet);
                    //Destroy(helmet.gameObject);
                    break;

                case ItemType.Weapon:
                    GameManager.Instance.player.GetComponent <FighterSpell>().UpdateSpell(null, CastSource.Weapon);
                    switch (_slot.ItemObject.type[1])
                    {
                    case ItemType.UniqueWeapon:
                        Destroy(weaponRightTransform.gameObject);
                        weaponRightTransform = null;
                        weaponLeftTransform  = null;
                        SetAnimatorPlayer(_slot);
                        break;

                    case ItemType.DualWeapon:
                        Destroy(weaponRightTransform.gameObject);
                        Destroy(weaponLeftTransform.gameObject);
                        weaponRightTransform = null;
                        weaponLeftTransform  = null;
                        SetAnimatorPlayer(_slot);
                        break;

                    case ItemType.DoubleHandWeapon:
                        Destroy(weaponRightTransform.gameObject);
                        weaponRightTransform = null;
                        weaponLeftTransform  = null;
                        SetAnimatorPlayer(_slot);
                        break;

                    default:
                        Debug.Log("erreur");
                        break;
                    }

                    break;

                case ItemType.Legs:        // ajouter spell si ajout slot dans ui
                    //Destroy(boots.gameObject);
                    break;

                case ItemType.Chest:
                    GameManager.Instance.player.GetComponent <FighterSpell>().UpdateSpell(null, CastSource.Armor);
                    //Destroy(chest.gameObject);
                    break;
                }
            }
            break;

        case InterfaceType.Chest:
            break;

        default:
            break;
        }
    }
Ejemplo n.º 12
0
 private void Start()
 {
     inventory.GetSlots[0].OnBeforeUpdate += OnBeforeSlotUpdate;
     inventory.GetSlots[0].OnAfterUpdate  += OnAfterSlotUpdate;
     enchantressSlot = inventory.GetSlots[0];
 }