Exemplo n.º 1
0
    //Called after selecting a player by the InventoryMenu script
    public bool ChangeHealth(ItemScriptable item)
    {
        //Check if the player is dead and we try to heal without reviving or the player is alive and we are trying to revive, if so write an error message and return false
        if ((playerStatus.currentHealth == 0 && item.revival == false) || playerStatus.currentHealth != 0 && item.revival == true)
        {
            errorMessage.SetActive(true);
            errorMessageText.text = "Cannot Revive";
            errorMessageTime      = Time.time;
            return(false);
        }

        //If we have max health write an error message and return false
        if (playerStatus.currentHealth == playerStatus.maxHealth)
        {
            errorMessage.SetActive(true);
            errorMessageTime      = Time.time;
            errorMessageText.text = "Player has full HP";
            return(false);
        }

        //Heal the player
        int value = item.effectValue;

        if (item.effectWithPercentage)
        {
            value = value * playerStatus.baseStatus.health / 100;
        }

        //Change it's health (by calling this fct. we also update it's UI) and return true because we were succesful
        playerStatus.ChangeHealth(value + playerStatus.currentHealth);
        return(true);
    }
Exemplo n.º 2
0
 public void AddItem(ItemScriptable nItem)
 {
     item                = nItem;
     icon.sprite         = item.icon;
     icon.enabled        = true;
     remove.interactable = true;
 }
    public void AddItem(ItemScriptable item, int amount = 1)
    {
        int itemIndex = items.FindIndex(itemScript => itemScript.name == item.name);

        if (itemIndex != -1)
        {
            ItemScriptable listItem = items[itemIndex];

            if (listItem.stackable && listItem.Amount < listItem.maxStack)
            {
                listItem.ChangeAmount(item.Amount);
            }
        }
        else
        {
            if (item == null)
            {
                return;
            }

            ItemScriptable itemClone = Instantiate(item);
            itemClone.Initialize(playerController);
            itemClone.SetAmount(amount <= 1 ? item.Amount : amount);
            items.Add(itemClone);
        }
    }
Exemplo n.º 4
0
 public void AddItem(ItemScriptable item)
 {
     if (item != null)
     {
         inventory.Add(item);
     }
 }
Exemplo n.º 5
0
 public void RemoveItem(ItemScriptable item)
 {
     if (item != null)
     {
         inventory.Remove(item);
     }
 }
Exemplo n.º 6
0
        public void LoadData(SaveDataBase saveData)
        {
            PlayerSaveData playerData = (PlayerSaveData)saveData;

            if (playerData == null)
            {
                return;
            }

            Transform playerTransform = transform;

            playerTransform.position = playerData.Position;
            playerTransform.rotation = playerData.Rotation;

            Health.SetCurrentHealth(playerData.CurrentHealth);

            foreach (ItemSaveData itemSaveData in playerData.ItemList)
            {
                ItemScriptable item = InventoryReferencer.Instance.GetItemReference(itemSaveData.Name);
                Inventory.AddItem(item, itemSaveData.Amount);
            }

            WeaponScriptable weapon = (WeaponScriptable)Inventory.FindItem(playerData.EquippedWeaponData.Name);

            if (!weapon)
            {
                return;
            }

            weapon.weaponStats = playerData.EquippedWeaponData.WeaponStats;
            WeaponHolder.EquipWeapon(weapon);
        }
Exemplo n.º 7
0
    public bool RestoreMP(ItemScriptable item)
    {
        if (health == 0)
        {
            return(false);
        }

        if (currentMp == maxMP)
        {
            return(false);
        }

        if (item.effectValue + currentMp > maxMP)
        {
            currentMp = baseStatus.mana;
        }
        else
        {
            currentMp += item.effectValue;
        }

        mpBar.fillAmount = (float)currentMp / maxMP;
        mpText.text      = "" + currentMp + "/" + maxMP;
        return(true);
    }
Exemplo n.º 8
0
 public void ClearSlot()
 {
     item                = null;
     icon.sprite         = null;
     icon.enabled        = false;
     remove.interactable = false;
 }
Exemplo n.º 9
0
 private void Start()
 {
     equipmentPanel    = GameObject.FindObjectOfType <EquipmentPanel>();
     item              = GetComponent <SetItemIcon>().GetItem;
     inventoryPosition = GameObject.FindGameObjectWithTag("Inventory").transform;
     SetIndex(transform.parent.name);
 }
