Compare commits

2 Commits

Author SHA1 Message Date
3545b86b97 fix emblem taking into account 2025-10-11 01:02:52 +02:00
bf4ed2c74f switch set, automatize more of the content without UI change 2025-10-11 00:53:40 +02:00
51 changed files with 11126 additions and 13680 deletions

View File

@@ -1,66 +0,0 @@
using System;
[Flags]
public enum ChampionsEnum : long
{
ASHE = 1L << 0,
BLITZCRANK = 1L << 1,
ELISE = 1L << 2,
JAX = 1L << 3,
JAYCE = 1L << 4,
LILLIA = 1L << 5,
NOMSY = 1L << 6,
POPPY = 1L << 7,
SERAPHINE = 1L << 8,
SORAKA = 1L << 9,
TWITCH = 1L << 10,
WARWICK = 1L << 11,
ZIGGS = 1L << 12,
ZOE = 1L << 13,
AHRI = 1L << 14,
AKALI = 1L << 15,
CASSIOPEIA = 1L << 16,
GALIO = 1L << 17,
KASSADIN = 1L << 18,
KOGMAW = 1L << 19,
NILAH = 1L << 20,
NUNU = 1L << 21,
RUMBLE = 1L << 22,
SHYVANA = 1L << 23,
SYNDRA = 1L << 24,
TRISTANA = 1L << 25,
ZILEAN = 1L << 26,
BARD = 1L << 27,
EZREAL = 1L << 28,
HECARIM = 1L << 29,
HWEI = 1L << 30,
JINX = 1L << 31,
KATARINA = 1L << 32,
MORDEKAISER = 1L << 33,
NEEKO = 1L << 34,
SHEN = 1L << 35,
SWAIN = 1L << 36,
VEIGAR = 1L << 37,
VEX = 1L << 38,
WUKONG = 1L << 39,
FIORA = 1L << 40,
GWEN = 1L << 41,
KALISTA = 1L << 42,
KARMA = 1L << 43,
NAMI = 1L << 44,
NASUS = 1L << 45,
OLAF = 1L << 46,
RAKAN = 1L << 47,
RYZE = 1L << 48,
TAHMKENCH = 1L << 49,
TARIC = 1L << 50,
VARUS = 1L << 51,
BRIAR = 1L << 52,
CAMILLE = 1L << 53,
DIANA = 1L << 54,
MILLIO = 1L << 55,
MORGANA = 1L << 56,
NORRA = 1L << 57,
SMOLDER = 1L << 58,
XERATH = 1L << 59,
}

View File

@@ -1,83 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using Assets.Data;
using TMPro;
using UnityEngine;
public class TraitSelectorManager : MonoBehaviour
{
[SerializeField]
private TMP_InputField _compositionSize;
[SerializeField]
private ChampionSelector _mandatorychampionSelector;
[SerializeField]
private ChampionSelector _acceptablechampionSelector;
[SerializeField]
private EmblemSelector _emblemSelector;
[SerializeField]
private int _traitThreshold = 7;
[SerializeField] public int _compositionPerFrame = 100;
public void ListAllActivableCompo()
{
var emblemList = _emblemSelector.GetEmblems();
var mandatoryChampions = ChampionUtils.ToLong(_mandatorychampionSelector.GetSelectedChampions());
var acceptableChampions = ChampionUtils.ToLong(_acceptablechampionSelector.GetSelectedChampions());
int compositionSize = _compositionSize.text == "" ? 1 : int.Parse(_compositionSize.text);
Coroutine coroutine = StartCoroutine(ComputeCompositionAsync(mandatoryChampions, acceptableChampions, compositionSize, emblemList));
}
public IEnumerator<float> ComputeCompositionAsync(long mandatoryChampions, long acceptableChampions, int compositionSize, Dictionary<int, int> emblemList)
{
var compositions = TraitsMapping.GenerateCombinations(mandatoryChampions, acceptableChampions, compositionSize);
Debug.Log($"{compositions.Count} Compositions generated.");
yield return 0f;
int compHandled = 0;
int totalCompHandled = 0;
int totalSucessfulCompFound = 0;
foreach (var composition in compositions)
{
int activeSynergies = GetActiveSynergy(composition, emblemList);
compHandled++;
totalCompHandled++;
if(TraitUtils.TraitCountFromInt(activeSynergies) >= _traitThreshold)
{
totalSucessfulCompFound++;
HashSet<ChampionsEnum> champions = ChampionUtils.FromLong(composition);
var s = TraitsMapping.CompositionToString(champions);
Debug.Log($"{totalSucessfulCompFound}: {s} - {TraitUtils.TraitCountFromInt(activeSynergies)}");
}
if(compHandled >= _compositionPerFrame)
{
Debug.LogWarning($"{totalSucessfulCompFound} : {totalCompHandled} Compositions handled.");
compHandled = 0;
yield return 0f;
}
}
Debug.Log("Total successful compositions found: " + totalSucessfulCompFound);
}
private int GetActiveSynergy(long combination, Dictionary<int, int> emblemList)
{
var synergies = TraitsMapping.TraitCountInCompo(combination);
var synergiesWithEmblem = TraitsMapping.MergeEmblems(
synergies,
emblemList
);
var activeSynergies = TraitsMapping.FilterActiveTraits(synergiesWithEmblem);
return activeSynergies;
}
public void StopAll()
{
StopAllCoroutines();
}
}

View File

@@ -1,29 +0,0 @@
using System;
[Flags]
public enum TraitsEnum : int
{
ARCANA = 1 << 0,
CHRONO = 1 << 1,
DRAGON = 1 << 2,
DRUID = 1 << 3,
ELDRICHT = 1 << 4,
FAERIE = 1 << 5,
FROST = 1 << 6,
HONEYMANCY = 1 << 7,
PORTAL = 1 << 8,
PYRO = 1 << 9,
SUGARCRAFT = 1 << 10,
WITCHCRAFT = 1 << 11,
BASTION = 1 << 12,
BLASTER = 1 << 13,
HUNTER = 1 << 14,
INCANTATOR = 1 << 15,
MAGE = 1 << 16,
MULTISTRIKER = 1 << 17,
PRESERVER = 1 << 18,
SCHOLAR = 1 << 19,
SHAPESHIFTER = 1 << 20,
VANGUARD = 1 << 21,
WARRIOR = 1 << 22
}

File diff suppressed because it is too large Load Diff

69
Assets/ReferenceSet15.cs Normal file
View File

@@ -0,0 +1,69 @@
/*
TFT Set 15 Champion Data
Format: Champion Name / Cost / Trait1 / Trait2 / (Trait3)
Aatrox / 1 / Mighty Mech / Heavyweight / Juggernaut
Ahri / 3 / Star Guardian / Sorcerer
Akali / 4 / Supreme Cells / Executioner
Ashe / 4 / Crystal Gambit / Duelist
Braum / 5 / The Champ / Luchador / Bastion
Caitlyn / 3 / Battle Academia / Sniper
Darius / 3 / Supreme Cells / Heavyweight
Dr. Mundo / 2 / Luchador / Juggernaut
Ekko / 5 / Prodigy / Sorcerer / Strategist
Ezreal / 1 / Battle Academia / Prodigy
Gangplank / 2 / Mighty Mech / Duelist
Garen / 1 / Battle Academia / Bastion
Gnar / 1 / Luchador / Sniper
Gwen / 5 / Soul Fighter / Sorcerer
Janna / 2 / Crystal Gambit / Protector / Strategist
Jarvan IV / 4 / Mighty Mech / Strategist
Jayce / 3 / Battle Academia / Heavyweight
Jhin / 2 / Wraith / Sniper
Jinx / 4 / Star Guardian / Sniper
Kai'Sa / 2 / Supreme Cells / Duelist
Kalista / 1 / Soul Fighter / Executioner
Karma / 4 / Mighty Mech / Sorcerer
Katarina / 2 / Battle Academia / Executioner
Kayle / 1 / Wraith / Duelist
Kennen / 1 / Supreme Cells / Protector / Sorcerer
Kobuko / 2 / Mentor / Heavyweight
Kog'Maw / 3 / Monster Trainer
K'Sante / 4 / Wraith / Protector
Lee Sin / 5 / Stance Master / Duelist / Juggernaut / Executioner
Leona / 4 / Battle Academia / Bastion
Lucian / 1 / Mighty Mech / Sorcerer
Lulu / 3 / Monster Trainer
Lux / 2 / Soul Fighter / Sorcerer
Malphite / 1 / The Crew / Protector
Malzahar / 3 / Wraith / Prodigy
Naafiri / 1 / Soul Fighter / Juggernaut
Neeko / 3 / Star Guardian / Protector
Poppy / 4 / Star Guardian / Heavyweight
Rakan / 2 / Battle Academia / Protector
Rammus / 3 / Monster Trainer
Rell / 1 / Star Guardian / Bastion
Ryze / 4 / Mentor / Executioner / Strategist
Samira / 4 / Soul Fighter / Edgelord
Senna / 3 / Mighty Mech / Executioner
Seraphine / 5 / Star Guardian / Prodigy
Sett / 4 / Soul Fighter / Juggernaut
Shen / 2 / The Crew / Bastion / Edgelord
Sivir / 1 / The Crew / Sniper
Smolder / 3 / Monster Trainer
Swain / 3 / Crystal Gambit / Bastion / Sorcerer
Syndra / 1 / Crystal Gambit / Star Guardian / Prodigy
Twisted Fate / 5 / Rogue Captain / The Crew
Udyr / 3 / Mentor / Juggernaut / Duelist
Varus / 5 / Wraith / Sniper
Vi / 2 / Crystal Gambit / Juggernaut
Viego / 3 / Soul Fighter / Duelist
Volibear / 4 / Luchador / Edgelord
Xayah / 2 / Star Guardian / Edgelord
Xin Zhao / 2 / Soul Fighter / Bastion
Yasuo / 3 / Mentor / Edgelord
Yone / 5 / Mighty Mech / Edgelord
Yuumi / 4 / Battle Academia / Prodigy
Zac / 1 / Wraith / Heavyweight
Ziggs / 3 / The Crew / Strategist
*/

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2a1c5bf866ccea24fad71331cd6ac6c3

