public void Disable(UnityModManager.ModEntry modEntry)
 {
     modEntry.OnGUI -= OnGUI;
 }
Exemple #2
0
 private static void OnSaveGUI(UnityModManager.ModEntry modEntry)
 {
     settings.Save(modEntry);
 }
Exemple #3
0
 public override void Save(UnityModManager.ModEntry modEntry) => Save(this, modEntry);
Exemple #4
0
        /// <summary>
        /// 展示mod的设置
        /// </summary>
        /// <param name="modEntry">umm</param>
        static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            GUIStyle redLabelStyle = new GUIStyle();

            redLabelStyle.normal.textColor = new Color(159f / 256f, 20f / 256f, 29f / 256f);
            GUILayout.Label("如果status亮红灯代表失效!", redLabelStyle);
            Main.settings.lockAbilityNum = GUILayout.Toggle(Main.settings.lockAbilityNum, "锁定新建人物时的特性点");
            Main.settings.talentActor    = GUILayout.Toggle(Main.settings.talentActor, "开启新建人物高悟性选项(新建人物特性里自己找找)。");
            GUILayout.Label("选择人物成长,随机是MOD随机选择,关闭是系统自行选择,会同时修改技艺和武艺的成长但不会增加其数值。");
            Main.settings.developmentActor = GUILayout.SelectionGrid(Main.settings.developmentActor, new string[] { "关闭", "随机", "均衡", "早熟", "晚成" }, 5);

            Main.settings.featureType = GUILayout.SelectionGrid(Main.settings.featureType, new string[] { "关闭", "全3级特性", "自定义" }, 3);
            if (Main.settings.featureType != 0)
            {
                Main.settings.friend = GUILayout.Toggle(Main.settings.friend, "是否给初始伙伴分配这些特性");
            }
            if (Main.settings.featureType == 1)
            {
                GUILayout.Label("全3级特性会使游戏可玩性降低", redLabelStyle);
            }
            if (Main.settings.featureType == 2)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("自定义特性文件名:", GUILayout.Width(130));
                string featureFilename = "";
                featureFilename = GUILayout.TextArea(Main.settings.file);
                if (GUI.changed)
                {
                    Main.settings.file = featureFilename;
                }

                GUILayout.EndHorizontal();

                if ((Main.settings.file != null || Main.settings.file != "") && File.Exists(@Path.Combine(Main.path, Main.settings.file)))
                {
                    GUILayout.Label("文件存在!");
                }
                else
                {
                    GUILayout.Label("文件不存在,请检查文件是否存放在" + Main.path + "目录中");
                }
            }

            GUILayout.Label("传家宝选择,关闭是系统自带。传家宝直接mod内选择后添加,与特质选择不相关。");
            Main.settings.itemsType = GUILayout.SelectionGrid(Main.settings.itemsType, new string[] { "关闭", "全部", "自定义" }, 3);
            if (Main.settings.itemsType == 2)
            {
                List <int> tempList = new List <int>();

                GUILayout.BeginHorizontal("Box", new GUILayoutOption[0]);
                int countNum = (Main.tempItemsId.Count / 5) + 1;
                int i        = 0;
                foreach (KeyValuePair <int, string> itemKV in Main.tempItemsId)
                {
                    if (i == 0)
                    {
                        GUILayout.BeginVertical("Box", new GUILayoutOption[0]);
                    }

                    if (GUILayout.Toggle(Main.settings.newItemsId.Contains(itemKV.Key), itemKV.Value))
                    {
                        tempList.Add(itemKV.Key);
                    }
                    else
                    {
                        tempList.Remove(itemKV.Key);
                    }
                    if (i == Main.tempItemsId.Count - 1)
                    {
                        GUILayout.EndVertical();
                        break;
                    }
                    if (i % 5 == 0 && i != 0)
                    {
                        GUILayout.EndVertical();
                        GUILayout.BeginVertical("Box", new GUILayoutOption[0]);
                    }
                    i++;
                }
                GUILayout.EndHorizontal();

                if (GUI.changed)
                {
                    Main.settings.newItemsId = tempList;
                }
            }

            if (Main.settings.itemsType != 0)
            {
                GUILayout.BeginHorizontal("Box", new GUILayoutOption[0]);
                Main.settings.isStepfatherCreate = GUILayout.Toggle(Main.settings.isStepfatherCreate, "是否义父所制");
                Main.settings.friendItemCreate   = GUILayout.Toggle(Main.settings.friendItemCreate, "同伴也有同样传家宝");
                GUILayout.EndHorizontal();

                GUILayout.Label("义父所制会覆盖原有道具效果。");
                GUILayout.Label("传家宝数量:" + Main.settings.itemsCount.ToString());
                Main.settings.itemsCount = (uint)GUILayout.HorizontalScrollbar(Main.settings.itemsCount, 1, 1, 10);
            }
        }
