You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

75 lines
2.0 KiB

using System;
using UnityEngine;
public class MateEscrListRowSlot : EscrListRowSlot
{
public enum ViewMode : byte
{
Character,
Nationality,
}
public ViewMode viewMode;
public ObjectIndicator indicator;
public GameObject unlockIndicator;
public GameObject settedIndicator;
public GameObject selectedIndicator;
MateData mateData;
public event Action<MateEscrListRowSlot> OnClick;
public override void SetData(object data)
{
mateData = data as MateData;
if(mateData is null) return;
if(indicator != null)
{
SetIconByViewMode();
indicator.IconImage.gameObject.SetActive(true);
indicator.SetStar(0);
indicator.GradeBGImage.SetImageInAtlasAsync(mateData.GradeImgAtlasPath, mateData.GradeImgNameInAtlas);
indicator.GradeBGImage.gameObject.SetActive(true);
indicator.GradeLetterImage.SetImageInAtlasAsync(mateData.GradeLetterImgAtlasPath, mateData.GradeLetterImgNameInAtlas);
indicator.GradeLetterImage.gameObject.SetActive(true);
indicator.SetLevelText(mateData.Level);
}
unlockIndicator?.SetActive(!mateData.IsUnlocked);
}
private void SetIconByViewMode()
{
switch (viewMode)
{
case ViewMode.Character:
indicator.IconImage.SetImageInAtlasAsync(mateData.SDImgAtlasPath, mateData.SDImgNameInAtlas);
break;
case ViewMode.Nationality:
indicator.IconImage.SetImageInAtlasAsync(mateData.nationality.IconAtlasName, mateData.nationality.IconNameInAtals);
break;
}
}
public void SetActiveSettedIndicator(bool active)
{
settedIndicator?.SetActive(active);
}
public void SetActiveSelectedIndicator(bool active)
{
selectedIndicator?.SetActive(active);
}
public void OnClickSlot()
{
OnClick?.Invoke(this);
}
public override object GetData() => mateData;
}