8
Assets/Set.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0c5ec2ccbda5d0047bb36be0354668d7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 3352894ddb2980e45b7117dcbfc78999 guid: 02eade1755b3bee4ba788d4232fa4dd8
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Assets.Data namespace Set.Data
{ {
public class ChampionUtils public class ChampionUtils
{ {

View File

@@ -0,0 +1,81 @@
using System;
namespace Set.Data
{
[Flags]
public enum ChampionsEnum : long
{
// Cost 1 Champions
AATROX = 1L << 0,
EZREAL = 1L << 1,
GAREN = 1L << 2,
GNAR = 1L << 3,
KALISTA = 1L << 4,
KAYLE = 1L << 5,
KENNEN = 1L << 6,
LUCIAN = 1L << 7,
MALPHITE = 1L << 8,
NAAFIRI = 1L << 9,
RELL = 1L << 10,
SIVIR = 1L << 11,
SYNDRA = 1L << 12,
ZAC = 1L << 13,
// Cost 2 Champions
DRMUNDO = 1L << 14,
GANGPLANK = 1L << 15,
JANNA = 1L << 16,
JHIN = 1L << 17,
KAISA = 1L << 18,
KATARINA = 1L << 19,
KOBUKO = 1L << 20,
LUX = 1L << 21,
RAKAN = 1L << 22,
SHEN = 1L << 23,
VI = 1L << 24,
XAYAH = 1L << 25,
XINZHAO = 1L << 26,
// Cost 3 Champions
AHRI = 1L << 27,
CAITLYN = 1L << 28,
DARIUS = 1L << 29,
JAYCE = 1L << 30,
KOGMAW = 1L << 31,
LULU = 1L << 32,
MALZAHAR = 1L << 33,
NEEKO = 1L << 34,
RAMMUS = 1L << 35,
SENNA = 1L << 36,
SMOLDER = 1L << 37,
SWAIN = 1L << 38,
UDYR = 1L << 39,
VIEGO = 1L << 40,
YASUO = 1L << 41,
ZIGGS = 1L << 42,
// Cost 4 Champions
AKALI = 1L << 43,
ASHE = 1L << 44,
JARVANIV = 1L << 45,
JINX = 1L << 46,
KARMA = 1L << 47,
KSANTE = 1L << 48,
LEONA = 1L << 49,
POPPY = 1L << 50,
RYZE = 1L << 51,
SAMIRA = 1L << 52,
SETT = 1L << 53,
VOLIBEAR = 1L << 54,
YUUMI = 1L << 55,
// Cost 5 Champions
BRAUM = 1L << 56,
EKKO = 1L << 57,
GWEN = 1L << 58,
LEESIN = 1L << 59,
SERAPHINE = 1L << 60,
TWISTEDFATE = 1L << 61,
VARUS = 1L << 62,
}
}

View File

@@ -0,0 +1,109 @@
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UI;
using UnityEngine;
namespace Set.Data
{
public class TraitSelectorManager : MonoBehaviour
{
[SerializeField]
private TMP_InputField _compositionSize;
[SerializeField]
private ChampionSelector _mandatorychampionSelector;
[SerializeField]
private ChampionSelector _acceptablechampionSelector;
[SerializeField]
private EmblemSelector _emblemSelector;
[SerializeField]
private int _traitThreshold = 7;
[SerializeField]
public int _compositionPerFrame = 100;
public void ListAllActivableCompo()
{
var emblemList = _emblemSelector.GetEmblems();
var mandatoryChampions = ChampionUtils.ToLong(
_mandatorychampionSelector.GetSelectedChampions()
);
var acceptableChampions = ChampionUtils.ToLong(
_acceptablechampionSelector.GetSelectedChampions()
);
int compositionSize =
_compositionSize.text == "" ? 1 : int.Parse(_compositionSize.text);
Coroutine coroutine = StartCoroutine(
ComputeCompositionAsync(
mandatoryChampions,
acceptableChampions,
compositionSize,
emblemList
)
);
}
public IEnumerator<float> ComputeCompositionAsync(
long mandatoryChampions,
long acceptableChampions,
int compositionSize,
Dictionary<int, int> emblemList
)
{
var compositions = TraitsMapping.GenerateCombinations(
mandatoryChampions,
acceptableChampions,
compositionSize
);
Debug.Log($"{compositions.Count} Compositions generated.");
yield return 0f;
int compHandled = 0;
int totalCompHandled = 0;
int totalSucessfulCompFound = 0;
foreach (var composition in compositions)
{
int activeSynergies = GetActiveSynergy(composition, emblemList);
compHandled++;
totalCompHandled++;
if (TraitUtils.TraitCountFromInt(activeSynergies) >= _traitThreshold)
{
totalSucessfulCompFound++;
HashSet<ChampionsEnum> champions = ChampionUtils.FromLong(composition);
var s = TraitsMapping.CompositionToString(champions);
Debug.Log(
$"{totalSucessfulCompFound}: {s} - {TraitUtils.TraitCountFromInt(activeSynergies)}"
);
}
if (compHandled >= _compositionPerFrame)
{
Debug.LogWarning(
$"{totalSucessfulCompFound} : {totalCompHandled} Compositions handled."
);
compHandled = 0;
yield return 0f;
}
}
Debug.Log("Total successful compositions found: " + totalSucessfulCompFound);
}
private int GetActiveSynergy(long combination, Dictionary<int, int> emblemList)
{
var synergies = TraitsMapping.TraitCountInCompo(combination);
var synergiesWithEmblem = TraitsMapping.MergeEmblems(synergies, emblemList);
var activeSynergies = TraitsMapping.FilterActiveTraits(synergiesWithEmblem);
return activeSynergies;
}
public void StopAll()
{
StopAllCoroutines();
}
}
}

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Numerics; using System.Numerics;
namespace Assets.Data namespace Set.Data
{ {
public class TraitUtils public class TraitUtils
{ {

View File

@@ -0,0 +1,34 @@
using System;
namespace Set.Data
{
[Flags]
public enum TraitsEnum : int
{
BATTLEACADEMIA = 1 << 0,
CRYSTALGAMBIT = 1 << 1,
LUCHADOR = 1 << 2,
MIGHTYMECH = 1 << 3,
MONSTERTRAINER = 1 << 4,
SOULFIGHTER = 1 << 5,
STARGUARDIAN = 1 << 6,
SUPREMECELLS = 1 << 7,
THECREW = 1 << 8,
WRAITH = 1 << 9,
MENTOR = 1 << 10,
PRODIGY = 1 << 11,
THECHAMP = 1 << 12,
STANCEMASTER = 1 << 13,
ROGUECAPTAIN = 1 << 14,
BASTION = 1 << 15,
DUELIST = 1 << 16,
EDGELORD = 1 << 17,
EXECUTIONER = 1 << 18,
HEAVYWEIGHT = 1 << 19,
JUGGERNAUT = 1 << 20,
PROTECTOR = 1 << 21,
SNIPER = 1 << 22,
SORCERER = 1 << 23,
STRATEGIST = 1 << 24
}
}

File diff suppressed because it is too large Load Diff

8
Assets/Set13.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5dc542870b07f6b489464965d76fd310
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Set13/Scenes.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a799773b3ea26c04ea96d6421654077d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6419b0f3fb0243d4a95bd5f520385acd
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -2,7 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using NUnit.Framework; using NUnit.Framework;
namespace Assets.Data namespace Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestBitWise public class TestBitWise

View File

@@ -1,76 +1,77 @@
using System; // using System;
using System.Collections; // using System.Collections;
using System.Collections.Generic; // using System.Collections.Generic;
using NUnit.Framework; // using NUnit.Framework;
// using Set.Data;
namespace Assets.Data // namespace Tests.Editor
{ // {
[TestFixture] // [TestFixture]
public class TestChampionUtils // public class TestChampionUtils
{ // {
[Test] // [Test]
[TestCaseSource(typeof(ChampionCase), "championsEnum")] // [TestCaseSource(typeof(ChampionCase), "championsEnum")]
public void TestIntChampion(long champlong) // public void TestIntChampion(long champlong)
{ // {
var champs = ChampionUtils.FromLong(champlong); // var champs = ChampionUtils.FromLong(champlong);
long output = ChampionUtils.ToLong(champs); // long output = ChampionUtils.ToLong(champs);
Assert.IsTrue(champlong == output); // Assert.IsTrue(champlong == output);
} // }
[Test] // [Test]
[TestCaseSource(typeof(ChampionCase), "championsNth")] // [TestCaseSource(typeof(ChampionCase), "championsNth")]
public void TestGetNthChampion(long champlons, int n, long expected) // public void TestGetNthChampion(long champlons, int n, long expected)
{ // {
long output = ChampionUtils.GetNthChampion(champlons, n); // long output = ChampionUtils.GetNthChampion(champlons, n);
Assert.IsTrue(output == expected); // Assert.IsTrue(output == expected);
} // }
} // }
public class ChampionCase // public class ChampionCase
{ // {
public static IEnumerable championsEnum // public static IEnumerable championsEnum
{ // {
get // get
{ // {
yield return 1223456L; // yield return 1223456L;
yield return 3422L; // yield return 3422L;
yield return 97352L; // yield return 97352L;
yield return 67855324254L; // yield return 67855324254L;
yield return 432742125L; // yield return 432742125L;
yield return 76578256785L; // yield return 76578256785L;
yield return 12345678912345678L; // yield return 12345678912345678L;
} // }
} // }
public static IEnumerable championsNth // public static IEnumerable championsNth
{ // {
get // get
{ // {
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong(ChampionsEnum.ASHE), // ChampionUtils.ToLong(ChampionsEnum.ASHE),
0, // 0,
ChampionUtils.ToLong(ChampionsEnum.ASHE) // ChampionUtils.ToLong(ChampionsEnum.ASHE)
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong(ChampionsEnum.SMOLDER), // ChampionUtils.ToLong(ChampionsEnum.SMOLDER),
0, // 0,
ChampionUtils.ToLong(ChampionsEnum.SMOLDER) // ChampionUtils.ToLong(ChampionsEnum.SMOLDER)
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { ChampionsEnum.AHRI }), // ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { ChampionsEnum.AHRI }),
0, // 0,
ChampionUtils.ToLong(ChampionsEnum.AHRI) // ChampionUtils.ToLong(ChampionsEnum.AHRI)
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { // ChampionUtils.ToLong(new HashSet<ChampionsEnum>() {
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.POPPY, // ChampionsEnum.POPPY,
ChampionsEnum.SORAKA, // ChampionsEnum.SORAKA,
ChampionsEnum.HWEI }), // ChampionsEnum.HWEI }),
1, // 1,
ChampionUtils.ToLong(ChampionsEnum.SORAKA) // ChampionUtils.ToLong(ChampionsEnum.SORAKA)
); // );
} // }
} // }
} // }
} // }

View File

@@ -1,292 +1,293 @@
using System.Collections; // using System.Collections;
using System.Collections.Generic; // using System.Collections.Generic;
using NUnit.Framework; // using NUnit.Framework;
// using Set.Data;
namespace Assets.Data // namespace Tests.Editor
{ // {
[TestFixture] // [TestFixture]
public class TestTraitsMapping // public class TestTraitsMapping
{ // // {
[Test] // [Test]
[TestCaseSource(typeof(TraitsMappingCase), "ChampCombination")] // [TestCaseSource(typeof(TraitsMappingCase), "ChampCombination")]
public void TestChampCombination( // public void TestChampCombination(
long mandatoryChamps, // long mandatoryChamps,
long possibleChamps, // long possibleChamps,
int n, // int n,
List<long> expected // List<long> expected
) // )
{ // {
List<long> output = TraitsMapping.GenerateCombinations( // List<long> output = TraitsMapping.GenerateCombinations(
mandatoryChamps, // mandatoryChamps,
possibleChamps, // possibleChamps,
n // n
); // );
foreach (long champ in expected) // foreach (long champ in expected)
{ // {
Assert.IsTrue(output.Contains(champ)); // Assert.IsTrue(output.Contains(champ));
} // }
foreach (long champ in output) // foreach (long champ in output)
{ // {
Assert.IsTrue(expected.Contains(champ)); // Assert.IsTrue(expected.Contains(champ));
} // }
} // }
[Test] // [Test]
[TestCaseSource(typeof(TraitsMappingCase), "TestFilteringChampCombination")] // [TestCaseSource(typeof(TraitsMappingCase), "TestFilteringChampCombination")]
public void TestFilteringChampCombination( // public void TestFilteringChampCombination(
long accessibleChampions, // long accessibleChampions,
long subselectedChampions, // long subselectedChampions,
long expected // long expected
) // )
{ // {
var output = TraitsMapping.SelectSublistOfChampion(accessibleChampions, subselectedChampions); // var output = TraitsMapping.SelectSublistOfChampion(accessibleChampions, subselectedChampions);
Assert.AreEqual(expected, output); // Assert.AreEqual(expected, output);
} // }
} // }
public class TraitsMappingCase // public class TraitsMappingCase
{ // {
public static IEnumerable ChampCombination // public static IEnumerable ChampCombination
{ // {
get // get
{ // {
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
} // }
), // ),
ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { ChampionsEnum.ELISE }), // ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { ChampionsEnum.ELISE }),
3, // 3,
new List<long>() // new List<long>()
{ // {
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
} // }
), // ),
} // }
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.CASSIOPEIA, // ChampionsEnum.CASSIOPEIA,
ChampionsEnum.EZREAL, // ChampionsEnum.EZREAL,
} // }
), // ),
5, // 5,
new List<long>() // new List<long>()
{ // {
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.CASSIOPEIA, // ChampionsEnum.CASSIOPEIA,
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.EZREAL, // ChampionsEnum.EZREAL,
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
ChampionsEnum.CASSIOPEIA, // ChampionsEnum.CASSIOPEIA,
ChampionsEnum.EZREAL, // ChampionsEnum.EZREAL,
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.CASSIOPEIA, // ChampionsEnum.CASSIOPEIA,
ChampionsEnum.EZREAL, // ChampionsEnum.EZREAL,
} // }
), // ),
} // }
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() { ChampionsEnum.AHRI, ChampionsEnum.AKALI } // new HashSet<ChampionsEnum>() { ChampionsEnum.AHRI, ChampionsEnum.AKALI }
), // ),
ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { ChampionsEnum.ELISE }), // ChampionUtils.ToLong(new HashSet<ChampionsEnum>() { ChampionsEnum.ELISE }),
3, // 3,
new List<long>() // new List<long>()
{ // {
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.AKALI, // ChampionsEnum.AKALI,
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
} // }
), // ),
} // }
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.POPPY, // ChampionsEnum.POPPY,
ChampionsEnum.SORAKA, // ChampionsEnum.SORAKA,
ChampionsEnum.XERATH, // ChampionsEnum.XERATH,
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.SMOLDER, // ChampionsEnum.SMOLDER,
ChampionsEnum.MORDEKAISER, // ChampionsEnum.MORDEKAISER,
} // }
), // ),
4, // 4,
new List<long>() // new List<long>()
{ // {
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.AHRI, // ChampionsEnum.AHRI,
ChampionsEnum.POPPY, // ChampionsEnum.POPPY,
ChampionsEnum.SORAKA, // ChampionsEnum.SORAKA,
ChampionsEnum.XERATH, // ChampionsEnum.XERATH,
} // }
), // ),
} // }
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.RUMBLE, // ChampionsEnum.RUMBLE,
ChampionsEnum.GALIO, // ChampionsEnum.GALIO,
ChampionsEnum.AKALI, // ChampionsEnum.AKALI,
ChampionsEnum.BARD, // ChampionsEnum.BARD,
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.MORGANA, // ChampionsEnum.MORGANA,
ChampionsEnum.FIORA, // ChampionsEnum.FIORA,
ChampionsEnum.VARUS, // ChampionsEnum.VARUS,
} // }
), // ),
7, // 7,
new List<long>() // new List<long>()
{ // {
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.RUMBLE, // ChampionsEnum.RUMBLE,
ChampionsEnum.GALIO, // ChampionsEnum.GALIO,
ChampionsEnum.AKALI, // ChampionsEnum.AKALI,
ChampionsEnum.BARD, // ChampionsEnum.BARD,
ChampionsEnum.MORGANA, // ChampionsEnum.MORGANA,
ChampionsEnum.FIORA, // ChampionsEnum.FIORA,
ChampionsEnum.VARUS // ChampionsEnum.VARUS
} // }
), // ),
} // }
); // );
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.RUMBLE, // ChampionsEnum.RUMBLE,
ChampionsEnum.GALIO, // ChampionsEnum.GALIO,
ChampionsEnum.AKALI, // ChampionsEnum.AKALI,
ChampionsEnum.BARD, // ChampionsEnum.BARD,
ChampionsEnum.MORGANA, // ChampionsEnum.MORGANA,
ChampionsEnum.FIORA, // ChampionsEnum.FIORA,
ChampionsEnum.VARUS // ChampionsEnum.VARUS
} // }
), // ),
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.XERATH // ChampionsEnum.XERATH
} // }
), // ),
7, // 7,
new List<long>() // new List<long>()
{ // {
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.RUMBLE, // ChampionsEnum.RUMBLE,
ChampionsEnum.GALIO, // ChampionsEnum.GALIO,
ChampionsEnum.AKALI, // ChampionsEnum.AKALI,
ChampionsEnum.BARD, // ChampionsEnum.BARD,
ChampionsEnum.MORGANA, // ChampionsEnum.MORGANA,
ChampionsEnum.FIORA, // ChampionsEnum.FIORA,
ChampionsEnum.VARUS // ChampionsEnum.VARUS
} // }
), // ),
} // }
); // );
} // }
} // }
public static IEnumerable TestFilteringChampCombination // public static IEnumerable TestFilteringChampCombination
{ // {
get // get
{ // {
yield return new TestCaseData( // yield return new TestCaseData(
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.BLITZCRANK, // ChampionsEnum.BLITZCRANK,
ChampionsEnum.ELISE, // ChampionsEnum.ELISE,
ChampionsEnum.JAX // ChampionsEnum.JAX
} // }
), // ),
0b0101, // 0b0101,
ChampionUtils.ToLong( // ChampionUtils.ToLong(
new HashSet<ChampionsEnum>() // new HashSet<ChampionsEnum>()
{ // {
ChampionsEnum.ASHE, // ChampionsEnum.ASHE,
ChampionsEnum.ELISE // ChampionsEnum.ELISE
} // }
) // )
); // );
} // }
} // }
} // }
} // }

