private static void SetRandomSkin(CharacterMaster master, GameObject bodyPrefab) { int bodyIndex = bodyPrefab.GetComponent <CharacterBody>().bodyIndex; SkinDef[] skins = BodyCatalog.GetBodySkins(bodyIndex); master.loadout.bodyLoadoutManager.SetSkinIndex(bodyIndex, (uint)UnityEngine.Random.Range(0, skins.Length)); }
public void RandomizeLoadout() { if (!PreGameController.instance || !characterSelectController) { return; } var bodyIndex = SurvivorCatalog.GetBodyIndexFromSurvivorIndex(characterSelectController.selectedSurvivorIndex); var bodySkills = BodyCatalog.GetBodyPrefabSkillSlots(bodyIndex); var bodySkins = BodyCatalog.GetBodySkins(bodyIndex); var localUser = ((MPEventSystem)EventSystem.current).localUser; var loadout = new Loadout(); localUser.userProfile.CopyLoadout(loadout); for (var i = 0; i < bodySkills.Length; i++) { var skill = bodySkills[i]; var unlockedVariants = new List <uint>(); for (uint j = 0; j < skill.skillFamily.variants.Length; j++) { if (localUser.userProfile.HasUnlockable(skill.skillFamily.variants[j].unlockableDef)) { unlockedVariants.Add(j); } } loadout.bodyLoadoutManager.SetSkillVariant(bodyIndex, i, unlockedVariants[UnityEngine.Random.Range(0, unlockedVariants.Count)]); } var unlockedSkins = new List <uint>(); for (uint j = 0; j < bodySkins.Length; j++) { if (localUser.userProfile.HasUnlockable(bodySkins[j].unlockableDef)) { unlockedSkins.Add(j); } } loadout.bodyLoadoutManager.SetSkinIndex(bodyIndex, unlockedSkins[UnityEngine.Random.Range(0, unlockedSkins.Count)]); localUser.userProfile.SetLoadout(loadout); }
// Token: 0x0600220E RID: 8718 RVA: 0x00093120 File Offset: 0x00091320 private static UnlockableDef[] GenerateLoadoutAssociatedUnlockableDefs() { CharacterSelectController.< > c__DisplayClass23_0 CS$ < > 8__locals1; CS$ < > 8__locals1.encounteredUnlockables = new HashSet <UnlockableDef>(); foreach (SkillFamily skillFamily in SkillCatalog.allSkillFamilies) { for (int i = 0; i < skillFamily.variants.Length; i++) { CharacterSelectController.< GenerateLoadoutAssociatedUnlockableDefs > g__TryAddUnlockable | 23_0 (skillFamily.variants[i].unlockableName, ref CS$ < > 8__locals1); } } foreach (CharacterBody characterBody in BodyCatalog.allBodyPrefabBodyBodyComponents) { SkinDef[] bodySkins = BodyCatalog.GetBodySkins(characterBody.bodyIndex); for (int j = 0; j < bodySkins.Length; j++) { CharacterSelectController.< GenerateLoadoutAssociatedUnlockableDefs > g__TryAddUnlockable | 23_0 (bodySkins[j].unlockableName, ref CS$ < > 8__locals1); } } return(CS$ < > 8__locals1.encounteredUnlockables.ToArray <UnlockableDef>()); }
// Token: 0x0600239C RID: 9116 RVA: 0x0009B74C File Offset: 0x0009994C private void Rebuild() { this.DestroyRows(); CharacterBody bodyPrefabBodyComponent = BodyCatalog.GetBodyPrefabBodyComponent(this.currentDisplayData.bodyIndex); if (bodyPrefabBodyComponent) { List <GenericSkill> gameObjectComponents = GetComponentsCache <GenericSkill> .GetGameObjectComponents(bodyPrefabBodyComponent.gameObject); int i = 0; int count = gameObjectComponents.Count; while (i < count) { GenericSkill skillSlot = gameObjectComponents[i]; this.rows.Add(LoadoutPanelController.Row.FromSkillSlot(this, this.currentDisplayData.bodyIndex, i, skillSlot)); i++; } int num = BodyCatalog.GetBodySkins(this.currentDisplayData.bodyIndex).Length; if (true) { this.rows.Add(LoadoutPanelController.Row.FromSkin(this, this.currentDisplayData.bodyIndex)); } } }
//update character preview private void UpdateCharacterPreview(On.RoR2.UI.CharacterSelectController.orig_OnNetworkUserLoadoutChanged orig, RoR2.UI.CharacterSelectController self, NetworkUser networkUser) { orig(self, networkUser); int num = self.GetSortedNetworkUsersList().IndexOf(networkUser); if (num != -1) { RoR2.UI.CharacterSelectController.CharacterPad safe = HG.ArrayUtils.GetSafe <RoR2.UI.CharacterSelectController.CharacterPad>(self.characterDisplayPads, num); if (safe.displayInstance) { Loadout loadout = new Loadout(); networkUser.networkLoadout.CopyLoadout(loadout); int bodyIndexFromSurvivorIndex = SurvivorCatalog.GetBodyIndexFromSurvivorIndex(safe.displaySurvivorIndex); int skinIndex = (int)loadout.bodyLoadoutManager.GetSkinIndex(bodyIndexFromSurvivorIndex); SkinDef safe2 = HG.ArrayUtils.GetSafe <SkinDef>(BodyCatalog.GetBodySkins(bodyIndexFromSurvivorIndex), skinIndex); CharacterModel componentInChildren = safe.displayInstance.GetComponentInChildren <CharacterModel>(); if (componentInChildren && safe2 != null) { safe2.Apply(componentInChildren.gameObject); } } } }