Example #1
0
 // Token: 0x06001C3B RID: 7227 RVA: 0x00078A3C File Offset: 0x00076C3C
 public Node(string name, bool isFolder, ViewablesCatalog.Node parent = null)
 {
     this.name               = name;
     this.isFolder           = isFolder;
     this.shouldShowUnviewed = new Func <UserProfile, bool>(this.DefaultShouldShowUnviewedTest);
     this.children           = this._children.AsReadOnly();
     this.SetParent(parent);
 }
        // Token: 0x06001723 RID: 5923 RVA: 0x00064A78 File Offset: 0x00062C78
        private static void GenerateViewables()
        {
            StringBuilder stringBuilder = new StringBuilder();

            ViewablesCatalog.Node node   = new ViewablesCatalog.Node("Loadout", true, null);
            ViewablesCatalog.Node parent = new ViewablesCatalog.Node("Bodies", true, node);
            for (int i = 0; i < BodyCatalog.bodyCount; i++)
            {
                if (SurvivorCatalog.GetSurvivorIndexFromBodyIndex(i) != SurvivorIndex.None)
                {
                    string                bodyName             = BodyCatalog.GetBodyName(i);
                    GenericSkill[]        bodyPrefabSkillSlots = BodyCatalog.GetBodyPrefabSkillSlots(i);
                    ViewablesCatalog.Node parent2 = new ViewablesCatalog.Node(bodyName, true, parent);
                    for (int j = 0; j < bodyPrefabSkillSlots.Length; j++)
                    {
                        SkillFamily skillFamily = bodyPrefabSkillSlots[j].skillFamily;
                        if (skillFamily.variants.Length > 1)
                        {
                            string skillFamilyName = SkillCatalog.GetSkillFamilyName(skillFamily.catalogIndex);
                            uint   num             = 0U;
                            while ((ulong)num < (ulong)((long)skillFamily.variants.Length))
                            {
                                ref SkillFamily.Variant ptr = ref skillFamily.variants[(int)num];
                                string unlockableName       = ptr.unlockableName;
                                if (!string.IsNullOrEmpty(unlockableName))
                                {
                                    string skillName = SkillCatalog.GetSkillName(ptr.skillDef.skillIndex);
                                    stringBuilder.Append(skillFamilyName).Append(".").Append(skillName);
                                    string name = stringBuilder.ToString();
                                    stringBuilder.Clear();
                                    ViewablesCatalog.Node variantNode = new ViewablesCatalog.Node(name, false, parent2);
                                    ptr.viewableNode = variantNode;
                                    variantNode.shouldShowUnviewed = ((UserProfile userProfile) => !userProfile.HasViewedViewable(variantNode.fullName) && userProfile.HasUnlockable(unlockableName));
                                }
                                num += 1U;
                            }
                        }
                    }
                    SkinDef[] bodySkins = BodyCatalog.GetBodySkins(i);
                    if (bodySkins.Length > 1)
                    {
                        ViewablesCatalog.Node parent3 = new ViewablesCatalog.Node("Skins", true, parent2);
                        for (int k = 0; k < bodySkins.Length; k++)
                        {
                            string unlockableName = bodySkins[k].unlockableName;
                            if (!string.IsNullOrEmpty(unlockableName))
                            {
                                ViewablesCatalog.Node skinNode = new ViewablesCatalog.Node(bodySkins[k].name, false, parent3);
                                skinNode.shouldShowUnviewed = ((UserProfile userProfile) => !userProfile.HasViewedViewable(skinNode.fullName) && userProfile.HasUnlockable(unlockableName));
                            }
                        }
                    }
                }
            }
Example #3
0
 // Token: 0x06001C33 RID: 7219 RVA: 0x00078880 File Offset: 0x00076A80
 public static void AddNodeToRoot(ViewablesCatalog.Node node)
 {
     node.SetParent(ViewablesCatalog.rootNode);
     foreach (ViewablesCatalog.Node node2 in node.Descendants())
     {
         if (ViewablesCatalog.fullNameToNodeMap.ContainsKey(node2.fullName))
         {
             Debug.LogFormat("Tried to add duplicate node {0}", new object[]
             {
                 node2.fullName
             });
         }
         else
         {
             ViewablesCatalog.fullNameToNodeMap.Add(node2.fullName, node2);
         }
     }
 }
Example #4
0
 // Token: 0x06001C3C RID: 7228 RVA: 0x00078A9C File Offset: 0x00076C9C
 public void SetParent(ViewablesCatalog.Node newParent)
 {
     if (this.parent == newParent)
     {
         return;
     }
     ViewablesCatalog.Node parent = this.parent;
     if (parent != null)
     {
         parent._children.Remove(this);
     }
     this.parent = newParent;
     ViewablesCatalog.Node parent2 = this.parent;
     if (parent2 != null)
     {
         parent2._children.Add(this);
     }
     this.fullNameDirty = true;
 }
Example #5
0
        private static void Init()
        {
            SurvivorCatalog.idealSurvivorOrder = new[]
            {
                SurvivorIndex.Commando,
                SurvivorIndex.Toolbot,
                SurvivorIndex.Huntress,
                SurvivorIndex.Engineer,
                SurvivorIndex.Mage,
                SurvivorIndex.Merc,
                SurvivorIndex.Bandit
            };

            SurvivorCatalog.survivorMaxCount = SurvivorCatalog.idealSurvivorOrder.Length;

            SurvivorCatalog.survivorDefs = new SurvivorDef[SurvivorCatalog.survivorMaxCount];

            Debug.LogFormat("[Debug] Defined Survivor Array with {0} survivor slots and max survivor count of {1}",
                            SurvivorCatalog.survivorDefs.Length, SurvivorCatalog.survivorMaxCount);

            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Commando, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("CommandoBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/CommandoDisplay"),
                descriptionToken = "COMMANDO_DESCRIPTION",
                primaryColor     = new Color(0.929411769f, 0.5882353f, 0.07058824f)
            });

            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Huntress, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("HuntressBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/HuntressDisplay"),
                primaryColor     = new Color(0.8352941f, 0.235294119f, 0.235294119f),
                descriptionToken = "HUNTRESS_DESCRIPTION",
                unlockableName   = "Characters.Huntress"
            });

            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Toolbot, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("ToolbotBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/ToolbotDisplay"),
                descriptionToken = "TOOLBOT_DESCRIPTION",
                primaryColor     = new Color(0.827451f, 0.768627465f, 0.3137255f),
                unlockableName   = "Characters.Toolbot"
            });

            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Engineer, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("EngiBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/EngiDisplay"),
                descriptionToken = "ENGI_DESCRIPTION",
                primaryColor     = new Color(0.372549027f, 0.8862745f, 0.5254902f),
                unlockableName   = "Characters.Engineer"
            });

            RegisterMage();

            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Merc, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("MercBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MercDisplay"),
                descriptionToken = "MERC_DESCRIPTION",
                primaryColor     = new Color(0.423529416f, 0.819607854f, 0.917647064f),
                unlockableName   = "Characters.Mercenary"
            });

            RegisterBandit();

            for (var survivorIndex = 0; survivorIndex < SurvivorCatalog.survivorDefs.Length; survivorIndex++)
            {
                Debug.LogFormat("[Debug] Survivor index {0}: {1}", survivorIndex,
                                SurvivorCatalog.survivorDefs.ElementAt(survivorIndex).bodyPrefab);
                if (SurvivorCatalog.survivorDefs[survivorIndex] == null)
                {
                    Debug.LogWarningFormat("Unregistered survivor {0}!", survivorIndex);
                }
            }

            SurvivorCatalog._allSurvivorDefs = (from v in SurvivorCatalog.survivorDefs
                                                where v != null
                                                select v).ToArray();

            var node = new ViewablesCatalog.Node("Survivors", true);

            using (var enumerator = SurvivorCatalog.allSurvivorDefs.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    var survivor = enumerator.Current;

                    if (survivor == null)
                    {
                        continue;
                    }

                    Debug.LogFormat("[DEBUG] Creating node for {0}.", survivor.displayNameToken);

                    var survivorEntryNode =
                        new ViewablesCatalog.Node(survivor.displayNameToken, false, node);

                    survivorEntryNode.shouldShowUnviewed = userProfile =>
                                                           !userProfile.HasViewedViewable(survivorEntryNode.fullName) &&
                                                           userProfile.HasSurvivorUnlocked(survivor.survivorIndex) &&
                                                           !string.IsNullOrEmpty(survivor.unlockableName);

                    Debug.LogFormat("[DEBUG] Created node {0}", survivorEntryNode.name);
                }
            }

            ViewablesCatalog.AddNodeToRoot(node);
        }