View File

@@ -1,8 +1,9 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using NUnit.Framework; using NUnit.Framework;
using Set.Data;
namespace Assets.Data namespace Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestTraitsUtils public class TestTraitsUtils
@@ -92,65 +93,46 @@ namespace Assets.Data
get get
{ {
yield return new TestCaseData( yield return new TestCaseData(
new Dictionary<int, int> { { (int)TraitsEnum.ARCANA, 1 } }, new Dictionary<int, int> { { (int)TraitsEnum.BATTLEACADEMIA, 1 } },
new Dictionary<int, int> { { (int)TraitsEnum.ARCANA, 1 } }, new Dictionary<int, int> { { (int)TraitsEnum.BATTLEACADEMIA, 1 } },
new Dictionary<int, int> { { (int)TraitsEnum.ARCANA, 2 } } new Dictionary<int, int> { { (int)TraitsEnum.BATTLEACADEMIA, 2 } }
); );
yield return new TestCaseData( yield return new TestCaseData(
new Dictionary<int, int> new Dictionary<int, int>
{ {
{ (int)TraitsEnum.ARCANA, 1 }, { (int)TraitsEnum.BATTLEACADEMIA, 1 },
{ (int)TraitsEnum.DRAGON, 2 }, { (int)TraitsEnum.CRYSTALGAMBIT, 2 },
{ (int)TraitsEnum.FROST, 3 }, { (int)TraitsEnum.LUCHADOR, 3 },
{ (int)TraitsEnum.HONEYMANCY, 4 }, { (int)TraitsEnum.MIGHTYMECH, 4 },
{ (int)TraitsEnum.PYRO, 5 }, { (int)TraitsEnum.SOULFIGHTER, 5 },
{ (int)TraitsEnum.WARRIOR, 6 }, { (int)TraitsEnum.BASTION, 6 },
}, },
new Dictionary<int, int> new Dictionary<int, int>
{ {
{ (int)TraitsEnum.ARCANA, 1 }, { (int)TraitsEnum.BATTLEACADEMIA, 1 },
{ (int)TraitsEnum.DRAGON, 2 }, { (int)TraitsEnum.CRYSTALGAMBIT, 2 },
{ (int)TraitsEnum.FROST, 3 }, { (int)TraitsEnum.LUCHADOR, 3 },
{ (int)TraitsEnum.HONEYMANCY, 4 }, { (int)TraitsEnum.MIGHTYMECH, 4 },
{ (int)TraitsEnum.PYRO, 5 }, { (int)TraitsEnum.SOULFIGHTER, 5 },
{ (int)TraitsEnum.WARRIOR, 6 }, { (int)TraitsEnum.BASTION, 6 },
}, },
new Dictionary<int, int> new Dictionary<int, int>
{ {
{ (int)TraitsEnum.ARCANA, 2 }, { (int)TraitsEnum.BATTLEACADEMIA, 2 },
{ (int)TraitsEnum.DRAGON, 4 }, { (int)TraitsEnum.CRYSTALGAMBIT, 4 },
{ (int)TraitsEnum.FROST, 6 }, { (int)TraitsEnum.LUCHADOR, 6 },
{ (int)TraitsEnum.HONEYMANCY, 8 }, { (int)TraitsEnum.MIGHTYMECH, 8 },
{ (int)TraitsEnum.PYRO, 10 }, { (int)TraitsEnum.SOULFIGHTER, 10 },
{ (int)TraitsEnum.WARRIOR, 12 }, { (int)TraitsEnum.BASTION, 12 },
} }
); );
/* /*
here is the list of traits : Set 15 traits list:
ARCANA, Origins: BATTLEACADEMIA, CRYSTALGAMBIT, LUCHADOR, MIGHTYMECH, MONSTERTRAINER,
CHRONO, SOULFIGHTER, STARGUARDIAN, SUPREMECELLS, THECREW, WRAITH, MENTOR,
DRAGON, PRODIGY, THECHAMP, STANCEMASTER, ROGUECAPTAIN
DRUID, Classes: BASTION, DUELIST, EDGELORD, EXECUTIONER, HEAVYWEIGHT, JUGGERNAUT,
ELDRICHT, PROTECTOR, SNIPER, SORCERER, STRATEGIST
FAERIE,
FROST,
HONEYMANCY,
PORTAL,
PYRO,
SUGARCRAFT,
WITCHCRAFT,
BASTION,
BLASTER,
HUNTER,
INCANTATOR,
MAGE,
MULTISTRIKER,
PRESERVER,
SCHOLAR,
SHAPESHIFTER,
VANGUARD,
WARRIOR
*/ */
} }
} }
@@ -162,19 +144,19 @@ namespace Assets.Data
yield return new TestCaseData( yield return new TestCaseData(
new Dictionary<int, int> new Dictionary<int, int>
{ {
{ (int)TraitsEnum.ARCANA, 1 }, { (int)TraitsEnum.BATTLEACADEMIA, 1 },
{ (int)TraitsEnum.DRAGON, 2 }, { (int)TraitsEnum.CRYSTALGAMBIT, 2 },
{ (int)TraitsEnum.FROST, 3 }, { (int)TraitsEnum.LUCHADOR, 3 },
{ (int)TraitsEnum.HONEYMANCY, 4 }, { (int)TraitsEnum.MIGHTYMECH, 4 },
{ (int)TraitsEnum.PYRO, 1 }, { (int)TraitsEnum.SOULFIGHTER, 1 },
{ (int)TraitsEnum.WARRIOR, 1 }, { (int)TraitsEnum.BASTION, 1 },
}, },
TraitUtils.ToInt( TraitUtils.ToInt(
new HashSet<TraitsEnum> new HashSet<TraitsEnum>
{ {
TraitsEnum.DRAGON, TraitsEnum.CRYSTALGAMBIT,
TraitsEnum.FROST, TraitsEnum.LUCHADOR,
TraitsEnum.HONEYMANCY TraitsEnum.MIGHTYMECH
} }
) )
); );
@@ -182,19 +164,19 @@ namespace Assets.Data
yield return new TestCaseData( yield return new TestCaseData(
new Dictionary<int, int> new Dictionary<int, int>
{ {
{ (int)TraitsEnum.ARCANA, 5 }, { (int)TraitsEnum.BATTLEACADEMIA, 5 },
{ (int)TraitsEnum.FROST, 2 }, { (int)TraitsEnum.LUCHADOR, 2 },
{ (int)TraitsEnum.HONEYMANCY, 7 }, { (int)TraitsEnum.STARGUARDIAN, 7 },
{ (int)TraitsEnum.PYRO, 4 }, { (int)TraitsEnum.SOULFIGHTER, 4 },
{ (int)TraitsEnum.WARRIOR, 3 }, { (int)TraitsEnum.BASTION, 3 },
}, },
TraitUtils.ToInt( TraitUtils.ToInt(
new HashSet<TraitsEnum> new HashSet<TraitsEnum>
{ {
TraitsEnum.ARCANA, TraitsEnum.BATTLEACADEMIA,
TraitsEnum.HONEYMANCY, TraitsEnum.STARGUARDIAN,
TraitsEnum.PYRO, TraitsEnum.SOULFIGHTER,
TraitsEnum.WARRIOR, TraitsEnum.BASTION
} }
) )
); );
@@ -221,46 +203,48 @@ namespace Assets.Data
yield return new TestCaseData( yield return new TestCaseData(
new HashSet<TraitsEnum> new HashSet<TraitsEnum>
{ {
TraitsEnum.ARCANA, TraitsEnum.BATTLEACADEMIA,
TraitsEnum.DRAGON TraitsEnum.CRYSTALGAMBIT
}, },
1<<0 | 1<<2 1 << 0 | 1 << 1
); );
yield return new TestCaseData( yield return new TestCaseData(
new HashSet<TraitsEnum> new HashSet<TraitsEnum>
{ {
TraitsEnum.ARCANA, TraitsEnum.BATTLEACADEMIA,
TraitsEnum.DRAGON, TraitsEnum.CRYSTALGAMBIT,
TraitsEnum.FROST, TraitsEnum.LUCHADOR,
TraitsEnum.HONEYMANCY, TraitsEnum.MIGHTYMECH,
TraitsEnum.PYRO, TraitsEnum.SOULFIGHTER,
TraitsEnum.WARRIOR TraitsEnum.BASTION
}, },
1<<0 | 1<<2 | 1<<6 | 1<<7 | 1<<9 | 1<<22 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 5 | 1 << 15
); );
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.ARCANA},1 << 0); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.BATTLEACADEMIA }, 1 << 0);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.CHRONO},1 << 1); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.CRYSTALGAMBIT }, 1 << 1);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.DRAGON},1 << 2); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.LUCHADOR }, 1 << 2);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.DRUID},1 << 3); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.MIGHTYMECH }, 1 << 3);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.ELDRICHT},1 << 4); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.MONSTERTRAINER }, 1 << 4);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.FAERIE},1 << 5); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.SOULFIGHTER }, 1 << 5);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.FROST},1 << 6); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.STARGUARDIAN }, 1 << 6);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.HONEYMANCY},1 << 7); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.SUPREMECELLS }, 1 << 7);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.PORTAL},1 << 8); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.THECREW }, 1 << 8);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.PYRO},1 << 9); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.WRAITH }, 1 << 9);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.SUGARCRAFT},1 << 10); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.MENTOR }, 1 << 10);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.WITCHCRAFT},1 << 11); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.PRODIGY }, 1 << 11);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.BASTION},1 << 12); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.THECHAMP }, 1 << 12);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.BLASTER},1 << 13); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.STANCEMASTER }, 1 << 13);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.HUNTER},1 << 14); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.ROGUECAPTAIN }, 1 << 14);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.INCANTATOR},1 << 15); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.BASTION }, 1 << 15);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.MAGE},1 << 16); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.DUELIST }, 1 << 16);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.MULTISTRIKER},1 << 17); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.EDGELORD }, 1 << 17);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.PRESERVER},1 << 18); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.EXECUTIONER }, 1 << 18);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.SCHOLAR},1 << 19); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.HEAVYWEIGHT }, 1 << 19);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.SHAPESHIFTER},1 << 20); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.JUGGERNAUT }, 1 << 20);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.VANGUARD},1 << 21); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.PROTECTOR }, 1 << 21);
yield return new TestCaseData(new HashSet<TraitsEnum>{TraitsEnum.WARRIOR},1 << 22); yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.SNIPER }, 1 << 22);
yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.SORCERER }, 1 << 23);
yield return new TestCaseData(new HashSet<TraitsEnum> { TraitsEnum.STRATEGIST }, 1 << 24);
} }
} }
} }

