Ejemplo n.º 1
0
            public static bool Prefix(ref Kingmaker.UnitLogic.FactLogic.AddPet __instance, ref int __result)
            {
                if (!ModSettings.enableSuperPet)
                {
                    return(true);
                }
                if (!__instance.LevelRank)
                {
                    __result = 1;
                    return(false);
                }
                int  a    = RankToLevel.Length;
                Fact fact = __instance.Owner.GetFact(__instance.LevelRank);
                int? num  = (fact != null) ? new int?(fact.GetRank()) : null;
                int  num2 = UnityEngine.Mathf.Min(a, (num == null) ? 0 : num.Value);

                __result = RankToLevel[num2];
                logger.Log($"AddPet.GetPetLevel: returning {__result}");
                return(false);
            }
Ejemplo n.º 2
0
            private static bool Prefix(ref Kingmaker.UnitLogic.FactLogic.AddPet __instance)
            {
                if (!ModSettings.enableSuperPet)
                {
                    return(true);
                }
                if (__instance.SpawnedPet == null)
                {
                    return(false);
                }
                AddClassLevels component = __instance.SpawnedPet.Blueprint.GetComponent <AddClassLevels>();

                if (!component)
                {
                    return(false);
                }
                int characterLevel = __instance.SpawnedPet.Descriptor.Progression.CharacterLevel;
                //int petLevel = __instance.GetPetLevel(); // function is private, and we have duplicated it ...
                int petLevel = 0;

                AnimalCompanionPatch2.Prefix(ref __instance, ref petLevel);
                int num = petLevel - characterLevel;

                if (num > 0)
                {
                    component.LevelUp(__instance.SpawnedPet.Descriptor, num);
                }
                int  a    = RankToLevel.Length;
                Fact fact = __instance.Owner.GetFact(__instance.LevelRank);
                int? num2 = (fact != null) ? new int?(fact.GetRank()) : null;
                int  num3 = UnityEngine.Mathf.Min(a, (num2 == null) ? 0 : num2.Value);

                if (num3 >= __instance.UpgradeLevel)
                {
                    __instance.SpawnedPet.Descriptor.Progression.Features.AddFeature(__instance.UpgradeFeature, null);
                }
                return(false);
            }