Example #6
0
        private static void Init()
        {
            SurvivorCatalog.idealSurvivorOrder = ModLoader.BuildIdealOrder(SurvivorCatalog.idealSurvivorOrder);
            if (ModLoader.SurvivorCount > SurvivorCatalog.survivorMaxCount)
            {
                SurvivorCatalog.survivorMaxCount = ModLoader.SurvivorCount;
            }
            SurvivorCatalog.survivorDefs = new SurvivorDef[ModLoader.SurvivorCount];
            Debug.LogFormat("[Debug] Defined Survivor Array with {0} survivor slots and max survivor count of {1}",
                            new object[]
                            { SurvivorCatalog.survivorDefs.Length, SurvivorCatalog.survivorMaxCount });
            SurvivorCatalog.RegisterSurvivor((SurvivorIndex)0, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("CommandoBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/CommandoDisplay"),
                descriptionToken = "COMMANDO_DESCRIPTION",
                primaryColor     = new Color(0.929411769f, 0.5882353f, 0.07058824f)
            });
            SurvivorCatalog.RegisterSurvivor((SurvivorIndex)1, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("HuntressBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/HuntressDisplay"),
                primaryColor     = new Color(0.8352941f, 0.235294119f, 0.235294119f),
                descriptionToken = "HUNTRESS_DESCRIPTION",
                unlockableName   = "Characters.Huntress"
            });
            SurvivorCatalog.RegisterSurvivor((SurvivorIndex)2, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("ToolbotBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/ToolbotDisplay"),
                descriptionToken = "TOOLBOT_DESCRIPTION",
                primaryColor     = new Color(0.827451f, 0.768627465f, 0.3137255f),
                unlockableName   = "Characters.Toolbot"
            });
            SurvivorCatalog.RegisterSurvivor((SurvivorIndex)3, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("EngiBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/EngiDisplay"),
                descriptionToken = "ENGI_DESCRIPTION",
                primaryColor     = new Color(0.372549027f, 0.8862745f, 0.5254902f),
                unlockableName   = "Characters.Engineer"
            });
            SurvivorCatalog.RegisterSurvivor((SurvivorIndex)4, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("MageBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MageDisplay"),
                descriptionToken = "MAGE_DESCRIPTION",
                primaryColor     = new Color(0.968627453f, 0.75686276f, 0.992156863f),
                unlockableName   = "Characters.Mage"
            });
            SurvivorCatalog.RegisterSurvivor((SurvivorIndex)5, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("MercBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MercDisplay"),
                descriptionToken = "MERC_DESCRIPTION",
                primaryColor     = new Color(0.423529416f, 0.819607854f, 0.917647064f),
                unlockableName   = "Characters.Mercenary"
            });

            ModLoader.AddSurvivors(ref SurvivorCatalog.survivorDefs);
            for (int survivorIndex = 0; survivorIndex < SurvivorCatalog.survivorDefs.Length; survivorIndex++)
            {
                Debug.LogFormat("[Debug] Survivor index {0}: {1}", new object[]
                {
                    survivorIndex,
                    SurvivorCatalog.survivorDefs.ElementAt(survivorIndex).bodyPrefab
                });
                if (SurvivorCatalog.survivorDefs[survivorIndex] == null)
                {
                    Debug.LogWarningFormat("Unregistered survivor {0}!", new object[]
                    {
                        survivorIndex
                    });
                }
            }
            SurvivorCatalog._allSurvivorDefs = (from v in SurvivorCatalog.survivorDefs
                                                where v != null
                                                select v).ToArray <SurvivorDef>();
            ViewablesCatalog.Node node = new ViewablesCatalog.Node("Survivors", true, null);
            using (IEnumerator <SurvivorDef> enumerator = SurvivorCatalog.allSurvivorDefs.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    SurvivorDef survivor = new SurvivorDef();
                    survivor = enumerator.Current;
                    Debug.LogFormat("[DEBUG] Creating node for {0}.", new object[] { survivor.displayNameToken });
                    ViewablesCatalog.Node survivorEntryNode = new ViewablesCatalog.Node(survivor.displayNameToken, false, node);
                    survivorEntryNode.shouldShowUnviewed = ((UserProfile userProfile) => !userProfile.HasViewedViewable(survivorEntryNode.fullName) && userProfile.HasSurvivorUnlocked(survivor.survivorIndex) && !string.IsNullOrEmpty(survivor.unlockableName));
                    Debug.LogFormat("[DEBUG] Created node {0}", new object[] { survivorEntryNode.name });
                }
            }
            ViewablesCatalog.AddNodeToRoot(node);
        }
