Exemplo n.º 1
0
    private void OnItemDataChange()
    {
        if (itemData == null)
        {
            generalStatsText.text          = "";
            abilityNames.enabled           = false;
            abilityStatDescriptors.enabled = false;
            abilityStatValues.enabled      = false;
            return;
        }

        if (itemData.IsType(ItemType.Weapon))
        {
            WeaponData weaponData = itemData.WeaponData;
            UnitData   unitData   = ParentMenu.UnitData;
            combiner = new UnitWeaponCombiner(unitData, weaponData);

            abilityNames.enabled           = true;
            abilityStatDescriptors.enabled = true;
            abilityStatValues.enabled      = true;

            if (true)
            {
                generalStatsText.text = string.Format(
                    "<size=+24>{0:F1}</size> damage / second\n" +
                    "<size=+4><#{1}><u>{2} - {3}</u></color></size> damage {4}\n" +
                    "<size=+4><#{5}><u>{6:F2}</u></color></size> attacks / second {7}\n" +
                    "<size=+4><#{8}><u>{9:F2}m</u></color></size> reach {10}",
                    combiner.DamagePerSecond,
                    ColorUtility.ToHtmlStringRGB(StatValueTextColor(weaponData, combiner.DamageBonusData)),
                    combiner.MinDamage,
                    combiner.MaxDamage,
                    DamageBonusInfoString(weaponData, combiner.DamageBonusData),
                    ColorUtility.ToHtmlStringRGB(StatValueTextColor(weaponData, combiner.SpeedBonusData)),
                    combiner.AttacksPerSecond,
                    SpeedBonusInfoString(weaponData, combiner.SpeedBonusData),
                    ColorUtility.ToHtmlStringRGB(StatValueTextColor(weaponData, combiner.ReachBonusData)),
                    combiner.WeaponReach,
                    ReachBonusInfoString(weaponData, combiner.ReachBonusData)
                    );

                abilityStatValues.text = string.Format(
                    "{0}\n{1}\n\n{2}\n{3}\n\n{4}\n{5}",
                    weaponData.StrRequired,
                    AbilityBonusValueString(weaponData.StrDamageBonus, weaponData.StrSpeedBonus, weaponData.StrReachBonus),
                    weaponData.DexRequired,
                    AbilityBonusValueString(weaponData.DexDamageBonus, weaponData.DexSpeedBonus, weaponData.DexReachBonus),
                    weaponData.IntRequired,
                    AbilityBonusValueString(weaponData.IntDamageBonus, weaponData.IntSpeedBonus, weaponData.IntReachBonus)
                    );
            }
            else
            {
                generalStatsText.text = "Locked";
            }
        }
    }
Exemplo n.º 2
0
    private bool EquipRequirementsMet()
    {
        bool     result       = false;
        ItemData selectedItem = parentMenu.SelectedItem;

        if (selectedItem != null && selectedItem.IsType(ItemType.Weapon))
        {
            result = new UnitWeaponCombiner(parentMenu.UnitData, selectedItem.WeaponData).CanUse;
        }
        return(result);
    }
Exemplo n.º 3
0
    protected override void LoadDataInternal()
    {
        if (parentMenu == null)
        {
            parentMenu = GetComponentInParent <InventoryMenu>();
        }
        Debug.Assert(parentMenu != null);

        ItemData currentItem = parentMenu.SelectedItem;

        itemDescription.ItemData = currentItem;

        if (currentItem != null)
        {
            bool locked = false;
            if (currentItem.IsType(ItemType.Weapon))
            {
                UnitData           unitData = parentMenu.UnitData;
                UnitWeaponCombiner combiner = new UnitWeaponCombiner(unitData, currentItem.WeaponData);
                locked = !combiner.CanUse;
            }
            itemPreview.enabled = true;
            if (locked)
            {
                itemPreviewLockImage.enabled = true;
            }
            else
            {
                itemPreviewLockImage.enabled = false;
            }
            itemName.text = currentItem.DisplayName;
        }
        else
        {
            itemPreview.enabled          = false;
            itemPreviewLockImage.enabled = false;
            itemName.text = "";
        }
    }
Exemplo n.º 4
0
    protected override void LoadDataInternal()
    {
        if (!isInitialized)
        {
            return;
        }

        InventoryData inventoryData   = parentMenu.InventoryData;
        ItemData      itemData        = null;
        int           count           = 0;
        bool          itemIconEnabled = false;
        bool          locked          = false;

        if (!slotId.isEquipmentSlot)
        {
            InventorySlotData inventorySlotData = inventoryData.GetInventorySlotData(slotId.inventorySlotId);
            if (!inventorySlotData.Empty)
            {
                itemData        = inventorySlotData.Item;
                itemIconEnabled = true;
            }
            count = inventorySlotData.Count;
        }
        else if (slotId.isEquipmentSlot)
        {
            EquipmentSlotData eqSlotData = inventoryData.EquipmentData.GetEquipmentSlot(slotId.equipmentSlotType);
            if (!eqSlotData.Empty)
            {
                itemData = eqSlotData.Item;
                if (eqSlotData.Primary)
                {
                    itemIconEnabled = true;
                }
                else
                {
                    locked = true;
                }
            }
        }

        if (itemData != null)
        {
            if (itemData.IsType(ItemType.Weapon))
            {
                UnitWeaponCombiner combiner = new UnitWeaponCombiner(parentMenu.UnitData, itemData.WeaponData);
                if (!combiner.CanUse)
                {
                    locked = true;
                }
            }
        }

        if (itemIconEnabled)
        {
            itemIcon.enabled = true;
            itemIcon.texture = parentMenu.ItemIconAtlas;
            itemIcon.uvRect  = parentMenu.GetItemIconUvRect(itemData);
        }
        else
        {
            itemIcon.enabled = false;
        }

        lockIcon.enabled = locked;

        if (count > 1)
        {
            countText.text = count.ToString();
        }
        else
        {
            countText.text = "";
        }

        nameText.text = eqSlotName;

        if (parentMenu.IsSelected(slotId))
        {
            borderImage.color = selectedBorderColor;
        }
        else
        {
            borderImage.color = deselectedBorderColor;
        }
    }