public static void Postfix(SeaMonkeyBringGift __instance, ref float __result, float time) { if (PinManager.Count == 0) { return; } if (__result > 0f) { __result *= 100f; return; } if (GameModeUtils.IsInvisible()) { if (!SeaMonkey.IsGiftBehaviorEnabled()) { __result = 0f; return; } var main = Player.main; if (main.IsInside() || !main.IsUnderwater()) { __result = 0f; return; } if (SeaMonkeyBringGift.activeSeaMonkeyGiftAction != null && SeaMonkeyBringGift.activeSeaMonkeyGiftAction != __instance) { __result = 0f; return; } if (__instance.state == SeaMonkeyBringGift.State.Animation || __instance.state == SeaMonkeyBringGift.State.AnimationEnd) { __result = __instance.finishAnimationPriority; return; } switch (__instance.state) { case SeaMonkeyBringGift.State.Inactive: if (time < __instance.timeLastGiftAnimation + __instance.minInterval || time < SeaMonkeyBringGift.timeLastGlobalSeaMonkeyGift + __instance.minGlobalGiftInterval) { __result = 0f; return; } if ((Utils.GetLocalPlayerPos() - __instance.transform.position).sqrMagnitude > __instance.maxRange * __instance.maxRange) { __result = 0f; return; } break; case SeaMonkeyBringGift.State.Swim: if (time > __instance.timeActionStart + __instance.maxDuration) { __result = 0f; return; } break; case SeaMonkeyBringGift.State.End: __result = 0f; return; } if (!__instance.HasGift() && !__instance.spawnTempItem.TrySpawn(__instance.IsFirstGift(), main.GetBiomeString())) { __result = 0f; return; } __result = __instance.GetEvaluatePriority(); } }
public static void Prefix(SeaMonkeyBringGift __instance) { __instance.minInterval = 0f; __instance.maxRange = 200; __instance.maxDuration = 70; }