Пример #1
0
        public static bool GetFamilyGongFaLevel_Prefix(DateFile __instance, ref int __result, int actorId, int typ, bool getSize = false)
        {
            if (!Main.enabled || Main.settings.UsedOriginal || actorId == 0)
            {
                return(true);
            }


            int gongFaCount = 0;

            float[] pages = new float[9];

            foreach (var gongFaId in __instance.actorGongFas[actorId].Keys)
            {
                if (int.Parse(__instance.gongFaDate[gongFaId][1]) == typ)
                {
                    int gongFaGrade = int.Parse(__instance.gongFaDate[gongFaId][2]) - 1;
                    pages[gongFaGrade] += __instance.GetGongFaFLevel(actorId, gongFaId) *
                                          (__instance.GetGongFaAchievement(actorId, gongFaId) / int.Parse(__instance.gongFaDate[gongFaId][5]));
                    gongFaCount++;
                }
            }

            int attainments = 0;

            for (int j = 0; j < pages.Length; j++)
            {
                float i = pages[j];

                if (pages[j] <= 10)
                {
                }
                else if (pages[j] <= 50)
                {
                    i = (float)(-18.9957 - 0.55331 * i + 0.00343 * i * i + 14.8466 * Mathf.Log(i));
                }
                else
                {
                    i = Mathf.Log(i, (float)1.25893) + (float)3.0103;
                }
                i           *= (j + 1);
                attainments += Mathf.RoundToInt(i);
            }

            if (actorId == __instance.MianActorID() && StorySystem.useFoodId > 0)
            {
                attainments += int.Parse(__instance.GetItemDate(StorySystem.useFoodId, 50601 + typ));
            }
            __result = getSize ? gongFaCount : attainments;

            return(false);
        }