예제 #1
0
            private static void Postfix(ActorMenu __instance)
            {
#if DEBUG
                Main.logger.Log("TaiwuEditor.ActorMenu_Awake_Patch patched");
#endif
                __instance.actorMenu.SetActive(false);
            }
예제 #2
0
        private static void Postfix(ActorMenu __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                CharId     newTaiwuId = DateFile.instance.MianActorID();
                Succession succession;
                if (taiwuOpinionsOfPredecessor.TryGetValue(newTaiwuId, out succession))
                {
                    var predecessor = DateFile.instance.actorsDate[succession.predecessor];

                    // 恢复前后两代太吾的关系值
                    predecessor[CharDataIndex.OPINION] = succession.opinion.ToString();

                    // 标记前代为死亡太吾
                    DeadTaiwuManager.instance.setAsDeadTaiwu(succession.predecessor);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
예제 #3
0
        public static void Postfix(ActorMenu __instance)
        {
#if DEBUG
            Main.Logger.Log("GongFaBook.ActorMenu_Awake_Patch patched");
#endif
            __instance.actorMenu.SetActive(false);
        }
예제 #4
0
            public static bool Prefix(int typ, int injuryId, int injuryPower)
            {
                if (!Main.enabled)
                {
                    return(true);
                }
                Main.Logger.Log(typ + " 设置伤口图标 " + injuryId + " : " + injuryPower);
                ActorMenu  _this      = ActorMenu.instance;
                GameObject gameObject = UnityEngine.Object.Instantiate(_this.injuryBack, Vector3.zero, Quaternion.identity);

                gameObject.name = "injury," + injuryId;
                gameObject.transform.Find("InjuryIcon").GetComponent <Image>().sprite = GetSprites.instance.injuryIcon[DateFile.instance.ParseInt(DateFile.instance.injuryDate[injuryId][98])];
                gameObject.transform.SetParent(_this.actorInjuryHolder[Mathf.Min(typ, 7)], worldPositionStays: false);
                int    injuryTyp = (DateFile.instance.ParseInt(DateFile.instance.injuryDate[injuryId][1]) > 0) ? 1 : 2;
                string value     = Mathf.Max(1, DateFile.instance.ParseInt(DateFile.instance.injuryDate[injuryId][1]) * injuryPower / 100).ToString();

                gameObject.transform.Find("HpSpText").GetComponent <Text>().text = injuryTyp == 1 ? DateFile.instance.SetColoer(20010, value) : DateFile.instance.SetColoer(20007, value);
                Button btn = gameObject.GetComponent <Button>();

                if (!btn)
                {
                    btn = gameObject.AddComponent <Button>();
                }
                var onclick = btn.onClick;

                onclick.RemoveAllListeners();
                onclick.AddListener(delegate { OnClickInjury(injuryId, injuryTyp); });
                return(false);
            }
예제 #5
0
        private void FetchFieldValue(DateFile dateFileInstance, ActorMenu actorMenuInstance, Dictionary <int, string> actorDate, int resid)
        {
            switch (resid)
            {
            case -1:
                fieldValues[resid] = dateFileInstance.gongFaExperienceP.ToString();
                break;

            case 12:
                if (actorMenuInstance != null)
                {
                    fieldValues[resid] = actorMenuInstance.Health(lastActorId).ToString();
                }
                else
                {
                    fieldValues.Remove(resid);
                }
                break;

            default:
                if (!actorDate.TryGetValue(resid, out string text))
                {
                    if (!dateFileInstance.presetActorDate.TryGetValue(lastActorId, out Dictionary <int, string> presetActorData) || !presetActorData.TryGetValue(resid, out text))
                    {
                        text = "0";
                    }
                }
                fieldValues[resid] = text;
                break;
            }
        }
예제 #6
0
        private static void Postfix(ActorMenu __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                CharId     newTaiwuId = DateFile.instance.MianActorID();
                Succession succession;
                if (taiwuOpinionsOfPredecessor.TryGetValue(newTaiwuId, out succession))
                {
                    var predecessor = DateFile.instance.actorsDate[succession.predecessor];

                    // 恢复前后两代太吾的关系值
                    predecessor[CharDataIndex.OPINION] = succession.opinion.ToString();

                    // 标记前代为死亡太吾
                    if (Main.settings.lockFaceTaiwu)
                    {
                        predecessor[CharDataIndex.MOOD] = MagicNum.DEAD_TAIWU_MOOD.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
예제 #7
0
        /// <summary>
        /// 获得人物身上的疗伤药 优先寻找能百分百发挥药效的疗伤药
        /// </summary>
        /// <param name="actorId">人物ID</param>
        /// <param name="typ">1是外伤 2是内伤</param>
        /// <param name="injuryId">伤口id</param>
        /// <param name="useActorId">提供疗伤药的人物ID</param>
        /// <returns>疗伤药的物品id</returns>
        public static int GetActorHealingMedicine(int actorId, int typ, int injuryId, int useActorId)
        {
            Main.Logger.Log(actorId + " 寻找疗伤药 " + typ);
            ActorMenu  _this    = ActorMenu.instance;
            List <int> itemSort = DateFile.instance.GetItemSort(new List <int>(_this.GetActorItems(useActorId).Keys));
            int        result   = -1;

            foreach (int itemId in itemSort)
            {
                int cureValue = typ == 1 ? (Mathf.Abs(DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 11)))) : (Mathf.Abs(DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 12))));
                Main.Logger.Log(itemId + " 物品疗伤效果 " + cureValue);
                if (cureValue > 0)                                                               //判断是否要的疗伤药
                {
                    if ((cureValue * 3 >= DateFile.instance.actorInjuryDate[actorId][injuryId])) // 判断是否能百分百发挥疗伤药药效
                    {
                        Main.Logger.Log("获得能百分百发挥药效的疗伤药");
                        return(itemId);
                    }
                    else if (result == -1)
                    {
                        Main.Logger.Log("记录疗伤药");
                        result = itemId;
                    }
                }
            }
            return(result);
        }
예제 #8
0
 private static void Postfix(ActorMenu __instance)
 {
     if (!Main.on)
     {
         return;
     }
     Utils.ToggleSwitch(__instance.actorTeamToggle.group);
 }
예제 #9
0
        static void Prefix(ActorMenu __instance, int key)
        {
            if (!Main.enabled || Main.settings.showAllMassage)
            {
                return;
            }
            if (!DateFile.instance.actorLifeMassage.ContainsKey(key))
            {
                return;
            }
            Changer changer  = new Changer();
            int     backupId = changer.getBackupId();

            //Main.Logger.Log("Pre-----" + changer.getActorName(key));
            if (backupId == key)
            {
                return;
            }
            if (backupId != 0)
            {
                //Main.Logger.Log("reset-----" + changer.getActorName(key) + "Count:" + DateFile.instance.actorLifeMassage[key].Count);

                DateFile.instance.actorLifeMassage[backupId] = changer.getBackupMassage(backupId);
                changer.resetBackup();
            }
            List <int[]> newLifeMassage = new List <int[]> {
            };

            changer.backupMassage(key);

            //Main.Logger.Log("setp1" + changer.getActorName(key));
            List <int> tlist = changer.getTypeList();



            int count = DateFile.instance.actorLifeMassage[key].Count;

            //Main.Logger.Log("setp2:MaxCount:" + count);
            //Main.Logger.Log("setp3:showCount:" + tlist.Count);


            for (int i = 0; i < count; i++)
            {
                //Main.Logger.Log("setp4:" + i);
                int[] array = DateFile.instance.actorLifeMassage[key][i];
                int   key2  = array[0];//根据经历类型ID进行筛选
                for (int j = 0; j < tlist.Count; j++)
                {
                    if (tlist[j] == key2)
                    {
                        newLifeMassage.Add(DateFile.instance.actorLifeMassage[key][i]);
                        //Main.Logger.Log("setp6:" + tlist[j]);
                        break;
                    }
                }
            }
            DateFile.instance.actorLifeMassage[key] = newLifeMassage;
        }
예제 #10
0
 static void Postfix(ActorMenu __instance, int key, int typ)
 {
     if (!Main.enabled || !Main.settings.showInEquuipBag)
     {
         return;
     }
     Changer changer = new Changer();
     //changer.changeObjectsName(__instance.equipHolders[typ], "equipHpText");
 }
예제 #11
0
 private static void Postfix(ActorMenu __instance)
 {
     if (!Main.on)
     {
         return;
     }
     Utils.ButtonConfirm(__instance.equipGongFaViewButton.GetComponent <Button>());
     Utils.ButtonHK(__instance.removeGongFaViewButton.GetComponent <Button>(), HK_TYPE.REMOVE_ITEM);
 }
예제 #12
0
        // 获取解毒药物
        public static int GetActorPoisonMedicine(int actorId, int useActorId, int typ)
        {
            // Main.Logger.Log("获取解毒药物"+ actorId+" "+ useActorId+" "+ typ);
            ActorMenu  _this    = ActorMenu.instance;
            List <int> itemSort = DateFile.instance.GetItemSort(new List <int>(_this.GetActorItems(useActorId).Keys));
            int        flag     = -1;
            int        result   = -1;

            // Main.Logger.Log("物品数量 " + itemSort.Count);
            foreach (int itemId in itemSort)
            {
                for (int i = 0; i < 6; i++)
                {
                    // Main.Logger.Log(DateFile.instance.GetItemDate(itemId, 0));
                    if (typ == -1 || typ == i)
                    {
                        int value = DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 61 + i));
                        if (value < 0)
                        {
                            int num = DateFile.instance.ParseInt(DateFile.instance.GetActorDate(actorId, 51 + i, addValue: false));
                            if (!(value < 0 && num > Mathf.Abs(value) * 3))// 判断是否能百分百发挥疗伤药药效
                            {
                                if (result == -1)
                                {
                                    result = itemId;
                                }
                                else if (DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 8)) < DateFile.instance.ParseInt(DateFile.instance.GetItemDate(result, 8)))
                                {
                                    result = itemId;
                                }
                            }
                            else if (result == -1)
                            {
                                if (flag == -1)
                                {
                                    flag = itemId;
                                }
                                else if (DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 8)) < DateFile.instance.ParseInt(DateFile.instance.GetItemDate(flag, 8)))
                                {
                                    flag = itemId;
                                }
                            }
                        }
                    }
                }
            }
            // Main.Logger.Log("获取解毒药 "+ result);
            if (result == -1)
            {
                return(flag);
            }
            else
            {
                return(result);
            }
        }
            public static bool Prefix(int key, int typ)
            {
                if (!Main.enabled)
                {
                    return(true);
                }


                Key = key; Typ = typ;

                // Main.Logger.Log((new System.Diagnostics.StackTrace(true)).ToString());


                // Main.Logger.Log("UpdateItems 更新物品 key :" + key + "      typ = " + typ);
                ActorMenu _this = ActorMenu.instance;

                _this.itemTyp = typ;
                _this.itemActorFace.SetActorFace(key);
                _this.itemActorAge.text = DateFile.instance.ShowActorAge(key);
                //int actorFavor = DateFile.instance.GetActorFavor(false, DateFile.instance.MianActorID(), key, getLevel: false, realFavor: true);
                //Transform transform = _this.itemsHolder[typ].transform;
                int num = 0;
                //int childCount = transform.childCount;
                List <int> itemSort = DateFile.instance.GetItemSort(new List <int>(_this.GetActorItems(key).Keys));
                List <int> result   = new List <int>();

                // Main.Logger.Log("开始循环");
                for (int i = 0; i < itemSort.Count; i++)
                {
                    int num2 = itemSort[i];
                    if (num2 != StorySystem.instance.useFoodId && (typ == 0 || typ == DateFile.instance.ParseInt(DateFile.instance.GetItemDate(num2, 4))))
                    {
                        num++;
                        result.Add(num2);
                    }
                }
                if (_this.isEnemy)
                {
                    _this.actorItemSize.text = DateFile.instance.SetColoer(20003, "- / -");
                }
                else
                {
                    int maxItemSize = _this.GetMaxItemSize(key);
                    int useItemSize = _this.GetUseItemSize(key);
                    _this.actorItemSize.text = string.Format("{0}{3}{1} / {2}</color>", _this.Color8(useItemSize, maxItemSize), ((float)useItemSize / 100f).ToString("f1"), ((float)maxItemSize / 100f).ToString("f1"), DateFile.instance.massageDate[807][2].Split('|')[0]);
                }

                // Main.Logger.Log("设置数据");
                items_data = result.ToArray();
                m_itemPackage[typ].data = items_data;
                return(false);
            }
