Beispiel #1
0
    public Equipment UnequipEquipment(Equipment.Slot slot, int trinketSlot = -1)
    {
        Equipment unequippedItem = null;

        if (slot == Equipment.Slot.Trinket)
        {
            if (trinketSlot < 0)
            {
                return(null);
            }
            else
            {
                unequippedItem = currentEquipment[Equipment.Slot.Trinket][trinketSlot];
                currentEquipment[Equipment.Slot.Trinket][trinketSlot] = null;
            }
        }
        else
        {
            unequippedItem            = currentEquipment[slot][0];
            currentEquipment[slot][0] = null;
        }

        if (unequippedItem != null)
        {
            foreach (var modifier in unequippedItem.Modifiers)
            {
                modifier.OnUnequip(this);
            }
        }

        RefreshCards();

        return(unequippedItem);
    }
        public void Refresh()
        {
            title.text = Player.Name;
            stats.text =
                "Critical Chance: " + (Player.stats.criticalChance.Value * 100).ToString() + "%" +
                "\nArmor: " + (Player.stats.armor.Value * 100).ToString() + "%" +
                "\nMagic Resist: " + (Player.stats.magicResist.Value * 100).ToString() + "%" +
                "\nArmor Penetration: " + (Player.stats.armorPenetration.Value * 100).ToString() + "%" +
                "\nMagic Penetration: " + (Player.stats.magicPenetration.Value * 100).ToString() + "%" +
                "\nDamage Multiplier: " + (Player.stats.rawDamageMultiplier.Value * 100).ToString() + "%";

            healthOverlay.rectTransform.sizeDelta = new Vector2(Player.Health / (float)Player.MaxHealth * healthOverlayStartWidth, healthOverlay.rectTransform.sizeDelta.y);
            healthText.text = Player.Health + "/" + Player.MaxHealth;
            manaText.text   = Player.mana.ToString();

            int trinketIndex = 0;

            foreach (var slot in slots)
            {
                Equipment.Slot targetSlot = slot.Slot;

                if (targetSlot == Equipment.Slot.Trinket)
                {
                    slot.SetItem(Player.currentEquipment[targetSlot][trinketIndex]);
                    trinketIndex++;
                }
                else
                {
                    slot.SetItem(Player.currentEquipment[targetSlot][0]);
                }
            }

            numberOfCardsText.text = "Cards\n(" + Player.cards.Count + ")";
        }
Beispiel #3
0
    public void UnequipForPlayer(Player player, Equipment.Slot type, int trinketIndex = -1)
    {
        Equipment e = player.UnequipEquipment(type, trinketIndex);

        if (e != null)
        {
            equipmentInventory.Add(e);
        }
    }
Beispiel #4
0
    public List <Equipment> GetAllEquipmentByType(Equipment.Slot type)
    {
        List <Equipment> equipment = new List <Equipment>();

        foreach (var e in equipmentInventory)
        {
            if (e.slot == type)
            {
                equipment.Add(e);
            }
        }
        return(equipment);
    }
Beispiel #5
0
    public bool RemoveGem(EquipmentScriptableObject.GemColor gem, Equipment.Slot slot, int trinketSlot = -1)
    {
        if (slot == Equipment.Slot.Trinket)
        {
            if (trinketSlot < 0)
            {
                return(false);
            }

            if (currentEquipment[slot][trinketSlot].SocketCount < 1)
            {
                return(false);
            }

            if (currentEquipment[Equipment.Slot.Trinket][trinketSlot].RemoveGem(gem))
            {
                RefreshCards();
                return(true);
            }

            return(false);
        }
        else
        {
            if (currentEquipment[slot][0].SocketCount < 1)
            {
                return(false);
            }

            if (currentEquipment[slot][0].RemoveGem(gem))
            {
                RefreshCards();
                return(true);
            }

            return(false);
        }
    }
        void InstantiateSlot(Player player, Equipment.Slot slot, string name, int index, EquipmentPanel equipmentPanel, int trinketIndex = -1)
        {
            GameObject slotGO = (GameObject)Instantiate(equipmentSlotPrefab, slotsHolder);

            RectTransform slotTransform = ((RectTransform)slotGO.transform);

            slotTransform.anchorMax = new Vector2(0, 1);
            slotTransform.anchorMin = new Vector2(0, 1);
            int row = index / 2;

            index %= 2;
            slotTransform.anchoredPosition = new Vector2(index * slotTransform.sizeDelta.x, -row * slotTransform.sizeDelta.y) + new Vector2(slotTransform.sizeDelta.x / 2, -slotTransform.sizeDelta.y / 2);

            slotGO.name = name + (trinketIndex > -1 ? (" " + trinketIndex.ToString()) : "");
            EquipmentSlot newSlot = slotGO.GetComponentInChildren <EquipmentSlot>();

            slots.Add(newSlot);
            slots[slots.Count - 1].Init(player, slot, trinketIndex);
            slotGO.transform.Find("Equipment Piece").GetComponent <Text>().text = name + ":";

            newSlot.gameObject.GetComponentInChildren <DroppableArea>().droppable = equipmentPanel;
            newSlot.gameObject.GetComponentInChildren <RemovableArea>().removable = equipmentPanel;
        }
Beispiel #7
0
 public void Init(Player player, Equipment.Slot slot, int trinketIndex = -1)
 {
     Player       = player;
     Slot         = slot;
     TrinketIndex = trinketIndex;
 }