예제 #1
0
 public static void initialize()
 {
     if (instance == null)
     {
         Console.WriteLine("Info: initialize DeadTaiwuManager.");
         instance = new DeadTaiwuManager();
     }
 }
예제 #2
0
        private static void Prefix(bool newGame, int teachingId, int loadingDateId)
        {
            if (!Main.enabled)
            {
                return;
            }

            if (newGame || loadingDateId != 0)
            {
                DeadTaiwuManager.reset();
            }
        }
예제 #3
0
        private static void Prefix(ref int actorId, ref bool die)
        {
            if (!Main.enabled)
            {
                return;
            }
            int taiwu = DateFile.instance.MianActorID();

            if (actorId == taiwu && die)
            {
                DeadTaiwuManager.initialize();
                DeadTaiwuManager.instance.setAsDeadTaiwu(taiwu);
            }
        }
예제 #4
0
        private static void Prefix()
        {
            if (!Main.enabled)
            {
                return;
            }


            DeadTaiwuManager.reset();
            try
            {
                // 初始化死太吾cache
                DeadTaiwuManager.initialize();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
예제 #5
0
        private static void Prefix(bool ___loadingEnd)
        {
            if (!Main.enabled)
            {
                return;
            }

            if (___loadingEnd)
            {
                try
                {
                    // 初始化死太吾cache
                    DeadTaiwuManager.initialize();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
        }
예제 #6
0
        static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            settings.taiwuBugfix     = GUILayout.Toggle(settings.taiwuBugfix, "修复太吾永远不会给继任者托梦的BUG");
            settings.lockGenderTaiwu = GUILayout.Toggle(settings.lockGenderTaiwu, "太吾转世性别固定。默认同性。");
            settings.lockGenderAll   = GUILayout.Toggle(settings.lockGenderAll, "全人物转世性别固定。默认同性。");
            settings.lockGenderAlter = GUILayout.Toggle(settings.lockGenderAlter, "转世异性。开启了转世性别锁定的人物会转世为异性。");
            settings.lockFaceTaiwu   = GUILayout.Toggle(settings.lockFaceTaiwu, "固定太吾相貌,前世为太吾的人物转世后相貌和前世相同(魅力根据相貌随机)。[需开启太吾/全人物转世性别锁定]");
            settings.lockFaceAll     = GUILayout.Toggle(settings.lockFaceAll, "固定全人物相貌,所有人物转世后相貌和前世相同(魅力根据相貌随机)。[需开启全人物转世性别锁定]");

            GUILayout.BeginHorizontal();

            GUILayout.Label("[插队投胎] 每个婴儿降生时阴间的太吾都有", GUILayout.ExpandWidth(false));

            var taiwuPreemptRate = GUILayout.TextField(settings.taiwuPreemptRate.ToString(), 3, GUILayout.Width(40));

            if (GUI.changed)
            {
                if (!uint.TryParse(taiwuPreemptRate, out settings.taiwuPreemptRate))
                {
                    settings.taiwuPreemptRate = 0;
                }
                if (settings.taiwuPreemptRate > 100)
                {
                    settings.taiwuPreemptRate = 100;
                }
            }

            GUILayout.Label("%的机会抢占转生机会。设置为0时死去的太吾投胎机会和正常人相同。", GUILayout.ExpandWidth(false));
            GUILayout.EndHorizontal();
            GUILayout.BeginVertical();

            //加入手动寻找太吾按钮
            bool flag = DateFile.instance == null || DateFile.instance.actorsDate == null || !DateFile.instance.actorsDate.ContainsKey(DateFile.instance.mianActorId);

            if (flag)
            {
                GUILayout.Label("存档未载入!", new GUILayoutOption[0]);
            }
            else
            {
                bool findlove = GUILayout.Button("手动识别未转生太吾", new GUILayoutOption[]
                {
                    GUILayout.Width(200f)
                });
                if (findlove)
                {
                    DeadTaiwuManager.reset();
                    try
                    {
                        // 初始化死太吾cache
                        DeadTaiwuManager.initialize();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }

                bool fixbug = GUILayout.Button("手动修复性转bug", new GUILayoutOption[]
                {
                    GUILayout.Width(200f)
                });
                if (fixbug)

                {
                    int taiwu     = DateFile.instance.MianActorID();
                    int sex       = int.Parse(DateFile.instance.GetActorDate(taiwu, 14, false));
                    int baseactor = sex;
                    if (int.TryParse(DateFile.instance.GetActorDate(taiwu, 997, false), out baseactor))
                    {
                        Main.Logger.Log("读取成功……" + baseactor.ToString());
                        if (int.Parse(DateFile.instance.presetActorDate[baseactor][14]) != sex)
                        {
                            baseactor = (Mathf.Clamp((int.Parse(DateFile.instance.GetActorDate(taiwu, 997, false)) + 1), (0 + sex), (28 + sex)));
                            DateFile.instance.actorsDate[taiwu][997] = baseactor.ToString();
                            Main.Logger.Log("改写成功……" + baseactor.ToString());
                        }
                        else
                        {
                            Main.Logger.Log("您没有出BUG哦");
                        }
                    }
                    else
                    {
                        Main.Logger.Log("读取失败……");
                        DateFile.instance.actorsDate[taiwu][997] = (UnityEngine.Random.Range(0, 15) * 2 + sex).ToString();
                        Main.Logger.Log("补写成功……");
                    }
                }
            }


            GUILayout.EndVertical();
        }
예제 #7
0
 public static void reset()
 {
     Console.WriteLine("Info: reset DeadTaiwuManager.");
     instance = null;
 }
예제 #8
0
        static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            settings.taiwuBugfix     = GUILayout.Toggle(settings.taiwuBugfix, "修复太吾永远不会给继任者托梦的BUG");
            settings.lockGenderTaiwu = GUILayout.Toggle(settings.lockGenderTaiwu, "太吾转世性别固定。默认同性。");
            settings.lockGenderAll   = GUILayout.Toggle(settings.lockGenderAll, "全人物转世性别固定。默认同性。");
            settings.lockGenderAlter = GUILayout.Toggle(settings.lockGenderAlter, "转世异性。开启了转世性别锁定的人物会转世为异性。");
            settings.lockFaceTaiwu   = GUILayout.Toggle(settings.lockFaceTaiwu, "固定太吾相貌,前世为太吾的人物转世后相貌和前世相同(魅力根据相貌随机)。[需开启太吾/全人物转世性别锁定]");
            settings.lockFaceAll     = GUILayout.Toggle(settings.lockFaceAll, "固定全人物相貌,所有人物转世后相貌和前世相同(魅力根据相貌随机)。[需开启全人物转世性别锁定]");

            GUILayout.BeginHorizontal();

            GUILayout.Label("[插队投胎] 每个婴儿降生时阴间的太吾都有", GUILayout.ExpandWidth(false));

            var taiwuPreemptRate = GUILayout.TextField(settings.taiwuPreemptRate.ToString(), 3, GUILayout.Width(40));

            if (GUI.changed)
            {
                if (!uint.TryParse(taiwuPreemptRate, out settings.taiwuPreemptRate))
                {
                    settings.taiwuPreemptRate = 0;
                }
                if (settings.taiwuPreemptRate > 100)
                {
                    settings.taiwuPreemptRate = 100;
                }
            }

            GUILayout.Label("%的机会抢占转生机会。设置为0时死去的太吾投胎机会和正常人相同。", GUILayout.ExpandWidth(false));
            GUILayout.EndHorizontal();
            GUILayout.BeginVertical();

            //加入手动寻找太吾按钮
            bool flag = DateFile.instance == null || DateFile.instance.actorsDate == null || !DateFile.instance.actorsDate.ContainsKey(DateFile.instance.mianActorId);

            if (flag)
            {
                GUILayout.Label("存档未载入!", new GUILayoutOption[0]);
            }
            else
            {
                bool findlove = GUILayout.Button("手动识别未转生太吾", new GUILayoutOption[]
                {
                    GUILayout.Width(200f)
                });
                if (findlove)
                {
                    DeadTaiwuManager.reset();
                    try
                    {
                        // 初始化死太吾cache
                        DeadTaiwuManager.initialize();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }
            }


            GUILayout.EndVertical();
        }