예제 #14
0
        private static void Postfix(ActorMenu __instance, ref Dictionary <int, int> __result, int key, int typ)
        {
            if (!Main.enabled)
            {
                return;
            }

            __result = (from o in __result
                        orderby int.Parse(DateFile.instance.GetItemDate(o.Key, Main.settings.getmaincate(), true)) * 10000
                        + int.Parse(DateFile.instance.GetItemDate(o.Key, Main.settings.getsubcate(), true))
                        select o).ToDictionary((KeyValuePair <int, int> o) => o.Key, (KeyValuePair <int, int> p) => p.Value);

            return;
        }
예제 #15
0
        // 获取内息药物
        public static int GetActorMianQiMedicine(int actorId, int useActorId, int actorMianQi)
        {
            ActorMenu  _this    = ActorMenu.instance;
            List <int> itemSort = DateFile.instance.GetItemSort(new List <int>(_this.GetActorItems(useActorId).Keys));
            int        flag     = -1;
            int        result   = -1;

            // Main.Logger.Log("物品数量 " + itemSort.Count);
            foreach (int itemId in itemSort)
            {
                int cureValue = Mathf.Abs(DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 39)));
                // Main.Logger.Log(DateFile.instance.GetItemDate(itemId, 0) +" : "+cureValue);
                if (cureValue > 0)               //判断是否内息药
                {
                    if (actorMianQi > cureValue) // 判断是否能百分百发挥疗伤药药效
                    {
                        // Main.Logger.Log("获得能百分百发挥药效的疗伤药");
                        if (result == -1)
                        {
                            result = itemId;
                        }
                        else if (DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 8)) < DateFile.instance.ParseInt(DateFile.instance.GetItemDate(result, 8)))
                        {
                            result = itemId;
                        }
                    }
                    else if (result == -1)
                    {
                        if (flag == -1)
                        {
                            flag = itemId;
                        }
                        else if (DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 8)) < DateFile.instance.ParseInt(DateFile.instance.GetItemDate(flag, 8)))
                        {
                            flag = itemId;
                        }
                    }
                }
            }
            // Main.Logger.Log("获取内息药 "+ result);
            if (result == -1)
            {
                return(flag);
            }
            else
            {
                return(result);
            }
        }
