Files
TraitTracker/Assets/Data/TraitSelectorManager.cs
2024-09-20 10:42:31 +02:00

62 lines
2.1 KiB
C#

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<TraitsEnum, int> 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<ChampionsEnum> 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");
}
}
}