using System.Collections.Generic; using Assets.Data; using TMPro; using UnityEngine; public class TraitSelectorManager : MonoBehaviour { [SerializeField] private TMP_InputField _compositionSize; [SerializeField] private ChampionSelector _championSelector; [SerializeField] private UIToLogic _emblemSelector; [SerializeField] private int _traitThreshold = 7; private Dictionary emblemList; public void ListAllActivableCompo() { emblemList = _emblemSelector.GetEmblems(); var champList = _championSelector.GetSelectedChampions(); int compositionSize = _compositionSize.text == "" ? 1 : int.Parse(_compositionSize.text); //int i = 0; //var allComposition = TraitsMapping.GetChampionSubsets(champList, compositionSize); var coroutine = StartCoroutine(TraitsMapping.GetChampionSubsetsAsync(champList, compositionSize,emblemList, HandleCombination)); // foreach (var composition in allComposition) // { // var synergies = TraitsMapping.MergeEmblems( // TraitsMapping.TraitCountInCompo(composition), // emblemList // ); // var activeSynergies = TraitsMapping.FilterActiveTraits(synergies); // if (activeSynergies.Count >= _traitThreshold) // { // var s = TraitsMapping.CompositionToString(composition, activeSynergies); // Debug.Log(i + " : " + s); // i++; // } // } } private void HandleCombination(HashSet combination) { var synergies = TraitsMapping.MergeEmblems( TraitsMapping.TraitCountInCompo(combination), emblemList ); var activeSynergies = TraitsMapping.FilterActiveTraits(synergies); if (activeSynergies.Count >= _traitThreshold) { var s = TraitsMapping.CompositionToString(combination, activeSynergies); Debug.Log(s); } else { Debug.LogWarning("Combination not valid"); } } }