using System.Collections.Generic; using System.Linq; using Set.Data; using TMPro; using UnityEngine; namespace UI { public class EmblemSelector : MonoBehaviour { [Header("Configuration")] [SerializeField] private int _defaultEmblemCount = 0; [SerializeField] private TraitDisplayInfo _emblemUIPrefab; [Header("Layout")] [SerializeField] private Transform _traitsParent; private Dictionary _emblemUIs = new Dictionary(); // Trait definitions with display names private readonly Dictionary _traitDisplayInfo = new Dictionary< TraitsEnum, string > { { TraitsEnum.BATTLEACADEMIA, "Battle Academia" }, { TraitsEnum.CRYSTALGAMBIT, "Crystal Gambit" }, { TraitsEnum.LUCHADOR, "Luchador" }, { TraitsEnum.MIGHTYMECH, "Mighty Mech" }, { TraitsEnum.MONSTERTRAINER, "Monster Trainer" }, { TraitsEnum.SOULFIGHTER, "Soul Fighter" }, { TraitsEnum.STARGUARDIAN, "Star Guardian" }, { TraitsEnum.SUPREMECELLS, "Supreme Cells" }, { TraitsEnum.THECREW, "The Crew" }, { TraitsEnum.WRAITH, "Wraith" }, { TraitsEnum.MENTOR, "Mentor" }, { TraitsEnum.PRODIGY, "Prodigy" }, { TraitsEnum.THECHAMP, "The Champ" }, { TraitsEnum.STANCEMASTER, "Stance Master" }, { TraitsEnum.ROGUECAPTAIN, "Rogue Captain" }, { TraitsEnum.BASTION, "Bastion" }, { TraitsEnum.DUELIST, "Duelist" }, { TraitsEnum.EDGELORD, "Edgelord" }, { TraitsEnum.EXECUTIONER, "Executioner" }, { TraitsEnum.HEAVYWEIGHT, "Heavyweight" }, { TraitsEnum.JUGGERNAUT, "Juggernaut" }, { TraitsEnum.PROTECTOR, "Protector" }, { TraitsEnum.SNIPER, "Sniper" }, { TraitsEnum.SORCERER, "Sorcerer" }, { TraitsEnum.STRATEGIST, "Strategist" }, }; void Start() { CreateEmblemUIs(); } private void CreateEmblemUIs() { foreach (var kvp in _traitDisplayInfo) { var trait = kvp.Key; var traitName = kvp.Value; TraitDisplayInfo emblemUI = Instantiate( _emblemUIPrefab, _traitsParent ); emblemUI.Initialize(trait, traitName, _defaultEmblemCount); _emblemUIs.Add(trait, emblemUI); } } public Dictionary GetEmblems() { Dictionary emblems = new Dictionary(); foreach (var kvp in _emblemUIs) { var trait = kvp.Key; var emblemUI = kvp.Value; int emblemCount = emblemUI.GetEmblemCount(); emblems[(int)trait] = emblemCount; } return emblems; } } }