예제 #16
0
        static bool Prefix(ActorMenu __instance, int key)
        {
            if (!Main.enabled || Main.settings.showAllMassage)
            {
                return(true);
            }
            if (!DateFile.instance.actorLifeMassage.ContainsKey(key))
            {
                return(true);
            }
            int backupId = Changer.GetBackupId();

            //Main.Logger.Log("Pre-----" + changer.getActorName(key));
            if (backupId == key)
            {
                return(true);
            }
            if (backupId != 0)
            {
                //Main.Logger.Log("reset-----" + changer.getActorName(key) + "Count:" + DateFile.instance.actorLifeMassage[key].Count);

                DateFile.instance.actorLifeMassage[backupId] = Changer.GetBackupMassage();
                Changer.ResetBackup();
            }
            List <int[]> newLifeMassage = new List <int[]> {
            };

            Changer.BackupMassage(key);

            //Main.Logger.Log("setp1" + changer.getActorName(key));
            int count = DateFile.instance.actorLifeMassage[key].Count;

            //Main.Logger.Log("setp2:MaxCount:" + count);
            //Main.Logger.Log("setp3:showCount:" + tlist.Count);
            for (int i = 0; i < count; i++)
            {
                //Main.Logger.Log("setp4:" + i);
                int messageTyp = DateFile.instance.actorLifeMassage[key][i][0];
                //Main.Logger.Log($"messageTyp: {messageTyp}");
                //根据经历类型ID进行筛选
                if (Changer.MessageTypToShow(messageTyp))
                {
                    newLifeMassage.Add(DateFile.instance.actorLifeMassage[key][i]);
                    //Main.Logger.Log("setp6:" + tlist[j]);
                }
            }
            DateFile.instance.actorLifeMassage[key] = newLifeMassage;
            return(true);
        }