Exemple #5
0
        static void Load(UnityModManager.ModEntry modEntry)
        {
            var harmony = new Harmony(modEntry.Info.Id);

            harmony.PatchAll();
        }
Exemple #6
0
 public override void Save(UnityModManager.ModEntry modEntry)
 {
     UnityModManager.ModSettings.Save <Settings>(this, modEntry);
 }
Exemple #7
0
        public static object GetModObject(string modID, string typeName, out UnityModManager.ModEntry modEntry, Func <Type, object> getValue)
        {
            modEntry = UnityModManager.FindMod(modID);

            return(modEntry?.GetModObject(typeName, getValue));
        }
        static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label("<color=#F28234FF>跨月制作的装备在投入材料时决定</color>", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal("Box");
            settings.SetWeapon = GUILayout.Toggle(settings.SetWeapon, "定制武器", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
            if (settings.SetWeapon)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("式排列", GUILayout.Width(100));
                string[] s = new string[6];
                for (int i = 0; i < 6; i = i + 1)
                {
                    s[i] = AttackTypName[settings.AttackTyp[i]];
                }
                GUILayout.Label(string.Concat("<size=15>", string.Join("|", s), "</size>"), GUILayout.Width(150));
                bool flag = GUILayout.Button((settings.AttackTypExtend ? "收起" : "展开"), GUILayout.Width(100));
                GUILayout.Label("<color=#E4504DFF>不会产生武器没有的式</color>", GUILayout.Width(210));
                //GUILayout.FlexibleSpace();
                settings.WeaponMoreDuration = GUILayout.Toggle(settings.WeaponMoreDuration, "较高耐久", new GUILayoutOption[0]);
                if (flag)
                {
                    settings.AttackTypExtend = !settings.AttackTypExtend;
                }
                GUILayout.EndHorizontal();
                if (settings.AttackTypExtend)
                {
                    for (int i = 0; i < 6; i++)
                    {
                        GUILayout.BeginHorizontal();
                        settings.AttackTyp[i] = GUILayout.SelectionGrid(settings.AttackTyp[i], AttackTypName, 16);
                        GUILayout.EndHorizontal();
                    }
                }
                GUILayout.BeginHorizontal();
                GUILayout.Label("词条", GUILayout.Width(100));
                settings.WeaponPower0 = GUILayout.SelectionGrid(settings.WeaponPower0, WeaponPowerName0, 4);
                //GUILayout.FlexibleSpace();
                settings.WeaponPowerMustBe = GUILayout.Toggle(settings.WeaponPowerMustBe, "必出", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                if (settings.WeaponPower0 == 2)
                {
                    settings.WeaponPower2 = GUILayout.SelectionGrid(settings.WeaponPower2, WeaponPowerName2, 2);
                }
                else
                {
                    if (settings.WeaponPower0 == 3)
                    {
                        settings.WeaponPower3 = GUILayout.SelectionGrid(settings.WeaponPower3, WeaponPowerName3, 6);
                    }
                    else
                    {
                        settings.WeaponPower1 = GUILayout.SelectionGrid(settings.WeaponPower1, WeaponPowerName1, 12);
                    }
                }
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("功法发挥", GUILayout.Width(100));
                settings.WeaponEngraving = GUILayout.SelectionGrid(settings.WeaponEngraving, WeaponEngravingName, 4);
                //GUILayout.FlexibleSpace();
                settings.WeaponEngravingMustBe = GUILayout.Toggle(settings.WeaponEngravingMustBe, "必出", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
            }

            GUILayout.BeginHorizontal("Box");
            settings.SetArmor = GUILayout.Toggle(settings.SetArmor, "定制防具", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
            if (settings.SetArmor)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("词条", GUILayout.Width(100));
                settings.ArmorPower = GUILayout.SelectionGrid(settings.ArmorPower, ArmorPowerName, 7);
                //GUILayout.FlexibleSpace();
                settings.ArmorPowerMustBe = GUILayout.Toggle(settings.ArmorPowerMustBe, "必出", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("额外属性", GUILayout.Width(100));
                settings.ArmorAttr = GUILayout.SelectionGrid(settings.ArmorAttr, ArmorAttrName, 7);
                //GUILayout.FlexibleSpace();
                settings.ArmorAttrMustBe = GUILayout.Toggle(settings.ArmorAttrMustBe, "必出", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
            }

            GUILayout.BeginHorizontal("Box");
            settings.SetJewelry = GUILayout.Toggle(settings.SetJewelry, "定制饰品", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
            if (settings.SetJewelry)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("词条", GUILayout.Width(100));
                //GUILayout.FlexibleSpace();
                settings.JewelryPowerMustBe = GUILayout.Toggle(settings.JewelryPowerMustBe, "必出贵重", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("额外属性", GUILayout.Width(100));
                settings.JewelryAttr0 = GUILayout.SelectionGrid(settings.JewelryAttr0, AttrName0, 3);
                //GUILayout.FlexibleSpace();
                settings.JewelryAttrMustBe = GUILayout.Toggle(settings.JewelryAttrMustBe, "必出", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                if (settings.JewelryAttr0 != 0)
                {
                    GUILayout.BeginHorizontal();
                    if (settings.JewelryAttr0 == 1)
                    {
                        settings.JewelryAttr1 = GUILayout.SelectionGrid(settings.JewelryAttr1, AttrName1, 8);
                    }
                    else
                    {
                        settings.JewelryAttr2 = GUILayout.SelectionGrid(settings.JewelryAttr2, AttrName2, 7);
                    }
                    GUILayout.EndHorizontal();
                }
            }

            GUILayout.BeginHorizontal("Box");
            settings.SetFood = GUILayout.Toggle(settings.SetFood, "定制食物", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
            if (settings.SetFood)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("额外属性", GUILayout.Width(100));
                settings.FoodAttr0      = GUILayout.SelectionGrid(settings.FoodAttr0, AttrName0, 3);
                settings.FoodAttrMustBe = GUILayout.Toggle(settings.FoodAttrMustBe, "必出", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                if (settings.FoodAttr0 != 0)
                {
                    GUILayout.BeginHorizontal();
                    if (settings.FoodAttr0 == 1)
                    {
                        settings.FoodAttr1 = GUILayout.SelectionGrid(settings.FoodAttr1, AttrName1, 8);
                    }
                    else
                    {
                        settings.FoodAttr2 = GUILayout.SelectionGrid(settings.FoodAttr2, AttrName2, 7);
                    }
                    GUILayout.EndHorizontal();
                }
            }

            GUILayout.BeginHorizontal("Box");
            bool setDrug = GUILayout.Toggle(settings.setDrug, "定制药品", new GUILayoutOption[0]);

            GUILayout.EndHorizontal();
            if (settings.setDrug != setDrug)
            {
                settings.setDrug = setDrug;
                DrugSwitch();
            }
            if (setDrug)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("必定产出品阶更高的药品", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
            }

            GUILayout.BeginHorizontal("Box");
            settings.IMBA = GUILayout.Toggle(settings.IMBA, "IMBA模式(破坏游戏平衡,慎用)", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
            if (settings.IMBA)
            {
                GUILayout.BeginHorizontal();
                settings.global = GUILayout.Toggle(settings.global, "影响所有新产生的装备,包括商店出售的与NPC获得的(如果版本变化有小概率坏档,慎用)", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                settings.needNoTime = GUILayout.Toggle(settings.needNoTime, "所有装备制造立刻完成", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                settings.freeTyp = GUILayout.Toggle(settings.freeTyp, "式的定制不受限制", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                settings.changeRate = GUILayout.Toggle(settings.changeRate, "改变内伤比例", GUILayout.Width(120));
                string rate = GUILayout.TextField(settings.rate.ToString(), GUILayout.Width(40));
                if (int.TryParse(rate, out int temp) && temp >= 0 && temp <= 100)
                {
                    settings.rate = temp;
                }
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                settings.changePoison = GUILayout.Toggle(settings.changePoison, "含有毒素:", GUILayout.Width(100));
                for (int i = 0; i < 6; i++)
                {
                    GUILayout.Label("  " + PoisonName[i], GUILayout.Width(40));
                    string poison = GUILayout.TextField(settings.poison[i].ToString(), new GUILayoutOption[0]);
                    if (int.TryParse(poison, out int temp1) && temp1 >= 0)
                    {
                        settings.poison[i] = temp1;
                    }
                }
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                settings.unbreakable = GUILayout.Toggle(settings.unbreakable, "神兵(耐久不会因任何原因减少)", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                settings.lastWish = GUILayout.Toggle(settings.lastWish, "遗愿加成(必得双倍额外属性+必得两种副产品)", new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
            }
        }
Exemple #9
0
 private static void OnGUI(UnityModManager.ModEntry modEntry)
 {
     GUILayout.BeginVertical("Box");
     settings.showAll = GUILayout.Toggle(settings.showAll, "是否显示所有不传之秘");
     GUILayout.EndVertical();
 }
Exemple #10
0
 private void HandleSaveGUI(UnityModManager.ModEntry modEntry)
 {
     UnityModManager.ModSettings.Save(Settings, modEntry);
 }
Exemple #11
0
        public void Enable(UnityModManager.ModEntry modEntry, Assembly assembly)
        {
            _logger = modEntry.Logger;

            if (Enabled)
            {
                Debug("Already enabled.");
                return;
            }

            using (ProcessLogger process = new ProcessLogger(_logger)) {
                try {
                    process.Log("Enabling.");
                    var dict = Harmony.VersionInfo(out var myVersion);
                    process.Log($"Harmony version: {myVersion}");
                    foreach (var entry in dict)
                    {
                        process.Log($"Mod {entry.Key} loaded with Harmony version {entry.Value}");
                    }

                    process.Log("Loading settings.");
                    modEntry.OnSaveGUI += HandleSaveGUI;
                    Version             = modEntry.Version;
                    Settings            = UnityModManager.ModSettings.Load <TSettings>(modEntry);
                    Core = new TCore();

                    Type[] types = assembly.GetTypes();

                    if (!Patched)
                    {
                        Harmony harmonyInstance = new Harmony(modEntry.Info.Id);
                        foreach (Type type in types)
                        {
                            List <HarmonyMethod> harmonyMethods = HarmonyMethodExtensions.GetFromType(type);
                            if (harmonyMethods != null && harmonyMethods.Count() > 0)
                            {
                                process.Log($"Patching: {type.FullName}");
                                try {
                                    PatchClassProcessor patchProcessor = harmonyInstance.CreateClassProcessor(type);
                                    patchProcessor.Patch();
                                }
                                catch (Exception e) {
                                    Error(e);
                                }
                            }
                        }
                        Patched = true;
                    }

                    Enabled = true;

                    process.Log("Registering events.");
                    _eventHandlers = types.Where(type => type != typeof(TCore) &&
                                                 !type.IsInterface && !type.IsAbstract && typeof(IModEventHandler).IsAssignableFrom(type))
                                     .Select(type => Activator.CreateInstance(type, true) as IModEventHandler).ToList();
                    if (Core is IModEventHandler core)
                    {
                        _eventHandlers.Add(core);
                    }
                    _eventHandlers.Sort((x, y) => x.Priority - y.Priority);

                    process.Log("Raising events: OnEnable()");
                    for (int i = 0; i < _eventHandlers.Count; i++)
                    {
                        _eventHandlers[i].HandleModEnable();
                    }
                }
                catch (Exception e) {
                    Error(e);
                    Disable(modEntry, true);
                    throw;
                }

                process.Log("Enabled.");
            }
        }
Exemple #12
0
        static void OnUpdate(UnityModManager.ModEntry modEntry, float delta)
        {
            if (rain == null && rainActive)
            {
                rain         = GameObject.Instantiate(rainPrefab);
                locoCollider = rain.transform.Find("LocoCollider").gameObject;
                Transform tf = rain.transform.Find("Rainclouds");
                SwapMaterial(tf.gameObject, customSurfaceShader); // , false);
                tf = rain.transform.Find("Rain");
                SwapMaterial(tf.gameObject, legacyAlphaBlended);  // , false);
                Transform tf2 = tf.Find("Ripple");
                SwapMaterial(tf2.gameObject, legacyAlphaBlended); // , false);

                /*tf = tf.transform.Find("Ripple");
                 * SwapMaterial(tf.gameObject, legacyAlphaBlended, false);
                 * Transform tf2 = tf.Find("WaterSpray");
                 * SwapMaterial(tf2.gameObject, legacyAlphaBlended, false);*/
                tf2 = tf.Find("ImpactSplash");
                SwapMaterial(tf2.gameObject, legacyAlphaBlended); // , false);
                mod.Logger.Log("Successfully switched out materials.");
            }
            else if (!switchedAudio && rainActive)
            {
                env_birds = GameObject.Find("env_birds Audio Source")?.GetComponent <AudioSource>();
                if (env_birds == null)
                {
                    return;
                }
                if (defaultSFX == null)
                {
                    defaultSFX = env_birds.clip;
                }
                env_birds.clip   = rainSFX;
                defaultVolume    = env_birds.volume;
                env_birds.volume = rainVolume;
                env_birds.Play();
                switchedAudio = true;
            }
            else if (!killedSun && rainActive)
            {
                sun = GameObject.Find("Directional Light")?.GetComponent <Light>();
                if (!sun)
                {
                    return;
                }
                sun.gameObject.SetActive(false);
                killedSun = true;
            }

            Transform playerTransform = PlayerManager.PlayerTransform;

            if (playerTransform == null || !rainActive)
            {
                return;
            }

            // TODO: Figure out how world height works.
            rain.transform.position = new Vector3(playerTransform.position.x, playerTransform.position.y + 150f, playerTransform.position.z);
            // Hope this isn't too costly.
            // TODO: Set up hitboxes for each loco interior.
            locoCollider.SetActive(PlayerManager.Car != null && PlayerManager.Car.IsLoco);
        }
Exemple #13
0
 static bool Unload(UnityModManager.ModEntry modEntry)
 {
     return(true);
 }
Exemple #14
0
 static bool onToggleEnabled(UnityModManager.ModEntry modEntry, bool value)
 {
     enabled = value;
     return(true);
 }
Exemple #15
0
 public override void Save(UnityModManager.ModEntry modEntry)
 {
     Save();
 }
Exemple #16
0
 public static bool OnToggle(UnityModManager.ModEntry modEntry, bool value)
 {
     enabled = value;
     logger.Log(enabled ? "已开启" : "已关闭");
     return(true);
 }
Exemple #17
0
        /// <summary>
        /// 展示mod的设置
        /// </summary>
        /// <param name="modEntry">umm</param>
        static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            GUIStyle redLabelStyle = new GUIStyle();

            redLabelStyle.normal.textColor = new Color(159f / 256f, 20f / 256f, 29f / 256f);
            GUILayout.Label("如果status亮红灯代表mod失效!", redLabelStyle);
            Main.settings.autoMerge   = GUILayout.Toggle(Main.settings.autoMerge, "开启结束时节时自动合并道具");
            Main.settings.enabledSize = GUILayout.Toggle(Main.settings.enabledSize, "开启指定合并大小限制");

            if (Main.settings.enabledSize)
            {
                string itemSize = GUILayout.TextField(Main.settings.itemsSize.ToString());
                if (itemSize == "" || itemSize == null || itemSize == "0" || itemSize == "1")
                {
                    itemSize = "2";
                }
                if (GUI.changed)
                {
                    Main.settings.itemsSize = uint.Parse(itemSize);
                }
            }

            if (GUILayout.Button("手动点击合并"))
            {
                Main.RunningMergeItems();
            }

            GUILayout.BeginHorizontal("Box", new GUILayoutOption[0]);
            Main.SetGUIToToggle(31, "药品", ref Main.settings.mergeType);
            Main.SetGUIToToggle(22, "工具", ref Main.settings.mergeType);
            Main.SetGUIToToggle(30, "毒药", ref Main.settings.mergeType);
            Main.SetGUIToToggle(37, "酒水", ref Main.settings.mergeType);
            Main.SetGUIToToggle(41, "茶叶", ref Main.settings.mergeType);
            GUILayout.EndHorizontal();

            GUILayout.Label("选择合并的酒水,茶叶品级。仅针对酒水茶叶有效");
            GUILayout.BeginHorizontal("Box", new GUILayoutOption[0]);
            Main.SetGUIToToggle(1, "九品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(2, "八品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(3, "七品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(4, "六品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(5, "五品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(6, "四品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(7, "三品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(8, "二品", ref Main.settings.itemLevel);
            Main.SetGUIToToggle(9, "一品", ref Main.settings.itemLevel);
            GUILayout.EndHorizontal();

            GUILayout.Label("");

            GUILayout.Label("拆分药品一般用于送礼,拆分只判断单个药品耐久。建议和合并大小限制配合使用。");
            GUILayout.Label("一个例子:有2个100耐久药品,拆分大小为5,拆分数量为20。此时拆解会成功。");
            GUILayout.Label("一个例子:有2个100耐久药品,拆分大小为5,拆分数量为40。此时拆解会失败。");
            if (GUILayout.Button("手动拆分药品"))
            {
                Main.ResolveMergeDrugs();
            }

            GUILayout.Label("选择拆分的大小。");
            Main.settings.drugsSize = (uint)GUILayout.SelectionGrid(int.Parse(Main.settings.drugsSize.ToString()), new string[] { "不拆", "最大2", "最大3", "最大4", "最大5" }, 5);
            GUILayout.Label("选择允许拆分的品级。");
            GUILayout.BeginHorizontal("Box", new GUILayoutOption[0]);
            Main.SetGUIToToggle(1, "九品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(2, "八品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(3, "七品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(4, "六品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(5, "五品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(6, "四品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(7, "三品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(8, "二品", ref Main.settings.drugsLevel);
            Main.SetGUIToToggle(9, "一品", ref Main.settings.drugsLevel);
            GUILayout.EndHorizontal();
            GUILayout.Label("拆分的数量。");
            string drugsItemCount = GUILayout.TextField(Main.settings.drugsCount.ToString());

            if (drugsItemCount == "" || drugsItemCount == null)
            {
                drugsItemCount = "0";
            }
            if (GUI.changed)
            {
                Main.settings.drugsCount = uint.Parse(drugsItemCount);
            }
        }
Exemple #18
0
 private static bool OnToggle(UnityModManager.ModEntry modEntry, bool value)
 {
     enabled = value;
     return(true);
 }
Exemple #19
0
        public static object GetModObject(this UnityModManager.ModEntry modEntry, string typeName, Func <Type, object> getValue)
        {
            Type type = modEntry.GetModType(typeName);

            return((type == null) ? null : getValue.Invoke(type));
        }
Exemple #20
0
 private static void OnGUI(UnityModManager.ModEntry modEntry)
 {
 }
Exemple #21
0
 /// <summary>
 /// 确定是否激活mod
 /// </summary>
 /// <param name="modEntry">umm</param>
 /// <param name="value">是否激活mod</param>
 public static bool OnToggle(UnityModManager.ModEntry modEntry, bool value)
 {
     Main.enabled = value;
     return(true);
 }
Exemple #22
0
 override public void Save(UnityModManager.ModEntry entry)
 {
     Save(this, entry);
 }
Exemple #23
0
 /// <summary>
 /// 保存mod的设置
 /// </summary>
 /// <param name="modEntry">umm</param>
 static void OnSaveGUI(UnityModManager.ModEntry modEntry)
 {
     Main.settings.Save(modEntry);
 }
Exemple #24
0
 private static void Load(UnityModManager.ModEntry modEntry)
 {
     Mod          = modEntry;
     Mod.OnToggle = OnToggle;
 }
Exemple #25
0
 // Called when the mod is turned to on/off.
 static bool OnToggle(UnityModManager.ModEntry modEntry, bool value /* active or inactive */)
 {
     enabled = value;
     return(true); // Permit or not.
 }
 static void OnGUI(UnityModManager.ModEntry modEntry)
 {
     GUILayout.BeginHorizontal();
     Main.settings.priorityPart = GUILayout.Toolbar(Main.settings.priorityPart, toolBarText);
     GUILayout.EndHorizontal();
 }
Exemple #27
0
 private static void OnGUI(UnityModManager.ModEntry modEntry)
 {
     GUILayout.Label(string.Format("Maximum Displayed Missions (requires game restart): <b>{0}</b>", settings.MaxMissions), new GUILayoutOption[0]);
     settings.MaxMissions = (int)GUILayout.HorizontalSlider(settings.MaxMissions, 1f, 30f, new GUILayoutOption[0]);
 }
Exemple #28
0
 static bool Load(UnityModManager.ModEntry modEntry)
 {
     Main.modEntry     = modEntry;
     modEntry.OnToggle = OnToggle;
     return(true);
 }
Exemple #29
0
 public static void OnSaveGUI(UnityModManager.ModEntry modEntry)
 {
     Settings.Save(modEntry);
 }
 public Menu(UnityModManager.ModEntry modEntry, Assembly assembly)
 {
     _assembly = assembly;
 }