ported from perforce
This commit is contained in:
64
DonkeysAndDroids.Godot/ModifierIcon.cs
Normal file
64
DonkeysAndDroids.Godot/ModifierIcon.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using Godot;
|
||||
using RobotAndDonkey.Game;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
public partial class ModifierIcon : TextureRect
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
UpdateTooltip();
|
||||
}
|
||||
|
||||
public void Configure(Modifier modifier)
|
||||
{
|
||||
Name = $"Modifier_{modifier.Id}";
|
||||
m_Modifier = modifier;
|
||||
Refresh();
|
||||
}
|
||||
|
||||
public void Refresh()
|
||||
{
|
||||
if (m_Modifier == null)
|
||||
return;
|
||||
|
||||
Texture = GD.Load<Texture2D>(m_Modifier.Id switch
|
||||
{
|
||||
EModifierId.Corrupt => "res://images/corrupt.png",
|
||||
EModifierId.Unreliable => "res://images/unreliable.png",
|
||||
EModifierId.RaceCondition => "res://images/race-condition.png",
|
||||
EModifierId.Throttled => "res://images/throttled.png",
|
||||
EModifierId.Effective => "res://images/effective.png",
|
||||
EModifierId.Optimized => "res://images/optimized.png",
|
||||
EModifierId.Efficient => "res://images/efficient.png",
|
||||
EModifierId.Persistent => "res://images/persistent.png",
|
||||
EModifierId.Analytic => string.Empty, //"res://images/analytic.png",
|
||||
EModifierId.Rain => "res://images/rain.png",
|
||||
EModifierId.Drought => "res://images/drought.png",
|
||||
EModifierId.Pest => "res://images/pest.png",
|
||||
EModifierId.Gravity => "res://images/gravity.png",
|
||||
EModifierId.HeatWave => "res://images/heat-wave.png",
|
||||
EModifierId.CourierOverspill => string.Empty, //"res://images/courier-overspill.png",
|
||||
EModifierId.RangerFertileRest => string.Empty, //"res://images/ranger-fertile-rest.png",
|
||||
EModifierId.GlobalImmunity => string.Empty, //"res://images/global-immunity.png",
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
});
|
||||
Description = $"{m_Modifier.Id}\n{m_Modifier.ToolTip}";
|
||||
UpdateTooltip();
|
||||
}
|
||||
|
||||
private void UpdateTooltip()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Description))
|
||||
TooltipText = Description;
|
||||
else
|
||||
TooltipText = m_Modifier.Id.ToString();
|
||||
}
|
||||
|
||||
[Export(PropertyHint.MultilineText)]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
public Modifier Modifier => m_Modifier;
|
||||
|
||||
private Modifier m_Modifier;
|
||||
}
|
||||
Reference in New Issue
Block a user