73 lines
2.2 KiB
C#
73 lines
2.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace GeometryTD.UI
|
|
{
|
|
public class TowerIconArea : IconArea
|
|
{
|
|
[SerializeField] private Image _baseIcon;
|
|
|
|
[SerializeField] private Image _bearingIcon;
|
|
|
|
[SerializeField] private Image _muzzleIcon;
|
|
|
|
public Sprite BaseIconSprite => _baseIcon != null ? _baseIcon.sprite : null;
|
|
|
|
public Sprite BearingIconSprite => _bearingIcon != null ? _bearingIcon.sprite : null;
|
|
|
|
public Sprite MuzzleIconSprite => _muzzleIcon != null ? _muzzleIcon.sprite : null;
|
|
|
|
public Color BaseIconColor => _baseIcon != null ? _baseIcon.color : Color.white;
|
|
|
|
public Color BearingIconColor => _bearingIcon != null ? _bearingIcon.color : Color.white;
|
|
|
|
public Color MuzzleIconColor => _muzzleIcon != null ? _muzzleIcon.color : Color.white;
|
|
|
|
public Material BaseIconMaterial => _baseIcon != null ? _baseIcon.material : null;
|
|
|
|
public Material BearingIconMaterial => _bearingIcon != null ? _bearingIcon.material : null;
|
|
|
|
public Material MuzzleIconMaterial => _muzzleIcon != null ? _muzzleIcon.material : null;
|
|
|
|
public override void OnInit(IconAreaContext context)
|
|
{
|
|
if (!(context is TowerIconAreaContext towerContext))
|
|
{
|
|
base.OnInit(context);
|
|
return;
|
|
}
|
|
|
|
SetRarity(towerContext.Rarity);
|
|
SetIconVisible(false);
|
|
|
|
SetLayerColor(_baseIcon, towerContext.BaseColor);
|
|
SetLayerColor(_bearingIcon, towerContext.BearingColor);
|
|
SetLayerColor(_muzzleIcon, towerContext.MuzzleColor);
|
|
}
|
|
|
|
public void OnInit(TowerIconAreaContext context)
|
|
{
|
|
OnInit((IconAreaContext)context);
|
|
}
|
|
|
|
public override void OnReset()
|
|
{
|
|
base.OnReset();
|
|
SetLayerColor(_baseIcon, Color.clear);
|
|
SetLayerColor(_bearingIcon, Color.clear);
|
|
SetLayerColor(_muzzleIcon, Color.clear);
|
|
SetIconVisible(false);
|
|
}
|
|
|
|
private static void SetLayerColor(Image icon, Color color)
|
|
{
|
|
if (icon == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
icon.color = color;
|
|
}
|
|
}
|
|
}
|