Example #7
0
 private static void Init()
 {
     SurvivorCatalog.survivorDefs = new SurvivorDef[BaseFramework.SurvivorCount];
     SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Commando, new SurvivorDef
     {
         bodyPrefab       = BodyCatalog.FindBodyPrefab("CommandoBody"),
         displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/CommandoDisplay"),
         descriptionToken = "COMMANDO_DESCRIPTION",
         primaryColor     = new Color(0.929411769f, 0.5882353f, 0.07058824f)
     });
     SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Huntress, new SurvivorDef
     {
         bodyPrefab       = BodyCatalog.FindBodyPrefab("HuntressBody"),
         displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/HuntressDisplay"),
         primaryColor     = new Color(0.8352941f, 0.235294119f, 0.235294119f),
         descriptionToken = "HUNTRESS_DESCRIPTION",
         unlockableName   = "Characters.Huntress"
     });
     SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Toolbot, new SurvivorDef
     {
         bodyPrefab       = BodyCatalog.FindBodyPrefab("ToolbotBody"),
         displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/ToolbotDisplay"),
         descriptionToken = "TOOLBOT_DESCRIPTION",
         primaryColor     = new Color(0.827451f, 0.768627465f, 0.3137255f),
         unlockableName   = "Characters.Toolbot"
     });
     SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Engineer, new SurvivorDef
     {
         bodyPrefab       = BodyCatalog.FindBodyPrefab("EngiBody"),
         displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/EngiDisplay"),
         descriptionToken = "ENGI_DESCRIPTION",
         primaryColor     = new Color(0.372549027f, 0.8862745f, 0.5254902f),
         unlockableName   = "Characters.Engineer"
     });
     SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Mage, new SurvivorDef
     {
         bodyPrefab       = BodyCatalog.FindBodyPrefab("MageBody"),
         displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MageDisplay"),
         descriptionToken = "MAGE_DESCRIPTION",
         primaryColor     = new Color(0.968627453f, 0.75686276f, 0.992156863f),
         unlockableName   = "Characters.Mage"
     });
     SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Merc, new SurvivorDef
     {
         bodyPrefab       = BodyCatalog.FindBodyPrefab("MercBody"),
         displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MercDisplay"),
         descriptionToken = "MERC_DESCRIPTION",
         primaryColor     = new Color(0.423529416f, 0.819607854f, 0.917647064f),
         unlockableName   = "Characters.Mercenary"
     });
     BaseFramework.addSurvivors();
     for (SurvivorIndex survivorIndex = 0; survivorIndex < (SurvivorIndex)SurvivorCatalog.survivorDefs.Count(); survivorIndex++)
     {
         if (SurvivorCatalog.survivorDefs[(int)survivorIndex] == null)
         {
             Debug.LogWarningFormat("Unregistered survivor {0}!", new object[]
             {
                 Enum.GetName(typeof(SurvivorIndex), survivorIndex)
             });
         }
     }
     SurvivorCatalog._allSurvivorDefs = (from v in SurvivorCatalog.survivorDefs
                                         where v != null
                                         select v).ToArray <SurvivorDef>();
     ViewablesCatalog.Node node = new ViewablesCatalog.Node("Survivors", true, null);
     using (IEnumerator <SurvivorDef> enumerator = SurvivorCatalog.allSurvivorDefs.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             SurvivorDef survivor = new SurvivorDef();
             survivor = enumerator.Current;
             ViewablesCatalog.Node survivorEntryNode = new ViewablesCatalog.Node(survivor.survivorIndex.ToString(), false, node);
             survivorEntryNode.shouldShowUnviewed = ((UserProfile userProfile) => !userProfile.HasViewedViewable(survivorEntryNode.fullName) && userProfile.HasSurvivorUnlocked(survivor.survivorIndex) && !string.IsNullOrEmpty(survivor.unlockableName));
         }
     }
     ViewablesCatalog.AddNodeToRoot(node);
 }