예제 #17
0
        public static int GetActorHealthMedicine(int actorId, int useActorId, int lack)
        {
            ActorMenu  _this    = ActorMenu.instance;
            List <int> itemSort = DateFile.instance.GetItemSort(new List <int>(_this.GetActorItems(useActorId).Keys));
            int        flag     = -1;
            int        result   = -1;

            // Main.Logger.Log("物品数量 " + itemSort.Count);
            foreach (int itemId in itemSort)
            {
                int cureValue = DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 13));
                // Main.Logger.Log(DateFile.instance.GetItemDate(itemId, 0) +" : "+cureValue);
                if (cureValue > 0)             //判断是否要的寿命药
                {
                    if (cureValue * 3 >= lack) // 判断是否能百分百发挥疗伤药药效
                    {
                        if (result == -1)
                        {
                            result = itemId;
                        }
                        else if (DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 8)) < DateFile.instance.ParseInt(DateFile.instance.GetItemDate(result, 8)))
                        {
                            result = itemId;
                        }
                    }
                    else
                    {
                        if (flag == -1)
                        {
                            flag = itemId;
                        }
                        else if (DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 8)) < DateFile.instance.ParseInt(DateFile.instance.GetItemDate(flag, 8)))
                        {
                            flag = itemId;
                        }
                    }
                }
            }
            // Main.Logger.Log("获取寿命药 "+ result);
            if (result == -1)
            {
                return(flag);
            }
            else
            {
                return(result);
            }
        }