View File

@@ -0,0 +1,55 @@
using Set.Data;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace UI
{
public class ChampionBaseUI : MonoBehaviour
{
[SerializeField]
private Text _championNameText;
[SerializeField]
private Toggle _championToggle;
private ChampionsEnum _championType;
private bool _defaultSelected = false;
public ChampionsEnum ChampionType => _championType;
public bool IsSelected => _championToggle != null ? _championToggle.isOn : false;
public void Initialize(
ChampionsEnum championType,
string championDisplayName,
bool defaultSelected = false
)
{
_championType = championType;
_championNameText.text = championDisplayName;
_defaultSelected = defaultSelected;
// Set default selection state
if (_championToggle != null)
_championToggle.isOn = defaultSelected;
}
public void SetSelected(bool selected)
{
if (_championToggle != null)
_championToggle.isOn = selected;
}
public void ResetToDefault()
{
if (_championToggle != null)
_championToggle.isOn = _defaultSelected;
}
public void SetInteractable(bool interactable)
{
if (_championToggle != null)
_championToggle.interactable = interactable;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 320b859d2593db54f8f302651ac58a69

View File

@@ -0,0 +1,16 @@
using UnityEngine;
namespace UI
{
public class ChampionDisplayInfo : MonoBehaviour
{
public string DisplayName { get; }
public int Cost { get; }
public ChampionDisplayInfo(string displayName, int cost)
{
DisplayName = displayName;
Cost = cost;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: acd8848a11b96a9458077637bacec1fd

View File

@@ -1,325 +1,246 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Set.Data;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class ChampionSelector : MonoBehaviour namespace UI
{ {
[SerializeField] private bool _defaultSelection = false; public class ChampionSelector : MonoBehaviour
[SerializeField]
Toggle _ASHESelector;
[SerializeField]
Toggle _BLITZCRANKSelector;
[SerializeField]
Toggle _ELISESelector;
[SerializeField]
Toggle _JAXSelector;
[SerializeField]
Toggle _JAYCESelector;
[SerializeField]
Toggle _LILLIASelector;
[SerializeField]
Toggle _NOMSYSelector;
[SerializeField]
Toggle _POPPYSelector;
[SerializeField]
Toggle _SERAPHINESelector;
[SerializeField]
Toggle _SORAKASelector;
[SerializeField]
Toggle _TWITCHSelector;
[SerializeField]
Toggle _WARWICKSelector;
[SerializeField]
Toggle _ZIGGSSelector;
[SerializeField]
Toggle _ZOESelector;
[SerializeField]
Toggle _AHRISelector;
[SerializeField]
Toggle _AKALISelector;
[SerializeField]
Toggle _CASSIOPEIASelector;
[SerializeField]
Toggle _GALIOSelector;
[SerializeField]
Toggle _KASSADINSelector;
[SerializeField]
Toggle _KOGMAWSelector;
[SerializeField]
Toggle _NILAHSelector;
[SerializeField]
Toggle _NUNUSelector;
[SerializeField]
Toggle _RUMBLESelector;
[SerializeField]
Toggle _SHYVANASelector;
[SerializeField]
Toggle _SYNDRASelector;
[SerializeField]
Toggle _TRISTANASelector;
[SerializeField]
Toggle _ZILEANSelector;
[SerializeField]
Toggle _BARDSelector;
[SerializeField]
Toggle _EZREALSelector;
[SerializeField]
Toggle _HECARIMSelector;
[SerializeField]
Toggle _HWEISelector;
[SerializeField]
Toggle _JINXSelector;
[SerializeField]
Toggle _KATARINASelector;
[SerializeField]
Toggle _MORDEKAISERSelector;
[SerializeField]
Toggle _NEEKOSelector;
[SerializeField]
Toggle _SHENSelector;
[SerializeField]
Toggle _SWAINSelector;
[SerializeField]
Toggle _VEIGARSelector;
[SerializeField]
Toggle _VEXSelector;
[SerializeField]
Toggle _WUKONGSelector;
[SerializeField]
Toggle _FIORASelector;
[SerializeField]
Toggle _GWENSelector;
[SerializeField]
Toggle _KALISTASelector;
[SerializeField]
Toggle _KARMASelector;
[SerializeField]
Toggle _NAMISelector;
[SerializeField]
Toggle _NASUSSelector;
[SerializeField]
Toggle _OLAFSelector;
[SerializeField]
Toggle _RAKANSelector;
[SerializeField]
Toggle _RYZESelector;
[SerializeField]
Toggle _TAHMKENCHSelector;
[SerializeField]
Toggle _TARICSelector;
[SerializeField]
Toggle _VARUSSelector;
[SerializeField]
Toggle _BRIARSelector;
[SerializeField]
Toggle _CAMILLESelector;
[SerializeField]
Toggle _DIANASelector;
[SerializeField]
Toggle _MILLIOSelector;
[SerializeField]
Toggle _MORGANASelector;
[SerializeField]
Toggle _NORRASelector;
[SerializeField]
Toggle _SMOLDERSelector;
[SerializeField]
Toggle _XERATHSelector;
public HashSet<ChampionsEnum> GetSelectedChampions()
{ {
var selectedChampions = new HashSet<ChampionsEnum>(); [Header("Configuration")]
[SerializeField]
private bool _defaultSelection = false;
if (_ASHESelector.isOn) selectedChampions.Add(ChampionsEnum.ASHE); [SerializeField]
if (_BLITZCRANKSelector.isOn) selectedChampions.Add(ChampionsEnum.BLITZCRANK); private GameObject _championUIPrefab;
if (_ELISESelector.isOn) selectedChampions.Add(ChampionsEnum.ELISE);
if (_JAXSelector.isOn) selectedChampions.Add(ChampionsEnum.JAX); [Header("Layout")]
if (_JAYCESelector.isOn) selectedChampions.Add(ChampionsEnum.JAYCE); [SerializeField]
if (_LILLIASelector.isOn) selectedChampions.Add(ChampionsEnum.LILLIA); private Transform _cost1Parent;
if (_NOMSYSelector.isOn) selectedChampions.Add(ChampionsEnum.NOMSY);
if (_POPPYSelector.isOn) selectedChampions.Add(ChampionsEnum.POPPY); [SerializeField]
if (_SERAPHINESelector.isOn) selectedChampions.Add(ChampionsEnum.SERAPHINE); private Transform _cost2Parent;
if (_SORAKASelector.isOn) selectedChampions.Add(ChampionsEnum.SORAKA);
if (_TWITCHSelector.isOn) selectedChampions.Add(ChampionsEnum.TWITCH); [SerializeField]
if (_WARWICKSelector.isOn) selectedChampions.Add(ChampionsEnum.WARWICK); private Transform _cost3Parent;
if (_ZIGGSSelector.isOn) selectedChampions.Add(ChampionsEnum.ZIGGS);
if (_ZOESelector.isOn) selectedChampions.Add(ChampionsEnum.ZOE); [SerializeField]
if (_AHRISelector.isOn) selectedChampions.Add(ChampionsEnum.AHRI); private Transform _cost4Parent;
if (_AKALISelector.isOn) selectedChampions.Add(ChampionsEnum.AKALI);
if (_CASSIOPEIASelector.isOn) selectedChampions.Add(ChampionsEnum.CASSIOPEIA); [SerializeField]
if (_GALIOSelector.isOn) selectedChampions.Add(ChampionsEnum.GALIO); private Transform _cost5Parent;
if (_KASSADINSelector.isOn) selectedChampions.Add(ChampionsEnum.KASSADIN);
if (_KOGMAWSelector.isOn) selectedChampions.Add(ChampionsEnum.KOGMAW); [Header("Optional: Champion Icons")]
if (_NILAHSelector.isOn) selectedChampions.Add(ChampionsEnum.NILAH); [SerializeField]
if (_NUNUSelector.isOn) selectedChampions.Add(ChampionsEnum.NUNU);
if (_RUMBLESelector.isOn) selectedChampions.Add(ChampionsEnum.RUMBLE); private Dictionary<ChampionsEnum, ChampionBaseUI> _championUIs =
if (_SHYVANASelector.isOn) selectedChampions.Add(ChampionsEnum.SHYVANA); new Dictionary<ChampionsEnum, ChampionBaseUI>();
if (_SYNDRASelector.isOn) selectedChampions.Add(ChampionsEnum.SYNDRA);
if (_TRISTANASelector.isOn) selectedChampions.Add(ChampionsEnum.TRISTANA);
if (_ZILEANSelector.isOn) selectedChampions.Add(ChampionsEnum.ZILEAN); // Champion definitions with display names and costs
if (_BARDSelector.isOn) selectedChampions.Add(ChampionsEnum.BARD); private readonly Dictionary<ChampionsEnum, ChampionDisplayInfo> _championDisplayInfo =
if (_EZREALSelector.isOn) selectedChampions.Add(ChampionsEnum.EZREAL); new Dictionary<ChampionsEnum, ChampionDisplayInfo>
if (_HECARIMSelector.isOn) selectedChampions.Add(ChampionsEnum.HECARIM); {
if (_HWEISelector.isOn) selectedChampions.Add(ChampionsEnum.HWEI); // Cost 1 Champions
if (_JINXSelector.isOn) selectedChampions.Add(ChampionsEnum.JINX); { ChampionsEnum.AATROX, new ChampionDisplayInfo("Aatrox", 1) },
if (_KATARINASelector.isOn) selectedChampions.Add(ChampionsEnum.KATARINA); { ChampionsEnum.EZREAL, new ChampionDisplayInfo("Ezreal", 1) },
if (_MORDEKAISERSelector.isOn) selectedChampions.Add(ChampionsEnum.MORDEKAISER); { ChampionsEnum.GAREN, new ChampionDisplayInfo("Garen", 1) },
if (_NEEKOSelector.isOn) selectedChampions.Add(ChampionsEnum.NEEKO); { ChampionsEnum.GNAR, new ChampionDisplayInfo("Gnar", 1) },
if (_SHENSelector.isOn) selectedChampions.Add(ChampionsEnum.SHEN); { ChampionsEnum.KALISTA, new ChampionDisplayInfo("Kalista", 1) },
if (_SWAINSelector.isOn) selectedChampions.Add(ChampionsEnum.SWAIN); { ChampionsEnum.KAYLE, new ChampionDisplayInfo("Kayle", 1) },
if (_VEIGARSelector.isOn) selectedChampions.Add(ChampionsEnum.VEIGAR); { ChampionsEnum.KENNEN, new ChampionDisplayInfo("Kennen", 1) },
if (_VEXSelector.isOn) selectedChampions.Add(ChampionsEnum.VEX); { ChampionsEnum.LUCIAN, new ChampionDisplayInfo("Lucian", 1) },
if (_WUKONGSelector.isOn) selectedChampions.Add(ChampionsEnum.WUKONG); { ChampionsEnum.MALPHITE, new ChampionDisplayInfo("Malphite", 1) },
if (_FIORASelector.isOn) selectedChampions.Add(ChampionsEnum.FIORA); { ChampionsEnum.NAAFIRI, new ChampionDisplayInfo("Naafiri", 1) },
if (_GWENSelector.isOn) selectedChampions.Add(ChampionsEnum.GWEN); { ChampionsEnum.RELL, new ChampionDisplayInfo("Rell", 1) },
if (_KALISTASelector.isOn) selectedChampions.Add(ChampionsEnum.KALISTA); { ChampionsEnum.SIVIR, new ChampionDisplayInfo("Sivir", 1) },
if (_KARMASelector.isOn) selectedChampions.Add(ChampionsEnum.KARMA); { ChampionsEnum.SYNDRA, new ChampionDisplayInfo("Syndra", 1) },
if (_NAMISelector.isOn) selectedChampions.Add(ChampionsEnum.NAMI); { ChampionsEnum.ZAC, new ChampionDisplayInfo("Zac", 1) },
if (_NASUSSelector.isOn) selectedChampions.Add(ChampionsEnum.NASUS); // Cost 2 Champions
if (_OLAFSelector.isOn) selectedChampions.Add(ChampionsEnum.OLAF); { ChampionsEnum.DRMUNDO, new ChampionDisplayInfo("Dr. Mundo", 2) },
if (_RAKANSelector.isOn) selectedChampions.Add(ChampionsEnum.RAKAN); { ChampionsEnum.GANGPLANK, new ChampionDisplayInfo("Gangplank", 2) },
if (_RYZESelector.isOn) selectedChampions.Add(ChampionsEnum.RYZE); { ChampionsEnum.JANNA, new ChampionDisplayInfo("Janna", 2) },
if (_TAHMKENCHSelector.isOn) selectedChampions.Add(ChampionsEnum.TAHMKENCH); { ChampionsEnum.JHIN, new ChampionDisplayInfo("Jhin", 2) },
if (_TARICSelector.isOn) selectedChampions.Add(ChampionsEnum.TARIC); { ChampionsEnum.KAISA, new ChampionDisplayInfo("Kai'Sa", 2) },
if (_VARUSSelector.isOn) selectedChampions.Add(ChampionsEnum.VARUS); { ChampionsEnum.KATARINA, new ChampionDisplayInfo("Katarina", 2) },
if (_BRIARSelector.isOn) selectedChampions.Add(ChampionsEnum.BRIAR); { ChampionsEnum.KOBUKO, new ChampionDisplayInfo("Kobuko", 2) },
if (_CAMILLESelector.isOn) selectedChampions.Add(ChampionsEnum.CAMILLE); { ChampionsEnum.LUX, new ChampionDisplayInfo("Lux", 2) },
if (_DIANASelector.isOn) selectedChampions.Add(ChampionsEnum.DIANA); { ChampionsEnum.RAKAN, new ChampionDisplayInfo("Rakan", 2) },
if (_MILLIOSelector.isOn) selectedChampions.Add(ChampionsEnum.MILLIO); { ChampionsEnum.SHEN, new ChampionDisplayInfo("Shen", 2) },
if (_MORGANASelector.isOn) selectedChampions.Add(ChampionsEnum.MORGANA); { ChampionsEnum.VI, new ChampionDisplayInfo("Vi", 2) },
if (_NORRASelector.isOn) selectedChampions.Add(ChampionsEnum.NORRA); { ChampionsEnum.XAYAH, new ChampionDisplayInfo("Xayah", 2) },
if (_SMOLDERSelector.isOn) selectedChampions.Add(ChampionsEnum.SMOLDER); { ChampionsEnum.XINZHAO, new ChampionDisplayInfo("Xin Zhao", 2) },
if (_XERATHSelector.isOn) selectedChampions.Add(ChampionsEnum.XERATH); // Cost 3 Champions
{ ChampionsEnum.AHRI, new ChampionDisplayInfo("Ahri", 3) },
{ ChampionsEnum.CAITLYN, new ChampionDisplayInfo("Caitlyn", 3) },
{ ChampionsEnum.DARIUS, new ChampionDisplayInfo("Darius", 3) },
{ ChampionsEnum.JAYCE, new ChampionDisplayInfo("Jayce", 3) },
{ ChampionsEnum.KOGMAW, new ChampionDisplayInfo("Kog'Maw", 3) },
{ ChampionsEnum.LULU, new ChampionDisplayInfo("Lulu", 3) },
{ ChampionsEnum.MALZAHAR, new ChampionDisplayInfo("Malzahar", 3) },
{ ChampionsEnum.NEEKO, new ChampionDisplayInfo("Neeko", 3) },
{ ChampionsEnum.RAMMUS, new ChampionDisplayInfo("Rammus", 3) },
{ ChampionsEnum.SENNA, new ChampionDisplayInfo("Senna", 3) },
{ ChampionsEnum.SMOLDER, new ChampionDisplayInfo("Smolder", 3) },
{ ChampionsEnum.SWAIN, new ChampionDisplayInfo("Swain", 3) },
{ ChampionsEnum.UDYR, new ChampionDisplayInfo("Udyr", 3) },
{ ChampionsEnum.VIEGO, new ChampionDisplayInfo("Viego", 3) },
{ ChampionsEnum.YASUO, new ChampionDisplayInfo("Yasuo", 3) },
{ ChampionsEnum.ZIGGS, new ChampionDisplayInfo("Ziggs", 3) },
// Cost 4 Champions
{ ChampionsEnum.AKALI, new ChampionDisplayInfo("Akali", 4) },
{ ChampionsEnum.ASHE, new ChampionDisplayInfo("Ashe", 4) },
{ ChampionsEnum.JARVANIV, new ChampionDisplayInfo("Jarvan IV", 4) },
{ ChampionsEnum.JINX, new ChampionDisplayInfo("Jinx", 4) },
{ ChampionsEnum.KARMA, new ChampionDisplayInfo("Karma", 4) },
{ ChampionsEnum.KSANTE, new ChampionDisplayInfo("K'Sante", 4) },
{ ChampionsEnum.LEONA, new ChampionDisplayInfo("Leona", 4) },
{ ChampionsEnum.POPPY, new ChampionDisplayInfo("Poppy", 4) },
{ ChampionsEnum.RYZE, new ChampionDisplayInfo("Ryze", 4) },
{ ChampionsEnum.SAMIRA, new ChampionDisplayInfo("Samira", 4) },
{ ChampionsEnum.SETT, new ChampionDisplayInfo("Sett", 4) },
{ ChampionsEnum.VOLIBEAR, new ChampionDisplayInfo("Volibear", 4) },
{ ChampionsEnum.YUUMI, new ChampionDisplayInfo("Yuumi", 4) },
// Cost 5 Champions
{ ChampionsEnum.BRAUM, new ChampionDisplayInfo("Braum", 5) },
{ ChampionsEnum.EKKO, new ChampionDisplayInfo("Ekko", 5) },
{ ChampionsEnum.GWEN, new ChampionDisplayInfo("Gwen", 5) },
{ ChampionsEnum.LEESIN, new ChampionDisplayInfo("Lee Sin", 5) },
{ ChampionsEnum.SERAPHINE, new ChampionDisplayInfo("Seraphine", 5) },
{ ChampionsEnum.TWISTEDFATE, new ChampionDisplayInfo("Twisted Fate", 5) },
{ ChampionsEnum.VARUS, new ChampionDisplayInfo("Varus", 5) },
};
[System.Serializable]
public class ChampionIconData
{
public ChampionsEnum champion;
public Sprite icon;
}
void Start()
{
CreateChampionUIs();
}
private void CreateChampionUIs()
{
if (_championUIPrefab == null)
{
Debug.LogError("Champion UI Prefab is not assigned!");
return;
}
foreach (var kvp in _championDisplayInfo)
{
var champion = kvp.Key;
var displayInfo = kvp.Value;
Transform parent = GetParentForCost(displayInfo.Cost);
if (parent == null)
continue;
GameObject championUI = Instantiate(_championUIPrefab, parent);
ChampionBaseUI championBaseUI = championUI.GetComponent<ChampionBaseUI>();
if (championBaseUI != null)
{
championBaseUI.Initialize(champion, displayInfo.DisplayName, _defaultSelection);
_championUIs[champion] = championBaseUI;
}
else
{
Debug.LogError($"ChampionBaseUI component not found on prefab for {champion}");
}
}
}
private Transform GetParentForCost(int cost)
{
return cost switch
{
1 => _cost1Parent,
2 => _cost2Parent,
3 => _cost3Parent,
4 => _cost4Parent,
5 => _cost5Parent,
_ => null,
};
}
public HashSet<Set.Data.ChampionsEnum> GetSelectedChampions()
{
var selectedChampions = new HashSet<Set.Data.ChampionsEnum>();
foreach (var kvp in _championUIs)
{
if (kvp.Value.IsSelected)
{
selectedChampions.Add(kvp.Key);
}
}
return selectedChampions; return selectedChampions;
} }
public void Reset() public void Reset()
{ {
SetTo(_defaultSelection); ResetToDefault();
} }
public void SetTo(bool on) public void SetTo(bool on)
{ {
_ASHESelector.isOn = on; if (on)
_BLITZCRANKSelector.isOn = on; SelectAll();
_ELISESelector.isOn = on; else
_JAXSelector.isOn = on; SelectNone();
_JAYCESelector.isOn = on; }
_LILLIASelector.isOn = on;
_NOMSYSelector.isOn = on; public void SetTo(Set.Data.ChampionsEnum championValue)
_POPPYSelector.isOn = on; {
_SERAPHINESelector.isOn = on; foreach (var kvp in _championUIs)
_SORAKASelector.isOn = on; {
_TWITCHSelector.isOn = on; var champion = kvp.Key;
_WARWICKSelector.isOn = on; var championUI = kvp.Value;
_ZIGGSSelector.isOn = on;
_ZOESelector.isOn = on; bool shouldBeSelected = (championValue & champion) == champion;
_AHRISelector.isOn = on; championUI.SetSelected(shouldBeSelected);
_AKALISelector.isOn = on; }
_CASSIOPEIASelector.isOn = on; }
_GALIOSelector.isOn = on;
_KASSADINSelector.isOn = on; public void ResetToDefault()
_KOGMAWSelector.isOn = on; {
_NILAHSelector.isOn = on; foreach (var championUI in _championUIs.Values)
_NUNUSelector.isOn = on; {
_RUMBLESelector.isOn = on; championUI.ResetToDefault();
_SHYVANASelector.isOn = on; }
_SYNDRASelector.isOn = on; }
_TRISTANASelector.isOn = on;
_ZILEANSelector.isOn = on; public void SelectAll()
_BARDSelector.isOn = on; {
_EZREALSelector.isOn = on; foreach (var championUI in _championUIs.Values)
_HECARIMSelector.isOn = on; {
_HWEISelector.isOn = on; championUI.SetSelected(true);
_JINXSelector.isOn = on; }
_KATARINASelector.isOn = on; }
_MORDEKAISERSelector.isOn = on;
_NEEKOSelector.isOn = on; public void SelectNone()
_SHENSelector.isOn = on; {
_SWAINSelector.isOn = on; foreach (var championUI in _championUIs.Values)
_VEIGARSelector.isOn = on; {
_VEXSelector.isOn = on; championUI.SetSelected(false);
_WUKONGSelector.isOn = on; }
_FIORASelector.isOn = on; }
_GWENSelector.isOn = on;
_KALISTASelector.isOn = on; public void SetInteractable(bool interactable)
_KARMASelector.isOn = on; {
_NAMISelector.isOn = on; foreach (var championUI in _championUIs.Values)
_NASUSSelector.isOn = on; {
_OLAFSelector.isOn = on; championUI.SetInteractable(interactable);
_RAKANSelector.isOn = on; }
_RYZESelector.isOn = on; }
_TAHMKENCHSelector.isOn = on;
_TARICSelector.isOn = on;
_VARUSSelector.isOn = on;
_BRIARSelector.isOn = on;
_CAMILLESelector.isOn = on;
_DIANASelector.isOn = on;
_MILLIOSelector.isOn = on;
_MORGANASelector.isOn = on;
_NORRASelector.isOn = on;
_SMOLDERSelector.isOn = on;
_XERATHSelector.isOn = on;
} }
} }

View File

@@ -1,135 +1,96 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Set.Data;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
public class EmblemSelector : MonoBehaviour namespace UI
{ {
[SerializeField] private int _defaultEmblemCount = 0; public class EmblemSelector : MonoBehaviour
{
[Header("Configuration")]
[SerializeField] [SerializeField]
private TMP_InputField _arcanaEmblems; private int _defaultEmblemCount = 0;
[SerializeField] [SerializeField]
private TMP_InputField _chronoEmblems; private TraitDisplayInfo _emblemUIPrefab;
[Header("Layout")]
[SerializeField] [SerializeField]
private TMP_InputField _dragonEmblems; private Transform _traitsParent;
[SerializeField] private Dictionary<TraitsEnum, TraitDisplayInfo> _emblemUIs =
private TMP_InputField _druidEmblems; new Dictionary<TraitsEnum, TraitDisplayInfo>();
[SerializeField] // Trait definitions with display names
private TMP_InputField _eldrichtEmblems; private readonly Dictionary<TraitsEnum, string> _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" },
};
[SerializeField] void Start()
private TMP_InputField _faerieEmblems; {
CreateEmblemUIs();
}
[SerializeField] private void CreateEmblemUIs()
private TMP_InputField _frostEmblems; {
foreach (var kvp in _traitDisplayInfo)
{
var trait = kvp.Key;
var traitName = kvp.Value;
[SerializeField] TraitDisplayInfo emblemUI = Instantiate<TraitDisplayInfo>(
private TMP_InputField _honeymancyEmblems; _emblemUIPrefab,
_traitsParent
[SerializeField] );
private TMP_InputField _portalEmblems; emblemUI.Initialize(trait, traitName, _defaultEmblemCount);
_emblemUIs.Add(trait, emblemUI);
[SerializeField] }
private TMP_InputField _pyroEmblems; }
[SerializeField]
private TMP_InputField _sugarcraftEmblems;
[SerializeField]
private TMP_InputField _witchcraftEmblems;
[SerializeField]
private TMP_InputField _bastionEmblems;
[SerializeField]
private TMP_InputField _blasterEmblems;
[SerializeField]
private TMP_InputField _hunterEmblems;
[SerializeField]
private TMP_InputField _incantatorEmblems;
[SerializeField]
private TMP_InputField _mageEmblems;
[SerializeField]
private TMP_InputField _multistrikerEmblems;
[SerializeField]
private TMP_InputField _preserverEmblems;
[SerializeField]
private TMP_InputField _scholarEmblems;
[SerializeField]
private TMP_InputField _shapeshifterEmblems;
[SerializeField]
private TMP_InputField _vanguardEmblems;
[SerializeField]
private TMP_InputField _warriorEmblems;
// Start is called before the first frame update
void Start() { }
public Dictionary<int, int> GetEmblems() public Dictionary<int, int> GetEmblems()
{ {
Dictionary<int, int> emblems = new Dictionary<int, int>(); Dictionary<int, int> emblems = new Dictionary<int, int>();
emblems[(int)TraitsEnum.ARCANA] = int.Parse(_arcanaEmblems.text);
emblems[(int)TraitsEnum.CHRONO] = int.Parse(_chronoEmblems.text); foreach (var kvp in _emblemUIs)
emblems[(int)TraitsEnum.DRAGON] = int.Parse(_dragonEmblems.text); {
emblems[(int)TraitsEnum.DRUID] = int.Parse(_druidEmblems.text); var trait = kvp.Key;
emblems[(int)TraitsEnum.ELDRICHT] = int.Parse(_eldrichtEmblems.text); var emblemUI = kvp.Value;
emblems[(int)TraitsEnum.FAERIE] = int.Parse(_faerieEmblems.text);
emblems[(int)TraitsEnum.FROST] = int.Parse(_frostEmblems.text); int emblemCount = emblemUI.GetEmblemCount();
emblems[(int)TraitsEnum.HONEYMANCY] = int.Parse(_honeymancyEmblems.text); emblems[(int)trait] = emblemCount;
emblems[(int)TraitsEnum.PORTAL] = int.Parse(_portalEmblems.text);
emblems[(int)TraitsEnum.PYRO] = int.Parse(_pyroEmblems.text); }
emblems[(int)TraitsEnum.SUGARCRAFT] = int.Parse(_sugarcraftEmblems.text);
emblems[(int)TraitsEnum.WITCHCRAFT] = int.Parse(_witchcraftEmblems.text);
emblems[(int)TraitsEnum.BASTION] = int.Parse(_bastionEmblems.text);
emblems[(int)TraitsEnum.BLASTER] = int.Parse(_blasterEmblems.text);
emblems[(int)TraitsEnum.HUNTER] = int.Parse(_hunterEmblems.text);
emblems[(int)TraitsEnum.INCANTATOR] = int.Parse(_incantatorEmblems.text);
emblems[(int)TraitsEnum.MAGE] = int.Parse(_mageEmblems.text);
emblems[(int)TraitsEnum.MULTISTRIKER] = int.Parse(_multistrikerEmblems.text);
emblems[(int)TraitsEnum.PRESERVER] = int.Parse(_preserverEmblems.text);
emblems[(int)TraitsEnum.SCHOLAR] = int.Parse(_scholarEmblems.text);
emblems[(int)TraitsEnum.SHAPESHIFTER] = int.Parse(_shapeshifterEmblems.text);
emblems[(int)TraitsEnum.VANGUARD] = int.Parse(_vanguardEmblems.text);
emblems[(int)TraitsEnum.WARRIOR] = int.Parse(_warriorEmblems.text);
return emblems; return emblems;
} }
public void Reset()
{
_arcanaEmblems.text = _defaultEmblemCount.ToString();
_chronoEmblems.text = _defaultEmblemCount.ToString();
_dragonEmblems.text = _defaultEmblemCount.ToString();
_druidEmblems.text = _defaultEmblemCount.ToString();
_eldrichtEmblems.text = _defaultEmblemCount.ToString();
_faerieEmblems.text = _defaultEmblemCount.ToString();
_frostEmblems.text = _defaultEmblemCount.ToString();
_honeymancyEmblems.text = _defaultEmblemCount.ToString();
_portalEmblems.text = _defaultEmblemCount.ToString();
_pyroEmblems.text = _defaultEmblemCount.ToString();
_sugarcraftEmblems.text = _defaultEmblemCount.ToString();
_witchcraftEmblems.text = _defaultEmblemCount.ToString();
_bastionEmblems.text = _defaultEmblemCount.ToString();
_blasterEmblems.text = _defaultEmblemCount.ToString();
_hunterEmblems.text = _defaultEmblemCount.ToString();
_incantatorEmblems.text = _defaultEmblemCount.ToString();
_mageEmblems.text = _defaultEmblemCount.ToString();
_multistrikerEmblems.text = _defaultEmblemCount.ToString();
_preserverEmblems.text = _defaultEmblemCount.ToString();
_scholarEmblems.text = _defaultEmblemCount.ToString();
_shapeshifterEmblems.text = _defaultEmblemCount.ToString();
_vanguardEmblems.text = _defaultEmblemCount.ToString();
_warriorEmblems.text = _defaultEmblemCount.ToString();
} }
} }

View File

@@ -0,0 +1,49 @@
using Set.Data;
using TMPro;
using UnityEngine;
namespace UI
{
public class TraitDisplayInfo : MonoBehaviour
{
[SerializeField]
private TMP_Text _traitName;
[SerializeField]
private TMP_InputField _traitEmblemCount;
public string DisplayName { get; }
public TraitsEnum Trait { get; private set; }
public void Initialize(TraitsEnum trait, string traitName, int traitCount)
{
_traitName.text = traitName;
_traitEmblemCount.text = traitCount.ToString();
Trait = trait;
}
public int GetEmblemCount()
{
int count = 0;
// Check if the text field has valid content
if (!string.IsNullOrEmpty(_traitEmblemCount.text))
{
// Try to parse the text to an integer
if (int.TryParse(_traitEmblemCount.text, out count))
{
if (count != 0)
Debug.Log($"Trait {Trait} has count {count}");
}
else
{
Debug.LogWarning($"Failed to parse emblem count text '{_traitEmblemCount.text}' for trait {Trait}");
count = 0; // Ensure count is 0 if parsing fails
}
}
return count;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8dd0be74169a51b439320d3c9d6dcf22

View File

@@ -12,34 +12,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3}
m_Name: UniversalRenderPipelineGlobalSettings m_Name: UniversalRenderPipelineGlobalSettings
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Settings:
m_SettingsList: []
m_RuntimeSettings: []
m_AssetVersion: 5
m_DefaultVolumeProfile: {fileID: 11400000, guid: 3d4c13846a3e9bd4c8ccfbd0657ed847, type: 2}
m_RenderingLayerNames:
- Default
m_ValidRenderingLayers: 0
lightLayerName0:
lightLayerName1:
lightLayerName2:
lightLayerName3:
lightLayerName4:
lightLayerName5:
lightLayerName6:
lightLayerName7:
apvScenesData:
m_ObsoleteSerializedBakingSets: []
sceneToBakingSet:
m_Keys: []
m_Values: []
bakingSets: []
sceneBounds:
m_Keys: []
m_Values: []
hasProbeVolumes:
m_Keys: []
m_Values:
m_ShaderStrippingSetting: m_ShaderStrippingSetting:
m_Version: 0 m_Version: 0
m_ExportShaderVariants: 1 m_ExportShaderVariants: 1
@@ -57,6 +29,229 @@ MonoBehaviour:
m_StripUnusedVariants: 1 m_StripUnusedVariants: 1
m_StripScreenCoordOverrideVariants: 1 m_StripScreenCoordOverrideVariants: 1
supportRuntimeDebugDisplay: 0 supportRuntimeDebugDisplay: 0
m_EnableRenderGraph: 0
m_Settings:
m_SettingsList:
m_List:
- rid: 4268753024003604480
- rid: 4268753024003604481
- rid: 4268753024003604482
- rid: 4268753024003604483
- rid: 4268753024003604484
- rid: 4268753024003604485
- rid: 4268753024003604486
- rid: 4268753024003604487
- rid: 4268753024003604488
- rid: 4268753024003604489
- rid: 4268753024003604490
- rid: 4268753024003604491
- rid: 4268753024003604492
- rid: 4268753024003604493
- rid: 4268753024003604494
- rid: 4268753024003604495
- rid: 4268753024003604496
- rid: 4268753024003604497
- rid: 4268753024003604498
- rid: 4268753024003604499
- rid: 4268753024003604500
- rid: 5561780851219890245
m_RuntimeSettings:
m_List: []
m_AssetVersion: 8
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames:
- Default
m_ValidRenderingLayers: 0
lightLayerName0:
lightLayerName1:
lightLayerName2:
lightLayerName3:
lightLayerName4:
lightLayerName5:
lightLayerName6:
lightLayerName7:
apvScenesData:
obsoleteSceneBounds:
m_Keys: []
m_Values: []
obsoleteHasProbeVolumes:
m_Keys: []
m_Values:
references: references:
version: 2 version: 2
RefIds: [] RefIds:
- rid: 4268753024003604480
type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
- rid: 4268753024003604481
type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3}
m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3}
m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3}
m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3}
m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3}
m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3}
m_FallOffLookup: {fileID: 2800000, guid: 5688ab254e4c0634f8d6c8e0792331ca, type: 3}
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
- rid: 4268753024003604482
type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_VolumeProfile: {fileID: 11400000, guid: 3d4c13846a3e9bd4c8ccfbd0657ed847, type: 2}
- rid: 4268753024003604483
type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_EnableRenderCompatibilityMode: 1
- rid: 4268753024003604484
type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_StripUnusedPostProcessingVariants: 0
m_StripUnusedVariants: 1
m_StripScreenCoordOverrideVariants: 1
- rid: 4268753024003604485
type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 1
m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3}
- rid: 4268753024003604486
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
- rid: 4268753024003604487
type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
- rid: 4268753024003604488
type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2}
m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2}
m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
- rid: 4268753024003604489
type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3}
- rid: 4268753024003604490
type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3}
m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3}
m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3}
- rid: 4268753024003604491
type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime}
data:
m_Version: 0
m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3}
m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3}
m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3}
m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3}
m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3}
m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3}
m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3}
m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3}
m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3}
- rid: 4268753024003604492
type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
m_EnableCompilationCaching: 1
m_EnableValidityChecks: 1
- rid: 4268753024003604493
type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3}
m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3}
m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3}
- rid: 4268753024003604494
type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3}
probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3}
probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3}
- rid: 4268753024003604495
type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
m_IncludeReferencedInScenes: 0
m_IncludeAssetsByLabel: 0
m_LabelToInclude:
- rid: 4268753024003604496
type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3}
subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3}
voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3}
traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3}
traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3}
skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
- rid: 4268753024003604497
type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 0
m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3}
- rid: 4268753024003604498
type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3}
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3}
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3}
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3}
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3}
numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3}
- rid: 4268753024003604499
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
m_ProbeVolumeDisableStreamingAssets: 0
- rid: 4268753024003604500
type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 0
m_ExportShaderVariants: 1
m_ShaderVariantLogLevel: 0
m_StripRuntimeDebugShaders: 1
- rid: 5561780851219890245
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2}

