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"; } } }
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); }
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 = ""; } }
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; } }