예제 #18
0
 static void Postfix(ActorMenu __instance, int key)
 {
     if (!Main.enabled || Main.settings.showAllMassage)
     {
         return;
     }
     if (!DateFile.instance.actorLifeMassage.ContainsKey(key))
     {
         return;
     }
     if (Changer.GetBackupId() == key)
     {
         //Main.Logger.Log("Exit-----" + "ID:" + key + "Count:" + changer.getBackupMassage(key).Count);
         DateFile.instance.actorLifeMassage[key] = Changer.GetBackupMassage();
         //Main.Logger.Log("ExitReset-----" + changer.getActorName(key) + "Count:" + DateFile.instance.actorLifeMassage[key].Count);
         Changer.ResetBackup();
     }
 }
예제 #19
0
        static void Postfix(ActorMenu __instance, int key)
        {
            if (!Main.enabled)
            {
                return;
            }
            if (!DateFile.instance.actorLifeMassage.ContainsKey(key))
            {
                return;
            }
            Changer changer = new Changer();

            if (changer.getBackupId() == key)
            {
                //Main.Logger.Log("Exit-----" + "ID:" + key + "Count:" + changer.getBackupMassage(key).Count);
                DateFile.instance.actorLifeMassage[key] = changer.getBackupMassage(key);
                //Main.Logger.Log("ExitReset-----" + changer.getActorName(key) + "Count:" + DateFile.instance.actorLifeMassage[key].Count);
                changer.resetBackup();
            }
        }
예제 #20
0
 /// <summary>
 /// 将游戏数值同步到所有属性修改框里
 /// </summary>
 /// <param name="dateFileInstance">DateFile实例</param>
 /// <param name="actorId">需要同步数据的角色Id</param>
 public void UpdateAllFields(DateFile dateFileInstance, ActorMenu actorMenuInstance, int actorId)
 {
     lastDateFile  = dateFileInstance;
     lastActorMenu = actorMenuInstance;
     if (lastDateFile == null || lastDateFile.actorsDate == null || !lastDateFile.actorsDate.TryGetValue(actorId, out lastActorDate))
     {
         foreach (var resid in activeFieldsResid)
         {
             fieldValues.Remove(resid);
         }
         lastActorId = -1;
     }
     else if (actorId != lastActorId)
     {
         lastActorId = actorId;
         foreach (var resid in activeFieldsResid)
         {
             FetchFieldValue(lastDateFile, lastActorMenu, lastActorDate, resid);
         }
     }
 }
예제 #21
0
        public static int GetActorHealthMedicine(int actorId, int useActorId, int lack)
        {
            ActorMenu  _this    = ActorMenu.instance;
            List <int> itemSort = DateFile.instance.GetItemSort(new List <int>(_this.GetActorItems(useActorId).Keys));
            int        result   = -1;

            foreach (int itemId in itemSort)
            {
                int cureValue = DateFile.instance.ParseInt(DateFile.instance.GetItemDate(itemId, 13));
                if (cureValue > 0)             //判断是否要的寿命药
                {
                    if (cureValue * 3 >= lack) // 判断是否能百分百发挥疗伤药药效
                    {
                        return(itemId);
                    }
                    else if (result == -1)
                    {
                        result = itemId;
                    }
                }
            }
            return(result);
        }
