Пример #1
0
        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));
        }
Пример #2
0
        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>());
 }
Пример #4
0
        // 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));
                }
            }
        }
Пример #5
0
        //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);
                    }
                }
            }
        }