View File

@@ -172,6 +172,7 @@ GameObject:
- component: {fileID: 3843129245069958865} - component: {fileID: 3843129245069958865}
- component: {fileID: 5204531747671715090} - component: {fileID: 5204531747671715090}
- component: {fileID: 2537447480496466027} - component: {fileID: 2537447480496466027}
- component: {fileID: 3487448306523232830}
m_Layer: 5 m_Layer: 5
m_Name: Champion m_Name: Champion
m_TagString: Untagged m_TagString: Untagged
@@ -237,6 +238,20 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &3487448306523232830
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3848171535236877812}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 320b859d2593db54f8f302651ac58a69, type: 3}
m_Name:
m_EditorClassIdentifier:
_championNameText: {fileID: 743061143549021463}
_championToggle: {fileID: 1670405861779857275}
--- !u!1 &6606827154433812167 --- !u!1 &6606827154433812167
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -391,4 +406,4 @@ MonoBehaviour:
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: Toggle m_Text: ChampionName

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -418,14 +418,14 @@ MonoBehaviour:
m_VerticalScrollbarEventHandler: {fileID: 0} m_VerticalScrollbarEventHandler: {fileID: 0}
m_LayoutGroup: {fileID: 0} m_LayoutGroup: {fileID: 0}
m_ScrollSensitivity: 1 m_ScrollSensitivity: 1
m_ContentType: 0 m_ContentType: 2
m_InputType: 0 m_InputType: 0
m_AsteriskChar: 42 m_AsteriskChar: 42
m_KeyboardType: 0 m_KeyboardType: 4
m_LineType: 0 m_LineType: 0
m_HideMobileInput: 0 m_HideMobileInput: 0
m_HideSoftKeyboard: 0 m_HideSoftKeyboard: 0
m_CharacterValidation: 0 m_CharacterValidation: 2
m_RegexValue: m_RegexValue:
m_GlobalPointSize: 14 m_GlobalPointSize: 14
m_CharacterLimit: 0 m_CharacterLimit: 0
@@ -534,6 +534,7 @@ GameObject:
- component: {fileID: 356784246871348238} - component: {fileID: 356784246871348238}
- component: {fileID: 6353681290361355557} - component: {fileID: 6353681290361355557}
- component: {fileID: 8108922171072356219} - component: {fileID: 8108922171072356219}
- component: {fileID: 6320555872190488032}
m_Layer: 5 m_Layer: 5
m_Name: emblemsBase m_Name: emblemsBase
m_TagString: Untagged m_TagString: Untagged
@@ -600,6 +601,20 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &6320555872190488032
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4176873586016507301}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8dd0be74169a51b439320d3c9d6dcf22, type: 3}
m_Name:
m_EditorClassIdentifier:
_traitName: {fileID: 4029719132024568495}
_traitEmblemCount: {fileID: 5836336683357219304}
--- !u!1 &6898134698727560530 --- !u!1 &6898134698727560530
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -1,14 +1,16 @@
{ {
"dependencies": { "dependencies": {
"com.unity.collab-proxy": "2.5.1", "com.unity.collab-proxy": "2.7.1",
"com.unity.feature.2d": "2.0.0", "com.unity.feature.2d": "2.0.1",
"com.unity.ide.rider": "3.0.26", "com.unity.ide.rider": "3.0.31",
"com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.visualstudio": "2.0.22",
"com.unity.render-pipelines.universal": "16.0.4", "com.unity.multiplayer.center": "1.0.0",
"com.unity.test-framework": "1.3.9", "com.unity.render-pipelines.universal": "17.0.4",
"com.unity.timeline": "1.8.6", "com.unity.test-framework": "1.4.6",
"com.unity.timeline": "1.8.7",
"com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.10",
"com.unity.ugui": "2.0.0", "com.unity.ugui": "2.0.0",
"com.unity.visualscripting": "1.8.0", "com.unity.visualscripting": "1.9.5",
"com.unity.modules.accessibility": "1.0.0", "com.unity.modules.accessibility": "1.0.0",
"com.unity.modules.ai": "1.0.0", "com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0", "com.unity.modules.androidjni": "1.0.0",

View File

@@ -1,11 +1,11 @@
{ {
"dependencies": { "dependencies": {
"com.unity.2d.animation": { "com.unity.2d.animation": {
"version": "10.0.3", "version": "10.1.4",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.2d.common": "9.0.2", "com.unity.2d.common": "9.0.7",
"com.unity.2d.sprite": "1.0.0", "com.unity.2d.sprite": "1.0.0",
"com.unity.collections": "1.2.4", "com.unity.collections": "1.2.4",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
@@ -14,7 +14,7 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.2d.aseprite": { "com.unity.2d.aseprite": {
"version": "1.0.1", "version": "1.1.8",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -26,7 +26,7 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.2d.common": { "com.unity.2d.common": {
"version": "9.0.2", "version": "9.0.7",
"depth": 2, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -46,11 +46,11 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.2d.psdimporter": { "com.unity.2d.psdimporter": {
"version": "9.0.1", "version": "9.0.3",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.2d.common": "9.0.2", "com.unity.2d.common": "9.0.4",
"com.unity.2d.sprite": "1.0.0" "com.unity.2d.sprite": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
@@ -62,11 +62,11 @@
"dependencies": {} "dependencies": {}
}, },
"com.unity.2d.spriteshape": { "com.unity.2d.spriteshape": {
"version": "10.0.2", "version": "10.0.7",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.2d.common": "9.0.2", "com.unity.2d.common": "9.0.7",
"com.unity.mathematics": "1.1.0", "com.unity.mathematics": "1.1.0",
"com.unity.modules.physics2d": "1.0.0" "com.unity.modules.physics2d": "1.0.0"
}, },
@@ -82,11 +82,10 @@
} }
}, },
"com.unity.2d.tilemap.extras": { "com.unity.2d.tilemap.extras": {
"version": "4.0.2", "version": "4.1.0",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.ugui": "1.0.0",
"com.unity.2d.tilemap": "1.0.0", "com.unity.2d.tilemap": "1.0.0",
"com.unity.modules.tilemap": "1.0.0", "com.unity.modules.tilemap": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0" "com.unity.modules.jsonserialize": "1.0.0"
@@ -94,29 +93,31 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.burst": { "com.unity.burst": {
"version": "1.8.11", "version": "1.8.19",
"depth": 1, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.1" "com.unity.mathematics": "1.2.1",
"com.unity.modules.jsonserialize": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.collab-proxy": { "com.unity.collab-proxy": {
"version": "2.5.1", "version": "2.7.1",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.collections": { "com.unity.collections": {
"version": "1.4.0", "version": "2.5.1",
"depth": 3, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.burst": "1.6.6", "com.unity.burst": "1.8.17",
"com.unity.test-framework": "1.1.31", "com.unity.test-framework": "1.4.5",
"com.unity.nuget.mono-cecil": "1.11.4" "com.unity.nuget.mono-cecil": "1.11.4",
"com.unity.test-framework.performance": "3.0.3"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
@@ -128,22 +129,22 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.feature.2d": { "com.unity.feature.2d": {
"version": "2.0.0", "version": "2.0.1",
"depth": 0, "depth": 0,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.2d.animation": "10.0.3", "com.unity.2d.animation": "10.1.4",
"com.unity.2d.pixel-perfect": "5.0.3", "com.unity.2d.pixel-perfect": "5.0.3",
"com.unity.2d.psdimporter": "9.0.1", "com.unity.2d.psdimporter": "9.0.3",
"com.unity.2d.sprite": "1.0.0", "com.unity.2d.sprite": "1.0.0",
"com.unity.2d.spriteshape": "10.0.2", "com.unity.2d.spriteshape": "10.0.7",
"com.unity.2d.tilemap": "1.0.0", "com.unity.2d.tilemap": "1.0.0",
"com.unity.2d.tilemap.extras": "4.0.2", "com.unity.2d.tilemap.extras": "4.1.0",
"com.unity.2d.aseprite": "1.0.1" "com.unity.2d.aseprite": "1.1.8"
} }
}, },
"com.unity.ide.rider": { "com.unity.ide.rider": {
"version": "3.0.26", "version": "3.0.31",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -161,71 +162,104 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.mathematics": { "com.unity.mathematics": {
"version": "1.2.6", "version": "1.3.2",
"depth": 1, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.multiplayer.center": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.modules.uielements": "1.0.0"
}
},
"com.unity.nuget.mono-cecil": { "com.unity.nuget.mono-cecil": {
"version": "1.11.4", "version": "1.11.4",
"depth": 4, "depth": 3,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.render-pipelines.core": { "com.unity.render-pipelines.core": {
"version": "16.0.4", "version": "17.0.4",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.4", "com.unity.burst": "1.8.14",
"com.unity.mathematics": "1.3.2",
"com.unity.ugui": "2.0.0", "com.unity.ugui": "2.0.0",
"com.unity.collections": "2.4.3",
"com.unity.modules.physics": "1.0.0", "com.unity.modules.physics": "1.0.0",
"com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrain": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0",
"com.unity.rendering.light-transport": "1.0.0" "com.unity.rendering.light-transport": "1.0.1"
} }
}, },
"com.unity.render-pipelines.universal": { "com.unity.render-pipelines.universal": {
"version": "16.0.4", "version": "17.0.4",
"depth": 0, "depth": 0,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.1", "com.unity.render-pipelines.core": "17.0.4",
"com.unity.burst": "1.8.9", "com.unity.shadergraph": "17.0.4",
"com.unity.render-pipelines.core": "16.0.4", "com.unity.render-pipelines.universal-config": "17.0.3"
"com.unity.shadergraph": "16.0.4" }
},
"com.unity.render-pipelines.universal-config": {
"version": "17.0.3",
"depth": 1,
"source": "builtin",
"dependencies": {
"com.unity.render-pipelines.core": "17.0.3"
} }
}, },
"com.unity.rendering.light-transport": { "com.unity.rendering.light-transport": {
"version": "1.0.0", "version": "1.0.1",
"depth": 2, "depth": 2,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.collections": "1.4.0", "com.unity.collections": "2.2.0",
"com.unity.mathematics": "1.2.4", "com.unity.mathematics": "1.2.4",
"com.unity.render-pipelines.core": "16.0.1" "com.unity.modules.terrain": "1.0.0"
} }
}, },
"com.unity.searcher": { "com.unity.searcher": {
"version": "4.9.2", "version": "4.9.3",
"depth": 2, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.shadergraph": { "com.unity.shadergraph": {
"version": "16.0.4", "version": "17.0.4",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.render-pipelines.core": "16.0.4", "com.unity.render-pipelines.core": "17.0.4",
"com.unity.searcher": "4.9.2" "com.unity.searcher": "4.9.3"
} }
}, },
"com.unity.sysroot": {
"version": "2.0.10",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.sysroot.linux-x86_64": {
"version": "2.0.9",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.sysroot": "2.0.10"
},
"url": "https://packages.unity.com"
},
"com.unity.test-framework": { "com.unity.test-framework": {
"version": "1.3.9", "version": "1.4.6",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -235,8 +269,18 @@
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.test-framework.performance": {
"version": "3.0.3",
"depth": 3,
"source": "registry",
"dependencies": {
"com.unity.test-framework": "1.1.31",
"com.unity.modules.jsonserialize": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.timeline": { "com.unity.timeline": {
"version": "1.8.6", "version": "1.8.7",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -247,6 +291,16 @@
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.toolchain.win-x86_64-linux-x86_64": {
"version": "2.0.10",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.sysroot": "2.0.10",
"com.unity.sysroot.linux-x86_64": "2.0.9"
},
"url": "https://packages.unity.com"
},
"com.unity.ugui": { "com.unity.ugui": {
"version": "2.0.0", "version": "2.0.0",
"depth": 0, "depth": 0,
@@ -257,7 +311,7 @@
} }
}, },
"com.unity.visualscripting": { "com.unity.visualscripting": {
"version": "1.8.0", "version": "1.9.5",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {

View File

@@ -3,7 +3,7 @@
--- !u!30 &1 --- !u!30 &1
GraphicsSettings: GraphicsSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 15 serializedVersion: 16
m_Deferred: m_Deferred:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
@@ -57,10 +57,11 @@ GraphicsSettings:
m_FogKeepExp: 1 m_FogKeepExp: 1
m_FogKeepExp2: 1 m_FogKeepExp2: 1
m_AlbedoSwatchInfos: [] m_AlbedoSwatchInfos: []
m_RenderPipelineGlobalSettingsMap:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 93b439a37f63240aca3dd4e01d978a9f, type: 2}
m_LightsUseLinearIntensity: 1 m_LightsUseLinearIntensity: 1
m_LightsUseColorTemperature: 1 m_LightsUseColorTemperature: 1
m_DefaultRenderingLayerMask: 1
m_LogWhenShaderIsCompiled: 0 m_LogWhenShaderIsCompiled: 0
m_SRPDefaultSettings:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 93b439a37f63240aca3dd4e01d978a9f, type: 2}
m_LightProbeOutsideHullStrategy: 0 m_LightProbeOutsideHullStrategy: 0
m_CameraRelativeLightCulling: 0
m_CameraRelativeShadowCulling: 0

View File

@@ -3,7 +3,7 @@
--- !u!129 &1 --- !u!129 &1
PlayerSettings: PlayerSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 27 serializedVersion: 28
productGUID: c53d578c6ad5f344d827a4464f813eb3 productGUID: c53d578c6ad5f344d827a4464f813eb3
AndroidProfiler: 0 AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0 AndroidFilterTouchesWhenObscured: 0
@@ -49,6 +49,7 @@ PlayerSettings:
m_StereoRenderingPath: 0 m_StereoRenderingPath: 0
m_ActiveColorSpace: 1 m_ActiveColorSpace: 1
unsupportedMSAAFallback: 0 unsupportedMSAAFallback: 0
m_SpriteBatchMaxVertexCount: 65535
m_SpriteBatchVertexThreshold: 300 m_SpriteBatchVertexThreshold: 300
m_MTRendering: 1 m_MTRendering: 1
mipStripping: 0 mipStripping: 0
@@ -70,17 +71,18 @@ PlayerSettings:
androidRenderOutsideSafeArea: 1 androidRenderOutsideSafeArea: 1
androidUseSwappy: 1 androidUseSwappy: 1
androidBlitType: 0 androidBlitType: 0
androidResizableWindow: 0 androidResizeableActivity: 0
androidDefaultWindowWidth: 1920 androidDefaultWindowWidth: 1920
androidDefaultWindowHeight: 1080 androidDefaultWindowHeight: 1080
androidMinimumWindowWidth: 400 androidMinimumWindowWidth: 400
androidMinimumWindowHeight: 300 androidMinimumWindowHeight: 300
androidFullscreenMode: 1 androidFullscreenMode: 1
androidAutoRotationBehavior: 1
androidPredictiveBackSupport: 0
androidApplicationEntry: 2 androidApplicationEntry: 2
defaultIsNativeResolution: 1 defaultIsNativeResolution: 1
macRetinaSupport: 1 macRetinaSupport: 1
runInBackground: 0 runInBackground: 0
captureSingleScreen: 0
muteOtherAudioSources: 0 muteOtherAudioSources: 0
Prepare IOS For Recording: 0 Prepare IOS For Recording: 0
Force IOS Speakers When Recording: 0 Force IOS Speakers When Recording: 0
@@ -136,6 +138,8 @@ PlayerSettings:
vulkanEnableLateAcquireNextImage: 0 vulkanEnableLateAcquireNextImage: 0
vulkanEnableCommandBufferRecycling: 1 vulkanEnableCommandBufferRecycling: 1
loadStoreDebugModeEnabled: 0 loadStoreDebugModeEnabled: 0
visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0
bundleVersion: 1.0 bundleVersion: 1.0
preloadedAssets: [] preloadedAssets: []
metroInputSource: 0 metroInputSource: 0
@@ -163,6 +167,7 @@ PlayerSettings:
buildNumber: buildNumber:
Bratwurst: 0 Bratwurst: 0
Standalone: 0 Standalone: 0
VisionOS: 0
iPhone: 0 iPhone: 0
tvOS: 0 tvOS: 0
overrideDefaultApplicationIdentifier: 0 overrideDefaultApplicationIdentifier: 0
@@ -183,12 +188,14 @@ PlayerSettings:
strictShaderVariantMatching: 0 strictShaderVariantMatching: 0
VertexChannelCompressionMask: 4054 VertexChannelCompressionMask: 4054
iPhoneSdkVersion: 988 iPhoneSdkVersion: 988
iOSSimulatorArchitecture: 0
iOSTargetOSVersionString: 13.0 iOSTargetOSVersionString: 13.0
tvOSSdkVersion: 0 tvOSSdkVersion: 0
tvOSSimulatorArchitecture: 0
tvOSRequireExtendedGameController: 0 tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 13.0 tvOSTargetOSVersionString: 13.0
bratwurstSdkVersion: 0 VisionOSSdkVersion: 0
bratwurstTargetOSVersionString: 13.0 VisionOSTargetOSVersionString: 1.0
uIPrerenderedIcon: 0 uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0 uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1 uIRequiresFullScreen: 1
@@ -213,7 +220,6 @@ PlayerSettings:
rgba: 0 rgba: 0
iOSLaunchScreenFillPct: 100 iOSLaunchScreenFillPct: 100
iOSLaunchScreenSize: 100 iOSLaunchScreenSize: 100
iOSLaunchScreenCustomXibPath:
iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadType: 0
iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadImage: {fileID: 0}
iOSLaunchScreeniPadBackgroundColor: iOSLaunchScreeniPadBackgroundColor:
@@ -221,7 +227,6 @@ PlayerSettings:
rgba: 0 rgba: 0
iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadFillPct: 100
iOSLaunchScreeniPadSize: 100 iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath:
iOSLaunchScreenCustomStoryboardPath: iOSLaunchScreenCustomStoryboardPath:
iOSLaunchScreeniPadCustomStoryboardPath: iOSLaunchScreeniPadCustomStoryboardPath:
iOSDeviceRequirements: [] iOSDeviceRequirements: []
@@ -231,15 +236,16 @@ PlayerSettings:
iOSMetalForceHardShadows: 0 iOSMetalForceHardShadows: 0
metalEditorSupport: 1 metalEditorSupport: 1
metalAPIValidation: 1 metalAPIValidation: 1
metalCompileShaderBinary: 0
iOSRenderExtraFrameOnPause: 0 iOSRenderExtraFrameOnPause: 0
iosCopyPluginsCodeInsteadOfSymlink: 0 iosCopyPluginsCodeInsteadOfSymlink: 0
appleDeveloperTeamID: appleDeveloperTeamID:
iOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileID:
tvOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID:
bratwurstManualSigningProvisioningProfileID: VisionOSManualSigningProvisioningProfileID:
iOSManualSigningProvisioningProfileType: 0 iOSManualSigningProvisioningProfileType: 0
tvOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0
bratwurstManualSigningProvisioningProfileType: 0 VisionOSManualSigningProvisioningProfileType: 0
appleEnableAutomaticSigning: 0 appleEnableAutomaticSigning: 0
iOSRequireARKit: 0 iOSRequireARKit: 0
iOSAutomaticallyDetectAndAddCapabilities: 1 iOSAutomaticallyDetectAndAddCapabilities: 1
@@ -257,7 +263,6 @@ PlayerSettings:
useCustomGradleSettingsTemplate: 0 useCustomGradleSettingsTemplate: 0
useCustomProguardFile: 0 useCustomProguardFile: 0
AndroidTargetArchitectures: 2 AndroidTargetArchitectures: 2
AndroidTargetDevices: 0
AndroidSplashScreenScale: 0 AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0} androidSplashScreen: {fileID: 0}
AndroidKeystoreName: AndroidKeystoreName:
@@ -276,12 +281,12 @@ PlayerSettings:
height: 180 height: 180
banner: {fileID: 0} banner: {fileID: 0}
androidGamepadSupportLevel: 0 androidGamepadSupportLevel: 0
chromeosInputEmulation: 1
AndroidMinifyRelease: 0 AndroidMinifyRelease: 0
AndroidMinifyDebug: 0 AndroidMinifyDebug: 0
AndroidValidateAppBundleSize: 1 AndroidValidateAppBundleSize: 1
AndroidAppBundleSizeToValidate: 150 AndroidAppBundleSizeToValidate: 150
AndroidReportGooglePlayAppDependencies: 1 AndroidReportGooglePlayAppDependencies: 1
androidSymbolsSizeThreshold: 800
m_BuildTargetIcons: [] m_BuildTargetIcons: []
m_BuildTargetPlatformIcons: m_BuildTargetPlatformIcons:
- m_BuildTarget: Android - m_BuildTarget: Android
@@ -393,7 +398,6 @@ PlayerSettings:
iPhone: 1 iPhone: 1
tvOS: 1 tvOS: 1
m_BuildTargetGroupLightmapEncodingQuality: [] m_BuildTargetGroupLightmapEncodingQuality: []
m_BuildTargetGroupHDRCubemapEncodingQuality: []
m_BuildTargetGroupLightmapSettings: [] m_BuildTargetGroupLightmapSettings: []
m_BuildTargetGroupLoadStoreDebugModeSettings: [] m_BuildTargetGroupLoadStoreDebugModeSettings: []
m_BuildTargetNormalMapEncoding: [] m_BuildTargetNormalMapEncoding: []
@@ -401,6 +405,7 @@ PlayerSettings:
playModeTestRunnerEnabled: 0 playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0 runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1 actionOnDotNetUnhandledException: 1
editorGfxJobOverride: 1
enableInternalProfiler: 0 enableInternalProfiler: 0
logObjCUncaughtExceptions: 1 logObjCUncaughtExceptions: 1
enableCrashReportAPI: 0 enableCrashReportAPI: 0
@@ -408,7 +413,7 @@ PlayerSettings:
locationUsageDescription: locationUsageDescription:
microphoneUsageDescription: microphoneUsageDescription:
bluetoothUsageDescription: bluetoothUsageDescription:
macOSTargetOSVersion: 10.13.0 macOSTargetOSVersion: 11.0
switchNMETAOverride: switchNMETAOverride:
switchNetLibKey: switchNetLibKey:
switchSocketMemoryPoolSize: 6144 switchSocketMemoryPoolSize: 6144
@@ -553,6 +558,7 @@ PlayerSettings:
switchEnableRamDiskSupport: 0 switchEnableRamDiskSupport: 0
switchMicroSleepForYieldTime: 25 switchMicroSleepForYieldTime: 25
switchRamDiskSpaceSize: 12 switchRamDiskSpaceSize: 12
switchUpgradedPlayerSettingsToNMETA: 0
ps4NPAgeRating: 12 ps4NPAgeRating: 12
ps4NPTitleSecret: ps4NPTitleSecret:
ps4NPTrophyPackPath: ps4NPTrophyPackPath:
@@ -660,12 +666,13 @@ PlayerSettings:
webGLWebAssemblyTable: 0 webGLWebAssemblyTable: 0
webGLWebAssemblyBigInt: 0 webGLWebAssemblyBigInt: 0
webGLCloseOnQuit: 0 webGLCloseOnQuit: 0
webWasm2023: 0
scriptingDefineSymbols: {} scriptingDefineSymbols: {}
additionalCompilerArguments: {} additionalCompilerArguments: {}
platformArchitecture: {} platformArchitecture: {}
scriptingBackend: scriptingBackend:
Android: 1 Android: 1
Standalone: 0 Standalone: 1
il2cppCompilerConfiguration: {} il2cppCompilerConfiguration: {}
il2cppCodeGeneration: {} il2cppCodeGeneration: {}
il2cppStacktraceInformation: {} il2cppStacktraceInformation: {}
@@ -717,6 +724,7 @@ PlayerSettings:
metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
metroSplashScreenUseBackgroundColor: 0 metroSplashScreenUseBackgroundColor: 0
syncCapabilities: 0
platformCapabilities: {} platformCapabilities: {}
metroTargetDeviceFamilies: {} metroTargetDeviceFamilies: {}
metroFTAName: metroFTAName:
@@ -784,3 +792,5 @@ PlayerSettings:
platformRequiresReadableAssets: 0 platformRequiresReadableAssets: 0
virtualTexturingSupportEnabled: 0 virtualTexturingSupportEnabled: 0
insecureHttpOption: 0 insecureHttpOption: 0
androidVulkanDenyFilterList: []
androidVulkanAllowFilterList: []