Example #8
0
        private static void Init()
        {
            SurvivorCatalog.survivorDefs = new SurvivorDef[10];
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Commando, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("CommandoBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/CommandoDisplay"),
                descriptionToken = "COMMANDO_DESCRIPTION",
                primaryColor     = new Color(0.92941177f, 0.5882353f, 0.07058824f)
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Huntress, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("HuntressBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/HuntressDisplay"),
                primaryColor     = new Color(0.8352941f, 0.23529412f, 0.23529412f),
                descriptionToken = "HUNTRESS_DESCRIPTION",
                unlockableName   = "Characters.Huntress"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Toolbot, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("ToolbotBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/ToolbotDisplay"),
                descriptionToken = "TOOLBOT_DESCRIPTION",
                primaryColor     = new Color(0.827451f, 0.76862746f, 0.3137255f),
                unlockableName   = "Characters.Toolbot"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Engi, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("EngiBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/EngiDisplay"),
                descriptionToken = "ENGI_DESCRIPTION",
                primaryColor     = new Color(0.37254903f, 0.8862745f, 0.5254902f),
                unlockableName   = "Characters.Engineer"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Mage, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("MageBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MageDisplay"),
                descriptionToken = "MAGE_DESCRIPTION",
                primaryColor     = new Color(0.96862745f, 0.75686276f, 0.99215686f),
                unlockableName   = "Characters.Mage"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Merc, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("MercBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/MercDisplay"),
                descriptionToken = "MERC_DESCRIPTION",
                primaryColor     = new Color(0.42352942f, 0.81960785f, 0.91764706f),
                unlockableName   = "Characters.Mercenary"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Treebot, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("TreebotBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/TreebotDisplay"),
                descriptionToken = "TREEBOT_DESCRIPTION",
                primaryColor     = new Color(0.5254902f, 0.61960787f, 0.32941177f),
                unlockableName   = "Characters.Treebot"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Loader, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("LoaderBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/LoaderDisplay"),
                descriptionToken = "LOADER_DESCRIPTION",
                primaryColor     = new Color(0.40392157f, 0.4392157f, 0.87058824f),
                unlockableName   = "Characters.Loader"
            });
            SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Croco, new SurvivorDef
            {
                bodyPrefab       = BodyCatalog.FindBodyPrefab("CrocoBody"),
                displayPrefab    = Resources.Load <GameObject>("Prefabs/CharacterDisplays/CrocoDisplay"),
                descriptionToken = "CROCO_DESCRIPTION",
                primaryColor     = new Color(0.7882353f, 0.9490196f, 0.3019608f),
                unlockableName   = "Characters.Croco"
            });
            for (SurvivorIndex survivorIndex = SurvivorIndex.Commando; survivorIndex < SurvivorIndex.Count; survivorIndex++)
            {
                if (SurvivorCatalog.survivorDefs[(int)survivorIndex] == null)
                {
                    Debug.LogWarningFormat("Unregistered survivor {0}!", new object[]
                    {
                        Enum.GetName(typeof(SurvivorIndex), survivorIndex)
                    });
                }
            }
            List <SurvivorDef>           list   = new List <SurvivorDef>();
            Action <List <SurvivorDef> > action = SurvivorCatalog.getAdditionalSurvivorDefs;

            if (action != null)
            {
                action(list);
            }
            Array.Resize <SurvivorDef>(ref SurvivorCatalog.survivorDefs, SurvivorCatalog.survivorDefs.Length + list.Count);
            for (int i = 0; i < list.Count; i++)
            {
                SurvivorCatalog.RegisterSurvivor(SurvivorIndex.Count + i, list[i]);
            }
            SurvivorCatalog.survivorIndexToBodyIndex = new int[SurvivorCatalog.survivorCount];
            SurvivorCatalog.bodyIndexToSurvivorIndex = new SurvivorIndex[BodyCatalog.bodyCount];
            HGArrayUtilities.SetAll <int>(SurvivorCatalog.survivorIndexToBodyIndex, -1);
            HGArrayUtilities.SetAll <SurvivorIndex>(SurvivorCatalog.bodyIndexToSurvivorIndex, SurvivorIndex.None);
            for (int j = 0; j < SurvivorCatalog.survivorDefs.Length; j++)
            {
                SurvivorDef survivorDef = SurvivorCatalog.survivorDefs[j];
                int         num         = (survivorDef != null) ? survivorDef.bodyPrefab.GetComponent <CharacterBody>().bodyIndex : -1;
                SurvivorCatalog.survivorIndexToBodyIndex[j] = num;
                if (num != -1)
                {
                    SurvivorCatalog.bodyIndexToSurvivorIndex[num] = (SurvivorIndex)j;
                }
            }
            SurvivorCatalog._allSurvivorDefs = (from v in SurvivorCatalog.survivorDefs
                                                where v != null
                                                select v).ToArray <SurvivorDef>();
            ViewablesCatalog.Node node = new ViewablesCatalog.Node("Survivors", true, null);
            using (IEnumerator <SurvivorDef> enumerator = SurvivorCatalog.allSurvivorDefs.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    SurvivorCatalog.< > c__DisplayClass22_0 CS$ < > 8__locals1 = new SurvivorCatalog.< > c__DisplayClass22_0();
                    CS$ < > 8__locals1.survivorDef = enumerator.Current;
                    ViewablesCatalog.Node survivorEntryNode = new ViewablesCatalog.Node(CS$ < > 8__locals1.survivorDef.survivorIndex.ToString(), false, node);
                    survivorEntryNode.shouldShowUnviewed = ((UserProfile userProfile) => !userProfile.HasViewedViewable(survivorEntryNode.fullName) && userProfile.HasSurvivorUnlocked(CS$ < > 8__locals1.survivorDef.survivorIndex) && !string.IsNullOrEmpty(CS$ < > 8__locals1.survivorDef.unlockableName));
                }
            }
            ViewablesCatalog.AddNodeToRoot(node);
        }