Exemplo n.º 10
0
    public void EquipmentDetails(ItemScriptable item, CompareAndDisplayDetails compareAndDisplayDetails)
    {
        this.item = item;
        this.compareAndDisplayDetails = compareAndDisplayDetails;
        transform.localPosition       = SetPosition();
        buttonUnEquip.SetActive(true);
        buttonEquip.SetActive(false);
        buttonSell.SetActive(false);
        List <ItemScriptable> itemsToCheck = new List <ItemScriptable>();

        itemsToCheck.Clear();
        switch (item.slotPosition)
        {
        case SlotPosition.head:
            slotIndex = 0;
            ChangeText();
            break;

        case SlotPosition.armor:
            slotIndex = 1;
            ChangeText();
            break;

        case SlotPosition.shield:
            slotIndex = 3;
            ChangeText();
            break;

        case SlotPosition.meelWeapon:
            slotIndex = 2;
            ChangeText();
            break;

        case SlotPosition.twoHandedWeapon:
            slotIndex = 99;
            ChangeText();
            break;

        case SlotPosition.bow:
            slotIndex = 98;
            ChangeText();
            break;

        case SlotPosition.staff:
            slotIndex = 97;
            ChangeText();
            break;

        case SlotPosition.shoes:
            slotIndex = 4;
            ChangeText();
            break;

        case SlotPosition.accessories:
            slotIndex = 5;
            ChangeText();
            break;
        }
    }
Exemplo n.º 11
0
 public void UpdateRightPanel(ItemScriptable item, GameObject iconClicked)
 {
     this.iconClicked = iconClicked;
     itemClicked      = item;
     if (itemClicked != null)
     {
         rightPanel.SetActive(true);
         foreach (Transform child in spawningPoint)
         {
             GameObject.Destroy(child.gameObject);
         }
         GameObject temp = Instantiate(iconPrefab, spawningPoint);
         temp.GetComponent <SetItemIcon>().UpdateIconUI(item);
         rarity.text      = itemClicked.rarity.ToString();
         itemName.text    = itemClicked.name;
         descritpion.text = itemClicked.description;
         goldValue.text   = itemClicked.sellValue.ToString();
         if (itemClicked.damage != 0)
         {
             damage.SetActive(true);
             damageText.text = itemClicked.damage.ToString();
         }
         else
         {
             damage.SetActive(false);
         }
         if (itemClicked.armor != 0)
         {
             defence.SetActive(true);
             defenceText.text = itemClicked.armor.ToString();
         }
         else
         {
             defence.SetActive(false);
         }
         if (itemClicked.attackRate != 0)
         {
             attackSpeed.SetActive(true);
             attackSpeedText.text = itemClicked.attackRate.ToString();
         }
         else
         {
             attackSpeed.SetActive(false);
         }
         if (itemClicked.hp != 0)
         {
             health.SetActive(true);
             healthText.text = itemClicked.hp.ToString();
         }
         else
         {
             health.SetActive(false);
         }
     }
     else
     {
         rightPanel.SetActive(false);
     }
 }
Exemplo n.º 12
0
 public void EquipAndUnEquip(ItemScriptable itemToEquip, ItemScriptable itemToUnEquip, int equipmentIndex, int inventoryIndex)
 {
     hero.equipment.RemoveItem(equipmentIndex);
     hero.equipment.AddItem(itemToEquip, equipmentIndex);
     equipmentInventory.SwapItems(itemToUnEquip, inventoryIndex);
     UpdateEquipment();
     UpdateStatsUI();
 }
Exemplo n.º 13
0
    public void SwapItems(ItemScriptable item, int index)
    {
        inventory.SwapItems(item, index);
        GameObject temp = parentLocation.transform.GetChild(index).gameObject;

        temp.GetComponent <SetItemIcon>().UpdateIconUI(item);
        temp.GetComponent <CompareAndDisplayDetails>().SetItemAndEquipment(item, equipmentPanel.GetHero(), equipmentPanel);
    }
Exemplo n.º 14
0
 public void BuyItem(ItemScriptable item)
 {
     if (gold.value >= item.buyValue)
     {
         gold.value -= item.buyValue;
         AddItem(item);
     }
 }
Exemplo n.º 15
0
    private void GenerateRandomItem(int i)
    {
        ItemScriptable item = looter.GetRandomItems(i);
        GameObject     temp = Instantiate(rewardPrefab, rewardSpawningPoint);

        temp.GetComponent <SetItemIcon>().UpdateIconUI(item);
        inventory.AddItem(item);
    }
Exemplo n.º 16
0
 public void Remove(ItemScriptable item)
 {
     items.Remove(item);
     if (onItemChangedCallback != null)
     {
         onItemChangedCallback.Invoke();
     }
 }
Exemplo n.º 17
0
 void Update()
 {
     if (theChosenOne != null)
     {
         ItemScriptable ISItem = (ItemScriptable)theChosenOne;
         this.gameObject.GetComponent <SpriteRenderer>().sprite = ISItem.icon;
     }
 }
Exemplo n.º 18
0
    public void UnEquipItem(ItemScriptable item, int index)
    {
        GameObject iconToRemove = equipmentList[index].gameObject.GetComponentInChildren <SetItemIcon>().gameObject;

        hero.equipment.RemoveItem(index);
        equipmentInventory.AddItem(item);
        Destroy(iconToRemove);
        UpdateStatsUI();
    }
 public void SetItemAndEquipment(ItemScriptable item, ScriptableCharacter hero, EquipmentPanel equipmentPanel)
 {
     this.equipmentPanel = equipmentPanel;
     if (item != null && hero != null)
     {
         this.item = item;
         this.hero = hero;
     }
 }
Exemplo n.º 20
0
    public void AddItem(ItemScriptable item)
    {
        inventory.AddItem(item);
        GameObject temp = Instantiate(iconPrefab, parentLocation.transform);

        temp.GetComponent <SetItemIcon>().UpdateIconUI(item);
        temp.GetComponent <CompareAndDisplayDetails>().SetItemAndEquipment(item, equipmentPanel.GetHero(), equipmentPanel);
        temp.transform.SetSiblingIndex(0);
        inventoryCount.text = inventory.GetInvevtory.Count + "/200";
    }
 public void Initialize(ItemScriptable _item)
 {
     if (_item.stackable)
     {
         item = _item;
         ShowWidget();
         item.OnAmountChange += OnAmountChange;
         OnAmountChange();
     }
 }
Exemplo n.º 22
0
 public void EquipItem(ItemScriptable item, int index, int indexToRemove)
 {
     if (item != null)
     {
         hero.equipment.AddItem(item, index);
         equipmentInventory.RemoveItem(indexToRemove);
         UpdateEquipment();
         UpdateStatsUI();
     }
 }
Exemplo n.º 23
0
    private void Instantiate()
    {
        ItemInstance = Instantiate(PickUpItem);
        if (Amount > 0)
        {
            ItemInstance.SetAmount(Amount);
        }

        ApplyMesh();
    }
Exemplo n.º 24
0
    public void Initialize(ItemScriptable item)
    {
        Item          = item;
        itemText.text = item.Name;
        amountWidget.Initialize(item);
        equippedWidget.Initialize(item);

        itemButton.onClick.AddListener(UseItem);
        Item.OnItemDestroyed += OnItemDestroyed;
    }
Exemplo n.º 25
0
 public void Add(ItemScriptable item)
 {
     if (items.Count <= space)
     {
         items.Add(item);
         if (onItemChangedCallback != null)
         {
             onItemChangedCallback.Invoke();
         }
     }
 }
    private void Instantiate()
    {
        itemInstance = Instantiate(pickUpItem);

        if (amount > 0)
        {
            itemInstance.SetAmount(amount);
        }

        ApplyMesh();
    }
    public void DeleteItem(ItemScriptable item)
    {
        int itemIndex = items.FindIndex(listItem => listItem.name == item.name);

        if (itemIndex == -1)
        {
            return;
        }

        items.Remove(item);
    }
Exemplo n.º 28
0
    public void Initialize(ItemScriptable item)
    {
        if (!item.stackable)
        {
            return;
        }

        Item = item;
        ShowWidget();
        Item.OnAmountChange += OnAmountChange;
        OnAmountChange();
    }
Exemplo n.º 29
0
    public void Initialize(ItemScriptable item)
    {
        if (!(item is EquippableScriptable equItem))
        {
            return;
        }

        equippable = equItem;
        ShowWidget();
        equippable.OnEquipStatusChange += OnEquipmentChange;
        OnEquipmentChange();
    }
Exemplo n.º 30
0
    public bool ChangeMana(ItemScriptable item)
    {
        if (playerStatus.currentMP == playerStatus.maxMP)
        {
            errorMessage.SetActive(true);
            errorMessageText.text = "Max MP";
            errorMessageTime      = Time.time;
            return(false);
        }

        playerStatus.ChangeMana(item.effectValue + playerStatus.currentMP);
        return(true);
    }