View File

@@ -1,2 +1,2 @@
m_EditorVersion: 2023.2.3f1 m_EditorVersion: 6000.0.40f1
m_EditorVersionWithRevision: 2023.2.3f1 (21747dafc6ee) m_EditorVersionWithRevision: 6000.0.40f1 (157d81624ddf)

View File

@@ -61,6 +61,11 @@
"type": "UnityEngine.PhysicMaterial", "type": "UnityEngine.PhysicMaterial",
"defaultInstantiationMode": 0 "defaultInstantiationMode": 0
}, },
{
"userAdded": false,
"type": "UnityEngine.PhysicsMaterial",
"defaultInstantiationMode": 0
},
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.PhysicsMaterial2D", "type": "UnityEngine.PhysicsMaterial2D",

View File

@@ -12,5 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
shaderVariantLimit: 2048
customInterpolatorErrorThreshold: 32 customInterpolatorErrorThreshold: 32
customInterpolatorWarningThreshold: 16 customInterpolatorWarningThreshold: 16
customHeatmapValues: {fileID: 0}

View File

@@ -8,6 +8,9 @@ EditorUserSettings:
RecentlyUsedSceneGuid-0: RecentlyUsedSceneGuid-0:
value: 5b520d0503545b0d0c0c0a2715770748154f4d2c7d7d7e627a7d4a35b4e1646a value: 5b520d0503545b0d0c0c0a2715770748154f4d2c7d7d7e627a7d4a35b4e1646a
flags: 0 flags: 0
RecentlyUsedSceneGuid-1:
value: 5505055f07050f080b0c5c7044705b44174e4d28287d20657f794e6bb7e1373c
flags: 0
vcSharedLogLevel: vcSharedLogLevel:
value: 0d5e400f0650 value: 0d5e400f0650
flags: 0 flags: 0
@@ -25,5 +28,6 @@ EditorUserSettings:
m_VCHierarchyOverlayIcons: 1 m_VCHierarchyOverlayIcons: 1
m_VCOtherOverlayIcons: 1 m_VCOtherOverlayIcons: 1
m_VCAllowAsyncUpdate: 1 m_VCAllowAsyncUpdate: 1
m_VCScanLocalPackagesOnConnect: 1
m_ArtifactGarbageCollection: 1 m_ArtifactGarbageCollection: 1
m_CompressAssetsOnImport: 1 m_CompressAssetsOnImport: 1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff