ui/RelicPanelElement.razor
@using Sandbox;
@using Sandbox.UI;
@inherits Panel
@attribute [StyleSheet("RelicPanelElement.razor.scss")]
<root style="width:@(Size)px; height:@(Size)px;">
<div class="icon_container">
<div class="icon" style="background-image:url(@Relic.GetIconFilename(RelicType)); left: -2px; bottom: -5px; filter: brightness(0) blur(3px); opacity: 0.75;"></div>
<div class="icon" style="background-image:url(@Relic.GetIconFilename(RelicType));"></div>
@if(Level > 1)
{
<div class="level">@Level</div>
}
</div>
</root>
@code
{
public RelicType RelicType { get; set; }
public float Size { get; set; }
public int Level { get; set; }
public int Index { get; set; }
protected override void OnMouseOver(MousePanelEvent e)
{
base.OnMouseOver(e);
Manager.Instance.HoveredRelicType = RelicType;
Manager.Instance.HoveredPanelIndex = Index;
Manager.Instance.IsHoveringBounty = false;
if(Manager.Instance.TimeSinceHoverSfx > 0.025f)
{
Manager.Instance.PlaySfx("click_1", new Vector3(-40f, 100f, Scene.Camera.WorldPosition.z - 500f));
Manager.Instance.TimeSinceHoverSfx = 0f;
}
}
protected override void OnMouseOut(MousePanelEvent e)
{
base.OnMouseOut(e);
if(Manager.Instance.HoveredPanelIndex == Index)
{
Manager.Instance.HoveredRelicType = RelicType.None;
Manager.Instance.HoveredPanelIndex = -1;
}
}
// public override void Tick()
// {
// StateHasChanged();
// }
protected override int BuildHash()
{
return HashCode.Combine(
RelicType,
Size,
Level,
Manager.Instance.RelicHash
// Time.Now
);
}
}