111 lines
2.5 KiB
C#
111 lines
2.5 KiB
C#
|
using System;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace RoR2.UI;
|
||
|
|
||
|
[Serializable]
|
||
|
public class InspectInfo
|
||
|
{
|
||
|
public Sprite Visual;
|
||
|
|
||
|
public string TitleToken;
|
||
|
|
||
|
public string DescriptionToken;
|
||
|
|
||
|
public string FlavorToken;
|
||
|
|
||
|
public Color TitleColor = Color.white;
|
||
|
|
||
|
public bool isConsumedItem;
|
||
|
|
||
|
[NonSerialized]
|
||
|
public bool isDynamicInspectInfo;
|
||
|
|
||
|
[NonSerialized]
|
||
|
public PickupIndex dynamicInspectPickupIndex;
|
||
|
|
||
|
public bool ForceShowInfo { get; private set; }
|
||
|
|
||
|
private InspectInfo()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public static implicit operator InspectInfo(PickupDef fromPickup)
|
||
|
{
|
||
|
if (fromPickup != null)
|
||
|
{
|
||
|
ItemDef itemDef = ItemCatalog.GetItemDef(fromPickup.itemIndex);
|
||
|
if (itemDef != null)
|
||
|
{
|
||
|
return itemDef;
|
||
|
}
|
||
|
EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(fromPickup.equipmentIndex);
|
||
|
if (equipmentDef != null)
|
||
|
{
|
||
|
return equipmentDef;
|
||
|
}
|
||
|
MiscPickupDef miscDef = MiscPickupCatalog.GetMiscDef(fromPickup.miscPickupIndex);
|
||
|
if (miscDef != null)
|
||
|
{
|
||
|
return miscDef;
|
||
|
}
|
||
|
}
|
||
|
return new InspectInfo();
|
||
|
}
|
||
|
|
||
|
public static implicit operator InspectInfo(ItemDef fromItem)
|
||
|
{
|
||
|
return new InspectInfo
|
||
|
{
|
||
|
Visual = fromItem.pickupIconSprite,
|
||
|
TitleToken = fromItem.nameToken,
|
||
|
DescriptionToken = fromItem.descriptionToken,
|
||
|
FlavorToken = fromItem.loreToken,
|
||
|
TitleColor = ColorCatalog.GetColor(ItemTierCatalog.GetItemTierDef(fromItem.tier)?.colorIndex ?? ColorCatalog.ColorIndex.Tier1Item),
|
||
|
isDynamicInspectInfo = true,
|
||
|
dynamicInspectPickupIndex = PickupCatalog.FindPickupIndex(fromItem.itemIndex),
|
||
|
isConsumedItem = fromItem.isConsumed
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public static implicit operator InspectInfo(EquipmentDef fromEquip)
|
||
|
{
|
||
|
return new InspectInfo
|
||
|
{
|
||
|
Visual = fromEquip.pickupIconSprite,
|
||
|
TitleToken = fromEquip.nameToken,
|
||
|
DescriptionToken = fromEquip.descriptionToken,
|
||
|
FlavorToken = fromEquip.loreToken,
|
||
|
TitleColor = ColorCatalog.GetColor(fromEquip.colorIndex),
|
||
|
isDynamicInspectInfo = true,
|
||
|
dynamicInspectPickupIndex = PickupCatalog.FindPickupIndex(fromEquip.equipmentIndex),
|
||
|
isConsumedItem = fromEquip.isConsumed
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public static implicit operator InspectInfo(MiscPickupDef fromMisc)
|
||
|
{
|
||
|
return new InspectInfo
|
||
|
{
|
||
|
Visual = fromMisc.visual,
|
||
|
TitleToken = fromMisc.nameToken,
|
||
|
DescriptionToken = fromMisc.descriptionToken,
|
||
|
TitleColor = ColorCatalog.GetColor(fromMisc.darkColor)
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public static implicit operator InspectInfo(InspectDef fromDef)
|
||
|
{
|
||
|
if (fromDef != null)
|
||
|
{
|
||
|
return fromDef.Info;
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public void MarkForceShowInfo()
|
||
|
{
|
||
|
ForceShowInfo = true;
|
||
|
}
|
||
|
}
|