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 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; }