예제 #22
0
        private static void Prefix(ActorMenu __instance)
        {
            if (!Main.enabled)
            {
                return;
            }

            try
            {
                CharId oldTaiwuId = DateFile.instance.MianActorID();
                CharId newTaiwuId = (int)typeof(ActorMenu).GetField("chooseNewActor", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance);

                // 保存前后两代太吾的关系值
                var succession = new Succession();
                succession.predecessor = oldTaiwuId;
                succession.opinion     = DateFile.instance.GetActorFavor(false, oldTaiwuId, newTaiwuId, false, false);
                taiwuOpinionsOfPredecessor.Add(newTaiwuId, succession);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
예제 #23
0
        private void FetchFieldValueHelper(DateFile dateFileInstance, ActorMenu actorMenuInstance, Dictionary <int, string> actorDate, int resid)
        {
            switch (resid)
            {
            case -1:
                fieldValuesCache[resid] = dateFileInstance.gongFaExperienceP.ToString();
                break;

            case 12:     // 获取健康数据
                fieldValuesCache[resid] = actorMenuInstance.Health(currentActorId).ToString();
                break;

            default:
                if (!actorDate.TryGetValue(resid, out string text))
                {
                    if (!dateFileInstance.presetActorDate.TryGetValue(currentActorId, resid, out text, actorDate))
                    {
                        text = "0";
                    }
                }
                fieldValuesCache[resid] = text;
                break;
            }
        }
예제 #24
0
        /// <summary>
        /// 经历筛选
        /// </summary>
        public static bool Prefix(int key, ActorMenu __instance, List <string> ___showMassage, ref int ___showMassageIndex)
        {
            if (!Main.enabled || Main.settings.showAllMessage)
            {
                return(true);
            }

            ___showMassage.Clear();
            int num = DateFile.instance.MianActorID();

            ___showMassage.Add(string.Format(DateFile.instance.SetColoer(20002, "·") + " {0}{1}{2}{3}{4}\n",
                                             DateFile.instance.massageDate[8010][1].Split('|')[0],
                                             DateFile.instance.SetColoer(
                                                 10002,
                                                 DateFile.instance.solarTermsDate[int.Parse(DateFile.instance.GetActorDate(key, 25, applyBonus: false))][102]),
                                             DateFile.instance.massageDate[8010][1].Split('|')[1],
                                             DateFile.instance.GetActorName(key, realName: false, baseName: true),
                                             DateFile.instance.massageDate[8010][1].Split('|')[2]));
            LifeRecords.LifeRecord[] allRecords = LifeRecords.GetAllRecords(key);
            if (allRecords != null)
            {
                int num2 = Mathf.Max(DateFile.instance.GetActorFavor(isEnemy: false, num, key), 0);
                for (int i = 0; i < allRecords.Length; i++)
                {
                    LifeRecords.LifeRecord record = allRecords[i];
                    if (!Changer.exclucdedMessageTypes.Contains(record.messageId) &&
                        DateFile.instance.actorMassageDate.ContainsKey(record.messageId))
                    {
                        int num3 = int.Parse(DateFile.instance.actorMassageDate[record.messageId][4]);
                        num3 = 30000 * num3 / 100;
                        if (key != num && num2 < num3)
                        {
                            List <string> list     = ___showMassage;
                            string        format   = DateFile.instance.SetColoer(20002, "·") + " {0}{1}:{2}\n";
                            string        str      = DateFile.instance.massageDate[16][1];
                            DateFile      instance = DateFile.instance;
                            short         year     = record.year;
                            list.Add(string.Format(format,
                                                   str + instance.SetColoer(10002, year.ToString()) + DateFile.instance.massageDate[16][3],
                                                   DateFile.instance.SetColoer(20002, DateFile.instance.solarTermsDate[record.solarTerm][0]),
                                                   DateFile.instance.SetColoer(10001, DateFile.instance.massageDate[12][2])));
                        }
                        else
                        {
                            List <string> list2   = ___showMassage;
                            string        format2 = DateFile.instance.SetColoer(20002, "·")
                                                    + " {0}{1}:"
                                                    + DateFile.instance.actorMassageDate[record.messageId][1]
                                                    + "\n";
                            object[] args = DateFile.instance.GetLifeRecordMassageElements(key, record).ToArray();
                            list2.Add(string.Format(format2, args));
                        }
                    }
                }
            }
            ___showMassageIndex = 0;
            if (ShowMassage == null)
            {
                var bindingFlags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic;
                var method       = typeof(ActorMenu).GetMethod("ShowMassage", bindingFlags, null, new[] { typeof(int) }, null);
                ShowMassage = (Action <int>)Delegate.CreateDelegate(typeof(Action <int>), __instance, method, true);
            }
            ShowMassage(___showMassageIndex);
            return(false);
        }
예제 #25
0
 static void Prefix(ActorMenu __instance, int key)
 {
     Main.nowActorId = key;
 }
예제 #26
0
 public static void Postfix(ActorMenu __instance)
 {
     __instance.actorMenu.SetActive(false);
 }