예제 #1
0
        public void Awake()
        {
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("LostInTransit.lostintransit_assets"))
            {
                MainAssets = AssetBundle.LoadFromStream(stream);
            }

            var materialAssets = MainAssets.LoadAllAssets <Material>();

            foreach (Material material in materialAssets)
            {
                if (!material.shader.name.StartsWith("Stubbed"))
                {
                    continue;
                }
                //Logger.LogInfo(material);

                var replacementShader = Resources.Load <Shader>(ShaderLookup[material.shader.name.ToLower()]);
                if (replacementShader)
                {
                    material.shader = replacementShader;
                }
            }

            var ItemTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase)));

            foreach (var itemType in ItemTypes)
            {
                ItemBase item = (ItemBase)System.Activator.CreateInstance(itemType);
                if (ValidateItem(item, Items))
                {
                    item.Init(Config);
                }
            }

            //Material shader autoconversion - thanks Komrade, you're da best! ^^


            var EquipmentTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EquipmentBase)));

            foreach (var equipmentType in EquipmentTypes)
            {
                EquipmentBase equipment = (EquipmentBase)System.Activator.CreateInstance(equipmentType);
                if (ValidateEquipment(equipment, Equipments))
                {
                    equipment.Init(Config);
                }
            }

            var EliteTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EliteBase)));

            foreach (var eliteType in EliteTypes)
            {
                EliteBase elite = (EliteBase)System.Activator.CreateInstance(eliteType);
                if (ValidateElites(elite, Elites))
                {
                    elite.Init(Config);
                }
            }
        }
예제 #2
0
        public bool ValidateElites(EliteBase elite, List <EliteBase> eliteList)
        {
            var enabled = Config.Bind <bool>("Elite: " + elite.EliteName, "Enable Elite?", true, "Should this elite appear in runs?").Value;

            EliteStatusDictionary.Add(elite, enabled);

            if (enabled)
            {
                eliteList.Add(elite);
            }
            return(enabled);
        }