Decompiled source of VORE v7.3.1
Mods/Lillys_BL_Koogles_Vore_Fork.dll
Decompiled 4 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using Mirror; using Steamworks; using UnityEngine; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("LillysBeyondLimits")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("LillysBeyondLimits")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("6d7c1bda-ed8d-4f4c-8520-0cf2425fc134")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Lilly_s_Beyond_Limits { [BepInPlugin("0a26c5bd-f173-47f8-8f50-006dd6806ce6", "ATLYSS VORE", "7.3.1")] public class Bepin : BaseUnityPlugin { private ConfigEntry<bool> cameraCol; private ConfigEntry<Vector2> _headWidthRange; private ConfigEntry<Vector2> _headModRange; private ConfigEntry<Vector2> _heightRange; private ConfigEntry<Vector2> _widthRange; private ConfigEntry<Vector2> _torsoRange; private ConfigEntry<Vector2> _boobRange; private ConfigEntry<Vector2> _armRange; private ConfigEntry<Vector2> _bellyRange; private ConfigEntry<Vector2> _bottomRange; private ConfigEntry<Vector2> _pitchRange; private BeyondCore beyondcore; private void Awake() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Expected O, but got Unknown //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0329: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) cameraCol = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "CameralCollision", true, "Toggles Camera Colision and Infinite Zoom"); _headWidthRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderHeadWidth", new Vector2(0.95f, 1.15f), "Sets Sliider Limits For Head Width"); _headModRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderMuzzle", new Vector2(0f, 100f), "Sets Sliider Limits For Muzzle"); _heightRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderHeight", new Vector2(0.95f, 1.055f), "Sets Sliider Limits For Height"); _widthRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderWidth", new Vector2(0.95f, 1.15f), "Sets Sliider Limits For Width"); _torsoRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderTorso", new Vector2(-10f, 105f), "Sets Sliider Limits For Torso"); _boobRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderBoobs", new Vector2(-20f, 100f), "Sets Sliider Limits For Boobs"); _armRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderArms", new Vector2(-5f, 105f), "Sets Sliider Limits For Arms"); _bellyRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderBelly", new Vector2(-20f, 120f), "Sets Sliider Limits For Belly"); _bottomRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderButt", new Vector2(-50f, 100f), "Sets Sliider Limits For Butt"); _pitchRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderVoice", new Vector2(0.6f, 1.25f), "Sets Sliider Limits For Voice"); if (!((Object)(object)BeyondCore.Beyondinstance != (Object)null)) { GameObject val = Object.Instantiate<GameObject>(GameObject.CreatePrimitive((PrimitiveType)3)); ((Object)val).hideFlags = (HideFlags)61; beyondcore = val.AddComponent<BeyondCore>(); beyondcore.Logger = logger; beyondcore.saveConfig = saveSettings; Harmony val2 = new Harmony("Lilly's Beyond Limits"); val2.PatchAll(); beyondcore.col = cameraCol.Value; beyondcore._headWidthRange = _headWidthRange.Value; beyondcore._headModRange = _headModRange.Value; beyondcore._heightRange = _heightRange.Value; beyondcore._widthRange = _widthRange.Value; beyondcore._torsoRange = _torsoRange.Value; beyondcore._boobRange = _boobRange.Value; beyondcore._armRange = _armRange.Value; beyondcore._bellyRange = _bellyRange.Value; beyondcore._bottomRange = _bottomRange.Value; beyondcore._pitchRange = _pitchRange.Value; } } public bool saveSettings(string _) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) try { cameraCol.Value = beyondcore.col; _headWidthRange.Value = beyondcore._headWidthRange; _headModRange.Value = beyondcore._headModRange; _heightRange.Value = beyondcore._heightRange; _widthRange.Value = beyondcore._widthRange; _torsoRange.Value = beyondcore._torsoRange; _boobRange.Value = beyondcore._boobRange; _armRange.Value = beyondcore._armRange; _bellyRange.Value = beyondcore._bellyRange; _bottomRange.Value = beyondcore._bottomRange; _pitchRange.Value = beyondcore._pitchRange; ((BaseUnityPlugin)this).Config.Save(); return true; } catch (Exception ex) { logger(ex.ToString()); return false; } } private void OnApplicationQuit() { cameraCol.Value = beyondcore.col; } public bool logger(string mesg) { ((BaseUnityPlugin)this).Logger.LogInfo((object)(mesg ?? "")); return true; } } public class BeyondCore : MonoBehaviour { private class PreyDigestInfo { public Player Prey; public StatusEntity Status; public int MaxHealth; public float DamageRemainder = 0f; public float VisualHealth; } private class PendingVore { public string SenderSteamID; } public class VoreRequest { public Player Sender; } [HarmonyPatch(typeof(Player), "OnGameConditionChange")] private static class HP_Player_OnGameConditionChange { [HarmonyPrefix] private static void Prefix(ref Player __instance) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Invalid comparison between Unknown and I4 //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) try { if ((int)__instance.Network_currentGameCondition == 1) { SendLobbyChat("Lillys Mod"); SendLobbyChat("Lillys Vorable"); SendLobbyChat($"VoreMe:{SteamUser.GetSteamID()},{(Beyondinstance.voreMe ? 1 : 0)}"); SendLobbyChat("Lillys Feedable"); SendLobbyChat($"FeedPred:{SteamUser.GetSteamID()},{(Beyondinstance.feedable ? 1 : 0)}"); } } catch { } } } [HarmonyPatch(typeof(InGameUI), "Handle_InGameUI")] private static class DBG_InGameUI_Handle { private static bool Prefix(InGameUI __instance) { try { Player mainPlayer = Player._mainPlayer; if ((Object)(object)mainPlayer == (Object)null) { return false; } if ((Object)(object)mainPlayer.Network_playerMapInstance == (Object)null) { return false; } return true; } catch { return false; } } } [HarmonyPatch(typeof(PlayerVisual), "UserCode_Rpc_VanitySparkleEffect")] public static class Patch_MuteMorphFX { private static bool Prefix() { return false; } } [HarmonyPatch(typeof(ChatBehaviour), "Cmd_SendChatMessage")] private static class HP_ChatBehaviour_CmdSendChat { [HarmonyPrefix] private static bool Prefix(ref ChatBehaviour __instance, ref string _message) { //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_0971: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_0827: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0de4: Unknown result type (might be due to invalid IL or missing references) //IL_0de9: Unknown result type (might be due to invalid IL or missing references) //IL_0e3a: Unknown result type (might be due to invalid IL or missing references) //IL_12b4: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_0f10: Unknown result type (might be due to invalid IL or missing references) //IL_0f15: Unknown result type (might be due to invalid IL or missing references) //IL_0f1a: Unknown result type (might be due to invalid IL or missing references) //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd6: Unknown result type (might be due to invalid IL or missing references) //IL_0c27: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: Unknown result type (might be due to invalid IL or missing references) //IL_0d02: Unknown result type (might be due to invalid IL or missing references) //IL_0d07: Unknown result type (might be due to invalid IL or missing references) string text = Regex.Replace(_message, "<.*?>", string.Empty); string text2 = text.ToLower(); string[] array = text2.Split(new char[1] { ' ' }); string[] array2 = text.Split(new char[1] { ' ' }); if (array.Length == 0) { return true; } if (text2.StartsWith("/size")) { bool part = Beyondinstance.getPart(array, 0, add: false); __instance.New_ChatMessage(part ? "Size Changed" : "Size Change Failed"); return false; } if (text2.StartsWith("/grow")) { bool part2 = Beyondinstance.getPart(array, 1, add: true); __instance.New_ChatMessage(part2 ? "Size Changed" : "Size Change Failed"); return false; } if (text2.StartsWith("/slider")) { bool flag = Beyondinstance.setSliderLimit(array); __instance.New_ChatMessage(flag ? "Slider Size Changed" : "Slider Size Change Failed"); if (flag) { Beyondinstance.saveConfig?.Invoke(string.Empty); } return false; } if (text2.StartsWith("/camera")) { Beyondinstance.col = !Beyondinstance.col; ChatBehaviour._current.New_ChatMessage($"Camera Collision: {Beyondinstance.col}"); Func<string, bool> saveConfig = Beyondinstance.saveConfig; if (saveConfig != null && !saveConfig(string.Empty)) { ChatBehaviour._current.New_ChatMessage("Failed To Save Config"); } return false; } if (text2.StartsWith("/blhelp")) { ChatBehaviour._current.New_ChatMessage("Beyond Limits Commands:\n/Size /Grow /Slider /Camera"); return false; } CSteamID val2; switch (array[0]) { case "/escape": { if (!Beyondinstance.Vored) { __instance.New_ChatMessage("You aren't vored."); return false; } if (Beyondinstance.VoreLock) { __instance.New_ChatMessage("Don't think you can get out that easily now."); return false; } Player voredBy = Beyondinstance.voredBy; if ((Object)(object)voredBy != (Object)null) { string text3 = RealSteamID(voredBy); SendLobbyChat("RestoreBelly:" + text3); } Beyondinstance.exitVore(); __instance.New_ChatMessage("You escape the pred!"); return false; } case "/unstuck": { if ((Object)(object)Beyondinstance.localPlayer == (Object)null) { __instance.New_ChatMessage("No local player yet."); return false; } Vector3 position = ((Component)Beyondinstance.localPlayer).transform.position; Vector3 val3 = default(Vector3); ((Vector3)(ref val3))..ctor(position.x, position.y + 20f, position.z); ((NetworkTransformBase)Beyondinstance.localNettransform).CmdTeleport(val3); __instance.New_ChatMessage("Weeeeeee"); return false; } case "/perma": { if (array.Length == 1) { __instance.New_ChatMessage($"Perma: {Beyondinstance.permaEnabled}"); return false; } if (!(array[1] == "true") && !(array[1] == "false")) { __instance.New_ChatMessage("Usage: /Perma true|false"); return false; } Beyondinstance.permaEnabled = array[1] == "true"; val2 = SteamUser.GetSteamID(); string text4 = ((object)(CSteamID)(ref val2)).ToString(); Beyondinstance.permaStatus[text4] = Beyondinstance.permaEnabled; SendLobbyChat($"Perma:{text4},{(Beyondinstance.permaEnabled ? 1 : 0)}"); __instance.New_ChatMessage($"Perma set to {Beyondinstance.permaEnabled}"); return false; } case "/setlevel": { if (array.Length < 2) { Player localPlayer = Beyondinstance.localPlayer; PlayerStats val = ((localPlayer != null) ? ((Component)localPlayer).GetComponentInChildren<PlayerStats>() : null); __instance.New_ChatMessage($"Current level: {(Object.op_Implicit((Object)(object)val) ? val.Network_currentLevel : (-1))}"); return false; } if (!int.TryParse(array[1], out var result)) { __instance.New_ChatMessage("Usage: /SetLevel <number>"); return false; } if (NetworkServer.active) { PlayerStats componentInChildren = ((Component)Beyondinstance.localPlayer).GetComponentInChildren<PlayerStats>(); ApplyLevel(componentInChildren, result); __instance.New_ChatMessage($"Level set to {result}"); } else { val2 = SteamUser.GetSteamID(); string arg = ((object)(CSteamID)(ref val2)).ToString(); SendLobbyChat($"SetLevel:{arg},{result}"); __instance.New_ChatMessage("Level-set request sent"); } return false; } case "/vorebelly": { if (array.Length == 1) { __instance.New_ChatMessage($"Current vore belly size = {Beyondinstance.voreBellySize}"); return false; } if (float.TryParse(array[1], out var result2) && result2 > 0f) { Beyondinstance.voreBellySize = result2; __instance.New_ChatMessage($"Vore belly size set to {result2}"); Beyondinstance.saveConfig?.Invoke(""); } else { __instance.New_ChatMessage("Usage: /VoreBelly <positive number>"); } return false; } case "/voresetup": if ((Object)(object)Beyondinstance.playerVis == (Object)null) { __instance.New_ChatMessage("Can't see your avatar yet."); } else { Beyondinstance._normalSnapshot = Beyondinstance.playerVis._playerAppearanceStruct; Beyondinstance.baselineBellySize = Beyondinstance._normalSnapshot.Value._bellyWeight; Beyondinstance._baselineValid = true; __instance.New_ChatMessage("Saved current body and tummy as *NORMAL*."); Beyondinstance.saveConfig?.Invoke(""); } return false; case "/absorb": if (!Beyondinstance._normalSnapshot.HasValue) { __instance.New_ChatMessage("Run /VoreSetup once first."); return false; } Beyondinstance.absorbEnabled = !Beyondinstance.absorbEnabled; if (Beyondinstance.absorbEnabled) { Beyondinstance.InitAbsorbXp(); } __instance.New_ChatMessage($"Absorb: {Beyondinstance.absorbEnabled}"); return false; case "/absorbtimer": { float result3; if (array.Length < 2) { __instance.New_ChatMessage($"Absorb total-time = {Beyondinstance.absorbTotalTime} s"); } else if (!float.TryParse(array[1], out result3) || result3 <= 0f) { __instance.New_ChatMessage("Usage: /AbsorbTimer <seconds>"); } else { Beyondinstance.absorbTotalTime = result3; __instance.New_ChatMessage($"Absorb TOTAL time set to {result3} s"); Beyondinstance.saveConfig?.Invoke(""); } return false; } case "/vore": { if (array2.Length < 2) { __instance.New_ChatMessage("No name given."); return false; } if (!Beyondinstance._normalSnapshot.HasValue) { __instance.New_ChatMessage("Please run /VoreSetup first."); return false; } bool flag2 = Beyondinstance.sendVoreRequest(array2); __instance.New_ChatMessage(flag2 ? "Vore request sent" : "Vore request failed"); return false; } case "/vorable": if (array.Length > 1) { if (!(array[1] == "true") && !(array[1] == "false")) { __instance.New_ChatMessage("Usage: /Vorable true|false"); return false; } Beyondinstance.voreMe = array[1] == "true"; val2 = SteamUser.GetSteamID(); string key = ((object)(CSteamID)(ref val2)).ToString(); Beyondinstance.voreMeStatus[key] = Beyondinstance.voreMe; Beyondinstance.voreMeStatus["localhost"] = Beyondinstance.voreMe; SendLobbyChat($"VoreMe:{SteamUser.GetSteamID()},{(Beyondinstance.voreMe ? 1 : 0)}"); __instance.New_ChatMessage($"Others can vore me: {Beyondinstance.voreMe}"); return false; } Beyondinstance.voreAble.RemoveAll((Player pl) => (Object)(object)pl == (Object)null); __instance.New_ChatMessage("Vorable players:"); foreach (Player item in Beyondinstance.voreAble) { string? text5; if (!(item.Network_steamID == "localhost")) { text5 = item.Network_steamID; } else { val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); text5 = ((object)(CSteamID)(ref val2)).ToString(); } string key2 = text5; if (!Beyondinstance.voreMeStatus.TryGetValue(key2, out var value) || value) { __instance.New_ChatMessage(Regex.Replace(item._nickname, "<.*?>", "")); } } return false; case "/feedable": if (array.Length > 1) { if (!(array[1] == "true") && !(array[1] == "false")) { __instance.New_ChatMessage("Usage: /Feedable true|false"); return false; } Beyondinstance.feedable = array[1] == "true"; val2 = SteamUser.GetSteamID(); string key3 = ((object)(CSteamID)(ref val2)).ToString(); Beyondinstance.feedableStatus[key3] = Beyondinstance.feedable; Beyondinstance.feedableStatus["localhost"] = Beyondinstance.feedable; SendLobbyChat($"FeedPred:{SteamUser.GetSteamID()},{(Beyondinstance.feedable ? 1 : 0)}"); __instance.New_ChatMessage($"Others can feed you: {Beyondinstance.feedable}"); return false; } Beyondinstance.feedAble.RemoveAll((Player pl) => (Object)(object)pl == (Object)null); __instance.New_ChatMessage("Feedable players:"); foreach (Player item2 in Beyondinstance.feedAble) { string? text6; if (!(item2.Network_steamID == "localhost")) { text6 = item2.Network_steamID; } else { val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); text6 = ((object)(CSteamID)(ref val2)).ToString(); } string key4 = text6; if (!Beyondinstance.feedableStatus.TryGetValue(key4, out var value2) || value2) { __instance.New_ChatMessage(Regex.Replace(item2._nickname, "<.*?>", "")); } } return false; case "/feed": { if (array2.Length < 2) { __instance.New_ChatMessage("No name given."); return false; } if (!Beyondinstance._normalSnapshot.HasValue) { __instance.New_ChatMessage("Please run /VoreSetup first."); return false; } bool flag3 = Beyondinstance.sendFeedRequest(array2); __instance.New_ChatMessage(flag3 ? "Feed request sent" : "Feed request failed"); return false; } case "/digest": if (array.Length == 1) { __instance.New_ChatMessage($"Digest: {Beyondinstance.digestEnabled}"); } else if (array[1].Equals("true", StringComparison.OrdinalIgnoreCase) || array[1].Equals("false", StringComparison.OrdinalIgnoreCase)) { Beyondinstance.digestEnabled = bool.Parse(array[1]); if (Beyondinstance.digestEnabled && !Beyondinstance._baselineValid) { __instance.New_ChatMessage("Warning: no baseline belly set (/VoreSetup). Digest will not run."); } __instance.New_ChatMessage($"Digest set to {Beyondinstance.digestEnabled}"); Beyondinstance.saveConfig?.Invoke(""); } else { __instance.New_ChatMessage("Usage: /Digest true|false"); } return false; case "/digesttimer": { float result4; if (array.Length < 2) { __instance.New_ChatMessage($"Digest total-time = {Beyondinstance.digestTotalTime} s"); } else if (!float.TryParse(array[1], out result4) || result4 <= 0f) { __instance.New_ChatMessage("Usage: /DigestTimer <positive seconds>"); } else { Beyondinstance.digestTotalTime = result4; __instance.New_ChatMessage($"Digest TOTAL time set to {result4} s"); Beyondinstance.saveConfig?.Invoke(""); } return false; } case "/weightgain": if (array.Length == 1) { __instance.New_ChatMessage($"Weight-gain: {Beyondinstance.weightGainEnabled}"); return false; } if (array[1].Equals("true", StringComparison.OrdinalIgnoreCase) || array[1].Equals("false", StringComparison.OrdinalIgnoreCase)) { Beyondinstance.weightGainEnabled = bool.Parse(array[1]); __instance.New_ChatMessage($"Weight-gain set to {Beyondinstance.weightGainEnabled}"); Beyondinstance.saveConfig?.Invoke(""); return false; } __instance.New_ChatMessage("Usage: /WeightGain true|false"); return false; case "/savesliders": if ((Object)(object)Beyondinstance.playerVis == (Object)null) { __instance.New_ChatMessage("No local player yet."); return false; } Beyondinstance.savedAppearance = Beyondinstance.playerVis._playerAppearanceStruct; __instance.New_ChatMessage("Body shape saved."); Beyondinstance.saveConfig?.Invoke(""); return false; case "/loadsliders": if (!Beyondinstance.savedAppearance.HasValue) { __instance.New_ChatMessage("No saved body. Use /SaveSliders first."); return false; } Beyondinstance.applySavedBody(); __instance.New_ChatMessage("Body shape restored."); return false; case "/unvore": if (array2.Length > 1) { Beyondinstance.unvore(array2); Beyondinstance.RestorePredatorBelly(); return false; } if (!Beyondinstance.Vored) { __instance.New_ChatMessage("Not currently vored."); return false; } if (Beyondinstance.VoreLock) { __instance.New_ChatMessage("Can't escape (VoreLock ON)"); return false; } Beyondinstance.exitVore(); Beyondinstance.RestorePredatorBelly(); return false; case "/vorelock": if (Beyondinstance.VoreLock && Beyondinstance.Vored) { __instance.New_ChatMessage("Don't think you can get out that easily now."); return false; } Beyondinstance.VoreLock = !Beyondinstance.VoreLock; __instance.New_ChatMessage($"VoreLock: {Beyondinstance.VoreLock}"); Beyondinstance.saveConfig?.Invoke(""); return false; case "/vorehelp": { ChatBehaviour chat = __instance; StringBuilder sb = new StringBuilder(); L("<color=yellow>--------- CREDIT --------</color>"); L(); L("<color=yellow>Vore fork by Koogle - Original by ButteredLilly</color>"); L(); L("<color=blue>--------- BODY / SIZE --------</color>"); L(); L("/Size <part> <value>"); L("^ set a slider directly"); L("^ <color=green>Boobs, Height, Head, Width, Butt, Belly, Muzzle, Voice, Torso, Arms, and Scale</color>"); L("^ ranges vary with slider and race so experiment first!"); L("^ (hint: height of size 1 is full vanilla height, belly of size 100 is full vanilla tummy)"); L(); L("/Grow <part> <delta>"); L("^ add or subtract from a slider"); L(); L("/Slider <part> <min> <max>"); L("^ change a slider's allowed range"); L(); L("/Camera"); L("^ toggle camera collision"); L(); L("<color=blue>-------- VORE ACTIONS --------</color>"); L(); L("/VoreSetup"); L("^ save current body as <color=red>NORMAL</color>"); L("^ <color=red>ALWAYS RUN THIS AFTER ENTERING A SERVER</color>"); L("^ <color=red> IN ORDER TO SET YOUR SILDERS' NORMAL VALUES </color>"); L(); L("/Vore <Name>"); L("^ instantly vore the target if vorable"); L(); L("/Escape"); L("^ Escape your pred! *Unless vorelocked"); L(); L("/Vorable true|false"); L("^ toggle if you can be vored"); L(); L("/Vorable"); L("^ list players that are vorable"); L(); L("/UnVore [Name]"); L("^ escape or eject prey"); L(); L("/VoreLock"); L("^ toggle escape lock while inside pred"); L("^ prey can no longer escape and can only be let out by the pred"); L("^ be careful ... its permanent ..."); L(); L("/VoreBelly <value>"); L("^ set the size your tummy goes to after eating someone"); L("^ use /size belly <value> to experiment first"); L(); L("/Feedable true|false"); L("^ toggle if you can be fed"); L(); L("/Feedable"); L("^ list players that are feedable"); L(); L("<color=blue>----------- DIGESTION -----------</color>"); L(); L("/Digest true|false"); L("^ start or stop shrinking the belly"); L("^<color=yellow> you will sap your prey's health and gain mana! ;3c</color>"); L(); L("/DigestTimer <secs>"); L("^ TOTAL time for complete digestion"); L(); L("/WeightGain true|false"); L("^ grow boobs & butt while digesting"); L("^ total growth amount depends on vorebelly size"); L("<color=blue>---------- ABSORPTION ----------</color>"); L(); L("/Absorb"); L("^ sliders drift back towards <color=red>NORMAL</color>"); L("^ see (/voresetup) for info on <color=red>NORMAL</color>"); L("^<color=yellow> you gain EXP as you absorb em >:] </color>"); L("^<color=yellow> (EXP gain) = (prey HP drained) * 100</color>"); L(); L("/AbsorbTimer <secs>"); L("^ TOTAL time for complete absorption"); L(); L("<color=blue>----------</color> <color=red>PERMAVORE</color> <color=blue>----------</color>"); L(); L("dont worry ... this is FALSE by default !!!"); L(); L("/perma true|false"); L("^ Upon full digestion, you will be set to level 1"); L("^ Your pred can do /absorb to gain all the levels you lost"); L(); L("<color=blue>---------- SAVE / LOAD ----------</color>"); L(); L("/SaveSliders"); L("^ snapshot current sliders"); L(); L("/LoadSliders"); L("^ restore the snapshot"); L(); L("<color=blue>---------- MISCELLANEOUS ----------</color>"); L(); L("/unstuck"); L("^ use to teleport yourself into the air if you ever get stuck"); L(); L("<color=blue>---------- IMPORTANT NOTES ----------</color>"); L(); L("<color=red>BACK UP YOUR CHARACTER - STUFF MIGHT BREAK AND I'M NOT RESPONSIBLE IF YOU LOSE YOUR SAVE</color>"); L("<color=yellow>Save files are stored here:</color>"); L("<color=yellow>*\\Steam\\steamapps\\common\\ATLYSS\\ATLYSS_Data\\profileCollections</color>"); L(); L("<color=green>IF YOU WANT TO ENTER A DUNGEON WITH PREY MAKE SURE YOU ARE IN THE SAME PARTY TOGETHER</color>"); L(); L("<color=red>If you REALLY mess up your proportions just use /size or go to the mirror behind Angela</color>"); L(); L("<color=red>HOST MUST HAVE THIS MOD IN ORDER FOR ANYTHING TO WORK</color>"); L(); L("<color=yellow>***</color><color=red>PLEASE RUN /voresetup EVERY TIME YOU JOIN A NEW SERVER TO SET YOUR *NORMAL* SLIDERS</color><color=yellow>***</color>"); L(); L("<color=red>Scroll up to see the rest of the mods features! :3</color>"); L(); Flush(); return false; } default: return true; } } } [HarmonyPatch(typeof(Player), "Handle_ServerParameters")] private static class BL_FixPlayer { [HarmonyPostfix] private static void Postfix(ref Player __instance) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) try { if (!Beyondinstance.fix && ((NetworkBehaviour)__instance).isLocalPlayer && (int)__instance.Network_currentPlayerCondition == 2 && !((Object)(object)Beyondinstance.playerVis == (Object)null) && Beyondinstance.profile != null) { PlayerAppearanceStruct playerAppearanceStruct = Beyondinstance.playerVis._playerAppearanceStruct; PlayerAppearance_Profile profile = Beyondinstance.profile; playerAppearanceStruct._boobWeight = profile._boobWeight; playerAppearanceStruct._headWidth = profile._headWidth; playerAppearanceStruct._bottomWeight = profile._bottomWeight; playerAppearanceStruct._heightWeight = profile._heightWeight; playerAppearanceStruct._widthWeight = profile._widthWeight; playerAppearanceStruct._torsoWeight = profile._torsoWeight; playerAppearanceStruct._muzzleWeight = profile._muzzleWeight; playerAppearanceStruct._voicePitch = profile._voicePitch; playerAppearanceStruct._bellyWeight = profile._bellyWeight; playerAppearanceStruct._armWeight = profile._armWeight; Beyondinstance.playerVis.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct); Beyondinstance.fix = true; ChatBehaviour._current.New_ChatMessage("Type /BLHelp For Commands"); SendLobbyChat("Lillys Vorable"); SendLobbyChat($"VoreMe:{SteamUser.GetSteamID()},{(Beyondinstance.voreMe ? 1 : 0)}"); } } catch { } } } [HarmonyPatch(typeof(AtlyssNetworkManager), "OnStopClient")] private static class BL_OnStopClient { [HarmonyPostfix] private static void Postfix() { Beyondinstance.fix = false; } } [HarmonyPatch(typeof(CameraFunction), "FollowTargetObj")] private static class BL_CameraHeight { [HarmonyPrefix] private static void Prefix(ref CameraFunction __instance) { //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) try { if (!((Object)(object)Beyondinstance.playerVis == (Object)null)) { CameraFunction._current._mainCamera.farClipPlane = 10000f; Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(0f, 2.15f, 0f); float heightWeight = Beyondinstance.playerVis._playerAppearanceStruct._heightWeight; bool flag = Beyondinstance.playerVis._visualAnimator.GetCurrentAnimatorClipInfo(11).Length != 0 && ((Object)((AnimatorClipInfo)(ref Beyondinstance.playerVis._visualAnimator.GetCurrentAnimatorClipInfo(11)[0])).clip).name.Contains("_sit"); __instance.positionAdjust = val * (flag ? (heightWeight / 2f) : heightWeight); } } catch { } } } [HarmonyPatch(typeof(CameraFogDensity), "OnPreRender")] private static class BL_CameraFog { [HarmonyPrefix] private static bool Prefix(ref CameraFogDensity __instance) { __instance.fogDensity = 0.0001f; return false; } } [HarmonyPatch(typeof(CameraCollision), "<LateUpdate>g__Handle_DistanceControl|13_0")] private static class BL_SetMaxCamDistance { [HarmonyPrefix] private static bool Prefix(ref CameraCollision __instance) { try { float axis = Input.GetAxis("Mouse ScrollWheel"); if (axis != 0f && !Player._mainPlayer._bufferingStatus && !Player._mainPlayer._inChat && !Player._mainPlayer._inUI) { CameraCollision obj = __instance; obj.maxDistance += axis * (35.5f + Mathf.Abs(Beyondinstance.camDis)); } Beyondinstance.camDis = __instance.maxDistance; return false; } catch { return true; } } } [HarmonyPatch(typeof(CameraCollision), "Handle_DetectGroundLayer")] private static class BL_RemoveCamCollision { [HarmonyPostfix] private static void Postfix(ref bool __result) { if (!Beyondinstance.col) { CameraCollision._current.maxDistance = Beyondinstance.camDis; __result = false; } } } [HarmonyPatch(typeof(ScriptablePlayerRace), "Init_ParamsCheck")] private static class BL_BypassValidation { [HarmonyPrefix] private static bool Prefix(ref PlayerAppearance_Profile _aP, ref PlayerAppearance_Profile __result) { __result = _aP; return false; } } [HarmonyPatch(typeof(CharacterSelectManager), "Apply_CharacterSelectDisplay")] private static class BL_GetProfile { [HarmonyPostfix] private static void Postfix() { Beyondinstance.profile = ProfileDataManager._current._characterFile._appearanceProfile; } } [HarmonyPatch(typeof(PlayerVisual), "Apply_NetworkedCharacterDisplay")] private static class BL_CapturePlayerVisual { [HarmonyPrefix] private static void Prefix(ref PlayerVisual __instance) { if (((NetworkBehaviour)__instance).isLocalPlayer) { Beyondinstance.playerVis = __instance; } } } [HarmonyPatch(typeof(CharacterCreationManager), "SelectRace")] private static class BL_SetSlidersOnRaceSelect { [HarmonyPostfix] private static void Postfix(ref CharacterCreationManager __instance, ref int _i) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) CharacterParamsGroup raceDisplayParams = __instance._raceDisplayModels[_i]._scriptablePlayerRace._raceDisplayParams; raceDisplayParams._headWidthRange = Beyondinstance._headWidthRange; raceDisplayParams._headModRange = Beyondinstance._headModRange; raceDisplayParams._heightRange = Beyondinstance._heightRange; raceDisplayParams._widthRange = Beyondinstance._widthRange; raceDisplayParams._torsoRange = Beyondinstance._torsoRange; raceDisplayParams._boobRange = Beyondinstance._boobRange; raceDisplayParams._armRange = Beyondinstance._armRange; raceDisplayParams._bellyRange = Beyondinstance._bellyRange; raceDisplayParams._bottomRange = Beyondinstance._bottomRange; raceDisplayParams._pitchRange = Beyondinstance._pitchRange; } } [HarmonyPatch(typeof(Player), "Handle_ServerParameters")] private static class HP_Vore_HandleServerParams { [HarmonyPostfix] private static void Postfix(ref Player __instance) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 try { if (!((Object)(object)Beyondinstance.localPlayer != (Object)null) && (int)__instance.Network_currentPlayerCondition == 2 && ((NetworkBehaviour)__instance).isLocalPlayer) { Beyondinstance.localPlayer = __instance; ref NetworkTransformUnreliable localNettransform = ref Beyondinstance.localNettransform; NetworkBehaviour obj = ((NetworkBehaviour)__instance).netIdentity.NetworkBehaviours[0]; localNettransform = (NetworkTransformUnreliable)(object)((obj is NetworkTransformUnreliable) ? obj : null); ChatBehaviour._current.New_ChatMessage("Type /VoreHelp For Commands"); if (Beyondinstance.currentRequest != null && Beyondinstance.autoAccept && !Beyondinstance.Vored) { Beyondinstance.acceptVore(); } } } catch { } } } [HarmonyPatch(typeof(AtlyssNetworkManager), "OnStopClient")] private static class HP_Vore_OnStopClient { [HarmonyPostfix] private static void Postfix() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) try { if (Beyondinstance.Vored) { PlayerAppearanceStruct playerAppearanceStruct = Beyondinstance.localPlayer._pVisual._playerAppearanceStruct; PlayerAppearance_Profile appearanceProfile = ProfileDataManager._current._characterFile._appearanceProfile; playerAppearanceStruct._heightWeight = Beyondinstance.playSize.x; playerAppearanceStruct._widthWeight = Beyondinstance.playSize.y; appearanceProfile._heightWeight = Beyondinstance.playSize.x; appearanceProfile._widthWeight = Beyondinstance.playSize.y; ProfileDataManager._current._characterFile._appearanceProfile = appearanceProfile; ProfileDataManager._current.Save_ProfileData(); } Beyondinstance.localPlayer = null; Beyondinstance.currentRequest = null; Beyondinstance.voredBy = null; Beyondinstance.Vored = false; Beyondinstance.voreAble.Clear(); } catch { } } } private bool permaEnabled = false; private readonly Dictionary<string, bool> permaStatus = new Dictionary<string, bool>(); private int permaLvlGain = 0; private int permaLevelsPerStep = 0; private const float ABSORB_XP_PER_HP = 100f; private float _nextFollowPing = 0f; private const float FOLLOW_PING_PERIOD = 0.5f; private const string TAG_VFOLLOW = "VFollowReq:"; private const string HANDSHAKE_BL = "Lillys Mod"; private const string HANDSHAKE_VORE = "Lillys Vorable"; private const float TICK_INTERVAL = 0.1f; private const string HANDSHAKE_FEED = "Lillys Feedable"; private const string TAG_FEED_REQ = "FeedReq:"; public bool feedable = true; private readonly Dictionary<string, bool> feedableStatus = new Dictionary<string, bool>(); public readonly List<Player> feedAble = new List<Player>(); public Vector2[] maxSizes = (Vector2[])(object)new Vector2[10]; public static BeyondCore Beyondinstance; public PlayerVisual playerVis; public PlayerAppearance_Profile profile; public PlayerAppearanceStruct playerapp; public bool fix = false; public bool isSitting = false; public bool col = false; public Vector2 _headWidthRange; public Vector2 _headModRange; public Vector2 _heightRange; public Vector2 _widthRange; public Vector2 _torsoRange; public Vector2 _boobRange; public Vector2 _armRange; public Vector2 _bellyRange; public Vector2 _bottomRange; public Vector2 _pitchRange; private const string TAG_VFOLLOW_ACK = "VFollowAck:"; public Func<string, bool> Logger; public Func<string, bool> saveConfig; public float camDis; public float defaultcamDis; public bool autoAccept = true; public bool Vored = false; public bool VoreLock = false; public float voreBellySize = 250f; public bool digestEnabled = false; private float digestTimer = 0f; public float digestInterval = 2f; private const int EXTRA_DIGEST_DAMAGE = 5; private float _voreScanTimer = 0f; private const float VORE_SCAN_INTERVAL = 1f; public float digestTotalTime = 20f; public float absorbTotalTime = 20f; private float totalDigestDamage = 0f; private int absorbPayoutsLeft = 0; private float absorbPayoutTimer = 0f; private float absorbPayoutInterval = 0f; private int absorbChunk = 0; private PlayerAppearanceStruct? _normalSnapshot = null; private bool absorbEnabled = false; private float absorbTimer = 0f; public float absorbInterval = 2f; private int absorbManaGain = 0; private const string TAG_ABSORB_EXP = "AbsorbExp:"; private float stepBoob; private float stepButt; private float stepBelly; private float stepHeight; private float stepWidth; private PendingVore _pendingVore; private bool _waitingInstanceMove = false; private readonly List<PreyDigestInfo> _digesting = new List<PreyDigestInfo>(); private StatusEntity _predStatus; private StatusEntity predStatus = null; public float baselineBellySize = -1f; private bool _baselineValid = false; public bool weightGainEnabled = true; private int digestPhase = 0; private float lastGain = 0f; public bool voreMe = true; private readonly Dictionary<string, bool> voreMeStatus = new Dictionary<string, bool>(); private PlayerAppearanceStruct? savedAppearance = null; public readonly List<Player> voreAble = new List<Player>(); private Player localPlayer; private NetworkTransformUnreliable localNettransform; private Player voredBy; private VoreRequest currentRequest; private Vector2 playSize; private Callback<LobbyChatMsg_t> messageRecived; private bool getPart(string[] Parts, int type, bool add) { if (Parts.Length < 3) { return false; } if (!float.TryParse(Parts[2], out var result)) { return false; } int num = 0; string text = Parts[1]; bool flag; switch (text) { case "boobs": case "tits": case "boob": case "tit": case "breast": case "breasts": flag = true; break; default: flag = false; break; } if (flag) { num = 1; } else if ((text == "scale" || text == "size") ? true : false) { num = 2; } else { switch (text) { case "height": num = 3; break; case "head": num = 4; break; case "width": num = 5; break; case "butt": case "ass": case "bottom": case "rear": case "rump": flag = true; goto IL_0161; default: { flag = false; goto IL_0161; } IL_0161: if (flag) { num = 6; break; } switch (text) { case "belly": case "stomach": case "gut": flag = true; break; default: flag = false; break; } if (flag) { num = 7; break; } switch (text) { case "muzzle": case "snout": case "nose": flag = true; break; default: flag = false; break; } if (flag) { num = 8; } else if ((text == "voice" || text == "pitch") ? true : false) { num = 9; } else if ((text == "torso" || text == "chest") ? true : false) { num = 10; } else if ((text == "arms" || text == "arm") ? true : false) { num = 11; } break; } } return num != 0 && scalePlayer(num, result, add); } private bool scalePlayer(int part, float value, bool add) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Unknown result type (might be due to invalid IL or missing references) PlayerAppearanceStruct playerAppearanceStruct = playerVis._playerAppearanceStruct; PlayerAppearance_Profile val = profile; switch (part) { case 1: if (add) { playerAppearanceStruct._boobWeight += value; val._boobWeight += value; } else { playerAppearanceStruct._boobWeight = value; val._boobWeight = value; } break; case 2: if (add) { playerAppearanceStruct._heightWeight += value; playerAppearanceStruct._widthWeight += value; val._heightWeight += value; val._widthWeight += value; } else { playerAppearanceStruct._heightWeight = value; playerAppearanceStruct._widthWeight = value; val._heightWeight = value; val._widthWeight = value; } break; case 3: if (add) { playerAppearanceStruct._heightWeight += value; val._heightWeight += value; } else { playerAppearanceStruct._heightWeight = value; val._heightWeight = value; } break; case 4: if (add) { playerAppearanceStruct._headWidth += value; val._headWidth += value; } else { playerAppearanceStruct._headWidth = value; val._headWidth = value; } break; case 5: if (add) { playerAppearanceStruct._widthWeight += value; val._widthWeight += value; } else { playerAppearanceStruct._widthWeight = value; val._widthWeight = value; } break; case 6: if (add) { playerAppearanceStruct._bottomWeight += value; val._bottomWeight += value; } else { playerAppearanceStruct._bottomWeight = value; val._bottomWeight = value; } break; case 7: if (add) { playerAppearanceStruct._bellyWeight += value; val._bellyWeight += value; } else { playerAppearanceStruct._bellyWeight = value; val._bellyWeight = value; } break; case 8: if (add) { playerAppearanceStruct._muzzleWeight += value; val._muzzleWeight += value; } else { playerAppearanceStruct._muzzleWeight = value; val._muzzleWeight = value; } break; case 9: if (add) { playerAppearanceStruct._voicePitch += value; val._voicePitch += value; } else { playerAppearanceStruct._voicePitch = value; val._voicePitch = value; } break; case 10: if (add) { playerAppearanceStruct._torsoWeight += value; val._torsoWeight += value; } else { playerAppearanceStruct._torsoWeight = value; val._torsoWeight = value; } break; case 11: if (add) { playerAppearanceStruct._armWeight += value; val._armWeight += value; } else { playerAppearanceStruct._armWeight = value; val._armWeight = value; } break; default: return false; } playerVis.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct); ProfileDataManager._current._characterFile._appearanceProfile = val; ProfileDataManager._current.Save_ProfileData(); return true; } public bool setSliderLimit(string[] Parts) { //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) if (Parts.Length < 4) { return false; } if (!float.TryParse(Parts[2], out var result) || !float.TryParse(Parts[3], out var result2)) { return false; } Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(result, result2); CharacterParamsGroup raceDisplayParams = playerVis._playerRaceModel._scriptablePlayerRace._raceDisplayParams; string text = Parts[1]; bool flag; switch (text) { case "boobs": case "tits": case "boob": case "tit": case "breast": case "breasts": flag = true; break; default: flag = false; break; } if (flag) { raceDisplayParams._boobRange = (_boobRange = val); return true; } switch (text) { case "height": raceDisplayParams._heightRange = (_heightRange = val); return true; case "head": raceDisplayParams._headWidthRange = (_headWidthRange = val); return true; case "width": raceDisplayParams._widthRange = (_widthRange = val); return true; case "butt": case "ass": case "bottom": flag = true; break; default: flag = false; break; } if (flag) { raceDisplayParams._bottomRange = (_bottomRange = val); return true; } if ((text == "belly" || text == "stomach") ? true : false) { raceDisplayParams._bellyRange = (_bellyRange = val); return true; } switch (text) { case "muzzle": case "snout": case "nose": flag = true; break; default: flag = false; break; } if (flag) { raceDisplayParams._headModRange = (_headModRange = val); return true; } if ((text == "voice" || text == "Pitch") ? true : false) { raceDisplayParams._pitchRange = (_pitchRange = val); return true; } if ((text == "torso" || text == "chest") ? true : false) { raceDisplayParams._torsoRange = (_torsoRange = val); return true; } if (text == "arms") { raceDisplayParams._armRange = (_armRange = val); return true; } return false; } [Server] private static void Server_MovePreyToPredInstance(Player pred, Player prey) { if (!NetworkServer.active || !Object.op_Implicit((Object)(object)pred) || !Object.op_Implicit((Object)(object)prey) || pred._bufferingStatus || prey._bufferingStatus) { return; } MapInstancingManager val = AtlyssNetworkManager._current?._mapInstanceManager; if (Object.op_Implicit((Object)(object)val)) { string text = ScenePathOf(prey); string text2 = ScenePathOf(pred); if (text == text2) { SnapPreyToPred(pred, prey); return; } val.Init_SendPeer_ToScene(prey, text, text2, "", (ZoneDifficulty)0); SendLobbyChat("VFollowAck:" + RealSteamID(prey) + "," + pred.Network_mapName); ((MonoBehaviour)Beyondinstance).StartCoroutine(Server_SnapAfterSceneLoad(pred, prey)); } } [Server] private static IEnumerator Server_SnapAfterSceneLoad(Player pred, Player prey) { while (Object.op_Implicit((Object)(object)prey) && (prey._bufferingStatus || (Object)(object)prey.Network_playerMapInstance != (Object)(object)pred.Network_playerMapInstance)) { yield return null; } if (Object.op_Implicit((Object)(object)prey) && Object.op_Implicit((Object)(object)pred)) { SnapPreyToPred(pred, prey); } } [Server] private static void SnapPreyToPred(Player pred, Player prey) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) NetworkTransformUnreliable component = ((Component)prey).GetComponent<NetworkTransformUnreliable>(); if (Object.op_Implicit((Object)(object)component)) { ((NetworkTransformBase)component).RpcTeleport(((Component)pred).transform.position, ((Component)pred).transform.rotation); } } public void sendSteamChat(string message) { SendLobbyChat(message); } public bool unvore(string[] parts) { string value = string.Join(" ", parts, 1, parts.Length - 1); voreAble.RemoveAll((Player p) => (Object)(object)p == (Object)null); foreach (Player item in voreAble) { string text = Regex.Replace(item._nickname, "<.*?>", ""); if (text.Equals(value, StringComparison.OrdinalIgnoreCase)) { sendSteamChat(item._nickname + ",Unvore"); return true; } } return false; } public bool sendVoreRequest(string[] parts) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) string value = string.Join(" ", parts, 1, parts.Length - 1); voreAble.RemoveAll((Player p) => (Object)(object)p == (Object)null); foreach (Player prey in voreAble) { string text = Regex.Replace(prey._nickname, "<.*?>", ""); if (!text.Equals(value, StringComparison.OrdinalIgnoreCase)) { continue; } string? text2; if (!(prey.Network_steamID == "localhost")) { text2 = prey.Network_steamID; } else { CSteamID lobbyOwner = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); text2 = ((object)(CSteamID)(ref lobbyOwner)).ToString(); } string text3 = text2; if (voreMeStatus.TryGetValue(text3, out var value2) && !value2) { SendLobbyChat("VoreMe?:" + text3); ChatBehaviour._current.New_ChatMessage(text + " has not broadcast VoreMe true yet - waiting one second..."); return false; } sendSteamChat("VoreReq:" + prey.Network_steamID); if ((Object)(object)playerVis != (Object)null) { if (!_baselineValid) { baselineBellySize = playerVis._playerAppearanceStruct._bellyWeight; _baselineValid = true; } scalePlayer(7, voreBellySize, add: false); } if (_digesting.Exists((PreyDigestInfo d) => (Object)(object)d.Prey == (Object)(object)prey)) { return true; } PreyDigestInfo obj = new PreyDigestInfo { Prey = prey, Status = ((Component)prey).GetComponent<StatusEntity>() }; StatusEntity component = ((Component)prey).GetComponent<StatusEntity>(); obj.MaxHealth = ((component != null) ? component.Network_currentHealth : 0); PreyDigestInfo preyDigestInfo = obj; _digesting.Add(preyDigestInfo); preyDigestInfo.VisualHealth = preyDigestInfo.MaxHealth; if (NetworkServer.active) { if (_predStatus == null) { _predStatus = ((Component)localPlayer).GetComponent<StatusEntity>(); } } else { SendLobbyChat("DigestInit:" + prey.Network_steamID + "," + localPlayer.Network_steamID); } return true; } return false; } public bool sendFeedRequest(string[] parts) { //IL_00e6: Unknown result type (might be due to invalid IL or missing references) string value = string.Join(" ", parts, 1, parts.Length - 1); feedAble.RemoveAll((Player p) => (Object)(object)p == (Object)null); foreach (Player item in feedAble) { string text = Regex.Replace(item._nickname, "<.*?>", ""); if (!text.Equals(value, StringComparison.OrdinalIgnoreCase)) { continue; } string text2 = RealSteamID(item); if (feedableStatus.TryGetValue(text2, out var value2) && !value2) { SendLobbyChat("FeedPred?:" + text2); ChatBehaviour._current.New_ChatMessage(text + " has not broadcast FeedPred true yet - waiting one second..."); return false; } SendLobbyChat(string.Format("{0}{1},{2}", "FeedReq:", text2, SteamUser.GetSteamID())); currentRequest = new VoreRequest { Sender = item }; acceptVore(); return true; } return false; } public bool acceptVore() { //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) try { if (currentRequest == null) { return false; } PlayerVisual val = playerVis ?? localPlayer?._pVisual; if ((Object)(object)val == (Object)null) { ((MonoBehaviour)this).Invoke("RetryAcceptVore", 0.05f); return false; } PlayerAppearanceStruct playerAppearanceStruct = val._playerAppearanceStruct; if (!Vored) { playSize = new Vector2(playerAppearanceStruct._heightWeight, playerAppearanceStruct._widthWeight); } playerAppearanceStruct._heightWeight = 0.001f; playerAppearanceStruct._widthWeight = 0.001f; val.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct); voredBy = currentRequest.Sender; Vored = true; _waitingInstanceMove = false; return true; } catch (Exception ex) { Logger?.Invoke(ex.ToString()); return false; } } private void RetryAcceptVore() { if (currentRequest != null && !Vored) { acceptVore(); } } private void applySavedBody() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)playerVis == (Object)null) && savedAppearance.HasValue) { PlayerAppearanceStruct playerAppearanceStruct = playerVis._playerAppearanceStruct; PlayerAppearanceStruct value = savedAppearance.Value; playerAppearanceStruct._boobWeight = value._boobWeight; playerAppearanceStruct._headWidth = value._headWidth; playerAppearanceStruct._bottomWeight = value._bottomWeight; playerAppearanceStruct._heightWeight = value._heightWeight; playerAppearanceStruct._widthWeight = value._widthWeight; playerAppearanceStruct._torsoWeight = value._torsoWeight; playerAppearanceStruct._muzzleWeight = value._muzzleWeight; playerAppearanceStruct._voicePitch = value._voicePitch; playerAppearanceStruct._bellyWeight = value._bellyWeight; playerAppearanceStruct._armWeight = value._armWeight; playerVis.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct); PlayerAppearance_Profile appearanceProfile = ProfileDataManager._current._characterFile._appearanceProfile; appearanceProfile._boobWeight = value._boobWeight; appearanceProfile._headWidth = value._headWidth; appearanceProfile._bottomWeight = value._bottomWeight; appearanceProfile._heightWeight = value._heightWeight; appearanceProfile._widthWeight = value._widthWeight; appearanceProfile._torsoWeight = value._torsoWeight; appearanceProfile._muzzleWeight = value._muzzleWeight; appearanceProfile._voicePitch = value._voicePitch; appearanceProfile._bellyWeight = value._bellyWeight; appearanceProfile._armWeight = value._armWeight; ProfileDataManager._current.Save_ProfileData(); } } public bool exitVore() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) try { PlayerAppearanceStruct playerAppearanceStruct = localPlayer._pVisual._playerAppearanceStruct; playerAppearanceStruct._heightWeight = playSize.x; playerAppearanceStruct._widthWeight = playSize.y; playerAppearanceStruct._bellyWeight = baselineBellySize; localPlayer._pVisual.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct); currentRequest = null; voredBy = null; _waitingInstanceMove = false; Vored = false; return true; } catch (Exception ex) { Logger?.Invoke(ex.ToString()); return false; } } private static void SendLobbyChat(string txt) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) try { byte[] bytes = Encoding.ASCII.GetBytes(txt); CSteamID val = default(CSteamID); ((CSteamID)(ref val))..ctor(SteamLobby._current._currentLobbyID); SteamMatchmaking.SendLobbyChatMsg(val, bytes, bytes.Length); } catch { } } private void SendHealthDebug(string steamId, int newHp) { } private void onMessage(LobbyChatMsg_t cb) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_0636: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0788: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) //IL_07e4: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_085d: Unknown result type (might be due to invalid IL or missing references) //IL_0862: Unknown result type (might be due to invalid IL or missing references) //IL_0a33: Unknown result type (might be due to invalid IL or missing references) //IL_0a38: Unknown result type (might be due to invalid IL or missing references) //IL_092a: Unknown result type (might be due to invalid IL or missing references) //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_0ac7: Unknown result type (might be due to invalid IL or missing references) //IL_0acc: Unknown result type (might be due to invalid IL or missing references) //IL_0da1: Unknown result type (might be due to invalid IL or missing references) //IL_0da6: Unknown result type (might be due to invalid IL or missing references) //IL_0cb8: Unknown result type (might be due to invalid IL or missing references) //IL_0cbd: Unknown result type (might be due to invalid IL or missing references) //IL_0cc2: Unknown result type (might be due to invalid IL or missing references) //IL_0ba0: Unknown result type (might be due to invalid IL or missing references) //IL_0baf: Unknown result type (might be due to invalid IL or missing references) //IL_0f39: Unknown result type (might be due to invalid IL or missing references) //IL_0f3e: Unknown result type (might be due to invalid IL or missing references) //IL_0f59: Unknown result type (might be due to invalid IL or missing references) //IL_0f5e: Unknown result type (might be due to invalid IL or missing references) //IL_0f63: Unknown result type (might be due to invalid IL or missing references) //IL_0df6: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0fc8: Unknown result type (might be due to invalid IL or missing references) try { if ((CSteamID)cb.m_ulSteamIDUser == SteamUser.GetSteamID()) { return; } byte[] array = new byte[5000]; CSteamID sid = default(CSteamID); EChatEntryType val = default(EChatEntryType); int lobbyChatEntry = SteamMatchmaking.GetLobbyChatEntry((CSteamID)cb.m_ulSteamIDLobby, (int)cb.m_iChatID, ref sid, array, 5000, ref val); string @string = Encoding.ASCII.GetString(array, 0, Math.Min(20, lobbyChatEntry)); string text = Encoding.ASCII.GetString(array).TrimEnd(new char[1]); CSteamID val2; if (text.StartsWith("VoreMe:")) { string[] array2 = text.Split(':', ','); if (array2.Length == 3) { bool value = array2[2] == "1"; voreMeStatus[array2[1]] = value; val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string text2 = ((object)(CSteamID)(ref val2)).ToString(); if (array2[1] == text2) { voreMeStatus["localhost"] = value; } } } else if (text.StartsWith("FeedPred:")) { string[] array3 = text.Split(':', ','); if (array3.Length == 3) { bool value2 = array3[2] == "1"; feedableStatus[array3[1]] = value2; val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string text3 = ((object)(CSteamID)(ref val2)).ToString(); if (array3[1] == text3) { feedableStatus["localhost"] = value2; } } } else if (text.StartsWith("VFollowAck:") && !NetworkServer.active) { string text4 = text; int length = "VFollowAck:".Length; string[] array4 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array4.Length == 2) { string text5 = array4[0]; string text6 = array4[1]; val2 = SteamUser.GetSteamID(); if (text5 == ((object)(CSteamID)(ref val2)).ToString() || ((Object)(object)localPlayer != (Object)null && text5 == localPlayer.Network_steamID)) { Debug.Log((object)("[VFollow] Ack from host; transferring to '" + text6 + "'...")); } } } else if (text.StartsWith("Perma:")) { string[] array5 = text.Split(':', ','); if (array5.Length == 3) { permaStatus[array5[1]] = array5[2] == "1"; } } else if (text.StartsWith("PermaGain:") && !NetworkServer.active) { string text4 = text; int length = "PermaGain:".Length; string[] array6 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array6.Length == 2) { string obj = array6[0]; val2 = SteamUser.GetSteamID(); if (obj == ((object)(CSteamID)(ref val2)).ToString() && int.TryParse(array6[1], out var result) && result > 0) { permaLvlGain += result; } } } else if (text.StartsWith("SetLevel:") && NetworkServer.active) { string text4 = text; int length = "SetLevel:".Length; string[] array7 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array7.Length == 2 && ulong.TryParse(array7[0], out var result2) && int.TryParse(array7[1], out var result3)) { Player val3 = findPlayer(new CSteamID(result2)); PlayerStats ps = (Object.op_Implicit((Object)(object)val3) ? ((Component)val3).GetComponentInChildren<PlayerStats>() : null); ApplyLevel(ps, result3); Debug.Log((object)$"[RPC-SetLevel] host set {val3._nickname} to {result3}"); } } else if (text.StartsWith("EscapeKill:") && NetworkServer.active) { string text4 = text; int length = "EscapeKill:".Length; if (ulong.TryParse(text4.Substring(length, text4.Length - length), out var result4)) { Player val4 = findPlayer(new CSteamID(result4)); StatusEntity val5 = ((val4 != null) ? ((Component)val4).GetComponent<StatusEntity>() : null); if ((Object)(object)val5 != (Object)null) { val5.Subtract_Health(val5.Network_currentHealth); } } } else if (text.StartsWith("AbsorbExp:") && NetworkServer.active) { string text4 = text; int length = "AbsorbExp:".Length; string[] array8 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array8.Length == 2 && ulong.TryParse(array8[0], out var result5) && int.TryParse(array8[1], out var result6) && result6 > 0) { Player val6 = findPlayer(new CSteamID(result5)); PlayerStats val7 = ((val6 != null) ? ((Component)val6).GetComponentInChildren<PlayerStats>() : null); if ((Object)(object)val7 != (Object)null) { val7.GainExp(result6, val7.Network_currentLevel); } } } else if (text.StartsWith("RestoreBelly:")) { string text4 = text; int length = "RestoreBelly:".Length; string text7 = text4.Substring(length, text4.Length - length); val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string text8 = ((object)(CSteamID)(ref val2)).ToString(); Player obj2 = localPlayer; if (!(text7 == ((obj2 != null) ? obj2.Network_steamID : null))) { if (!(text7 == text8)) { return; } Player obj3 = localPlayer; if (!(((obj3 != null) ? obj3.Network_steamID : null) == "localhost")) { return; } } Beyondinstance.RestorePredatorBelly(); } else if (text.StartsWith("VFollowReq:") && NetworkServer.active) { string text4 = text; int length = "VFollowReq:".Length; string[] array9 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array9.Length == 2 && ulong.TryParse(array9[0], out var result7) && ulong.TryParse(array9[1], out var result8)) { Player val8 = findPlayer(new CSteamID(result7)); Player val9 = findPlayer(new CSteamID(result8)); if (Object.op_Implicit((Object)(object)val8) && Object.op_Implicit((Object)(object)val9)) { Server_MovePreyToPredInstance(val8, val9); } } } else if (text.Contains("Lillys Vorable")) { Player val10 = findPlayer((CSteamID)cb.m_ulSteamIDUser); if ((Object)(object)val10 != (Object)null && !voreAble.Contains(val10)) { voreAble.Add(val10); } } else if (text.Contains("Lillys Feedable")) { Player val11 = findPlayer((CSteamID)cb.m_ulSteamIDUser); if ((Object)(object)val11 != (Object)null && !feedAble.Contains(val11)) { feedAble.Add(val11); } } else if (text.StartsWith("HealthDbg:")) { string[] array10 = text.Split(':', ','); if (array10.Length == 3) { string obj4 = array10[1]; val2 = SteamUser.GetSteamID(); if (obj4 == ((object)(CSteamID)(ref val2)).ToString()) { ChatBehaviour._current.New_ChatMessage("[DEBUG] Your HP is now " + array10[2]); } } } else if (text.StartsWith("DigestTick:") && NetworkServer.active) { string text4 = text; int length = "DigestTick:".Length; string[] array11 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array11.Length != 2 || !ulong.TryParse(array11[0], out var result9) || !int.TryParse(array11[1], out var result10) || result10 <= 0) { return; } Player val12 = findPlayer(new CSteamID(result9)); Player val13 = findPlayer(sid); if (Object.op_Implicit((Object)(object)val12) && Object.op_Implicit((Object)(object)val13)) { StatusEntity component = ((Component)val12).GetComponent<StatusEntity>(); StatusEntity component2 = ((Component)val13).GetComponent<StatusEntity>(); int network_currentHealth = component.Network_currentHealth; if (network_currentHealth > 0 && network_currentHealth - result10 <= 0) { HandlePermaKill(val12, val13); } component.Subtract_Health(result10); if ((Object)(object)component != (Object)null) { SendHealthDebug(val12.Network_steamID, component.Network_currentHealth); } if (component2 != null) { component2.Add_Mana(result10 * 10); } } } else if (text.StartsWith("VoreMe?:") && (Object)(object)localPlayer != (Object)null) { string text4 = text; int length = "VoreMe?:".Length; string text9 = text4.Substring(length, text4.Length - length); val2 = SteamUser.GetSteamID(); if (text9 == ((object)(CSteamID)(ref val2)).ToString()) { SendLobbyChat($"VoreMe:{text9},{(voreMe ? 1 : 0)}"); } } else if (text.StartsWith("FeedPred?:") && (Object)(object)localPlayer != (Object)null) { string text4 = text; int length = "FeedPred?:".Length; string text10 = text4.Substring(length, text4.Length - length); val2 = SteamUser.GetSteamID(); if (text10 == ((object)(CSteamID)(ref val2)).ToString()) { SendLobbyChat($"FeedPred:{text10},{(feedable ? 1 : 0)}"); } } else if (text.StartsWith("DigestInit:") && NetworkServer.active) { string text4 = text; int length = "DigestInit:".Length; string[] array12 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array12.Length != 2 || !ulong.TryParse(array12[0], out var result11) || !ulong.TryParse(array12[1], out var result12)) { return; } Player val14 = findPlayer(new CSteamID(result11)); Player val15 = findPlayer(new CSteamID(result12)); if (Object.op_Implicit((Object)(object)val14) && Object.op_Implicit((Object)(object)val15)) { PreyDigestInfo obj5 = new PreyDigestInfo { Prey = val14, Status = ((Component)val14).GetComponent<StatusEntity>() }; StatusEntity component3 = ((Component)val14).GetComponent<StatusEntity>(); obj5.MaxHealth = ((component3 != null) ? component3.Network_currentHealth : 0); PreyDigestInfo preyDigestInfo = obj5; _digesting.Add(preyDigestInfo); preyDigestInfo.VisualHealth = preyDigestInfo.MaxHealth; if (_predStatus == null) { _predStatus = ((Component)val15).GetComponent<StatusEntity>(); } } } else if (text.StartsWith("DigestKill:") && NetworkServer.active) { string text4 = text; int length = "DigestKill:".Length; if (ulong.TryParse(text4.Substring(length, text4.Length - length), out var result13)) { string idStr = result13.ToString(); val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string host64 = ((object)(CSteamID)(ref val2)).ToString(); PreyDigestInfo di = _digesting.Find((PreyDigestInfo d) => d.Prey.Network_steamID == idStr || (d.Prey.Network_steamID == "localhost" && idStr == host64)); if ((Object)(object)di?.Status != (Object)null) { Player predator = findPlayer(sid); HandlePermaKill(di.Prey, predator); di.Status.Subtract_Health(di.Status.Network_currentHealth); } _digesting.RemoveAll((PreyDigestInfo d) => (Object)(object)d.Prey == (Object)(object)di?.Prey); } } else if (text.StartsWith("VoreReq:")) { string text11 = text.Substring("VoreReq:".Length); val2 = SteamUser.GetSteamID(); if (!(text11 == ((object)(CSteamID)(ref val2)).ToString()) && (!((Object)(object)localPlayer != (Object)null) || !(text11 == localPlayer.Network_steamID))) { return; } Player val16 = findPlayer(sid); if ((Object)(object)val16 == (Object)null) { _pendingVore = new PendingVore { SenderSteamID = sid.m_SteamID.ToString() }; return; } currentRequest = new VoreRequest { Sender = val16 }; if (!voreMe) { ChatBehaviour._current.New_ChatMessage("Vore request denied (VoreMe is false)"); return; } if (!autoAccept || Vored) { ChatBehaviour._current.New_ChatMessage("Vore request from " + val16._nickname); return; } acceptVore(); ChatBehaviour._current.New_ChatMessage("You've been vored by " + val16._nickname); } else if (text.StartsWith("FeedReq:")) { string text4 = text; int length = "FeedReq:".Length; string[] array13 = text4.Substring(length, text4.Length - length).Split(new char[1] { ',' }); if (array13.Length != 2) { return; } string text12 = array13[0]; string s = array13[1]; val2 = SteamUser.GetSteamID(); string text13 = ((object)(CSteamID)(ref val2)).ToString(); val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string text14 = ((object)(CSteamID)(ref val2)).ToString(); if (!(text12 == text13)) { if (!(text12 == text14)) { return; } Player obj6 = localPlayer; if (!(((obj6 != null) ? obj6.Network_steamID : null) == "localhost")) { return; } } Player prey = findPlayer(new CSteamID(ulong.Parse(s))); if (!Object.op_Implicit((Object)(object)prey)) { return; } if ((Object)(object)playerVis != (Object)null) { if (!_baselineValid) { baselineBellySize = playerVis._playerAppearanceStruct._bellyWeight; _baselineValid = true; } scalePlayer(7, voreBellySize, add: false); } if (_digesting.Exists((PreyDigestInfo d) => (Object)(object)d.Prey == (Object)(object)prey)) { return; } PreyDigestInfo obj7 = new PreyDigestInfo { Prey = prey, Status = ((Component)prey).GetComponent<StatusEntity>() }; StatusEntity component4 = ((Component)prey).GetComponent<StatusEntity>(); obj7.MaxHealth = ((component4 != null) ? component4.Network_currentHealth : 0); StatusEntity component5 = ((Component)prey).GetComponent<StatusEntity>(); obj7.VisualHealth = ((component5 != null) ? component5.Network_currentHealth : 0); PreyDigestInfo item = obj7; _digesting.Add(item); if (NetworkServer.active) { if (_predStatus == null) { _predStatus = ((Component)localPlayer).GetComponent<StatusEntity>(); } } else { SendLobbyChat("DigestInit:" + prey.Network_steamID + "," + localPlayer.Network_steamID); } } else if (text.Contains("Unvore")) { string text15 = Regex.Replace(text.Split(new char[1] { ',' })[0], "<.*?>", ""); string text16 = Regex.Replace(localPlayer._nickname, "<.*?>", ""); if (text16 == text15 && Vored) { exitVore(); ChatBehaviour._current.New_ChatMessage("You've Been Unvored"); } } } catch (Exception ex) { Logger?.Invoke(ex.ToString()); } } private Player findPlayer(CSteamID sid) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) string text = ((object)(CSteamID)(ref sid)).ToString(); CSteamID lobbyOwner = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string text2 = ((object)(CSteamID)(ref lobbyOwner)).ToString(); Player[] array = Object.FindObjectsOfType<Player>(); foreach (Player val in array) { if (val.Network_steamID == text || (text == text2 && val.Network_steamID == "localhost")) { return val; } } return null; } private void Start() { Beyondinstance = this; messageRecived = Callback<LobbyChatMsg_t>.Create((DispatchDelegate<LobbyChatMsg_t>)onMessage); if (NetworkServer.active) { ForceWideRanges(); } ((MonoBehaviour)this).Invoke("AutoBaseline", 0.1f); } private void AutoBaseline() { if ((Object)(object)playerVis != (Object)null) { baselineBellySize = playerVis._playerAppearanceStruct._bellyWeight; _baselineValid = true; ChatBehaviour._current.New_ChatMessage($"Baseline belly auto-set to {baselineBellySize:F1}"); saveConfig?.Invoke(""); } else { ((MonoBehaviour)this).Invoke("AutoBaseline", 0.1f); } } private static void ForceWideRanges() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) ScriptablePlayerRace[] array = Resources.FindObjectsOfTypeAll<ScriptablePlayerRace>(); foreach (ScriptablePlayerRace val in array) { CharacterParamsGroup raceDisplayParams = val._raceDisplayParams; raceDisplayParams._boobRange = new Vector2(0f, 999f); raceDisplayParams._bellyRange = new Vector2(0f, 999f); raceDisplayParams._bottomRange = new Vector2(0f, 999f); raceDisplayParams._heightRange = new Vector2(0f, 999f); raceDisplayParams._widthRange = new Vector2(0f, 999f); } } private void setSlider(int part, float value, ref PlayerAppearanceStruct pas) { switch (part) { case 1: pas._boobWeight = value; break; case 6: pas._bottomWeight = value; break; case 7: pas._bellyWeight = value; break; } } public void RestorePredatorBelly() { if (!((Object)(object)playerVis == (Object)null)) { if (!_baselineValid) { ChatBehaviour._current.New_ChatMessage("No baseline belly set yet (/VoreSetup)."); return; } scalePlayer(7, baselineBellySize, add: false); ChatBehaviour._current.New_ChatMessage($"Your belly returned to {baselineBellySize:F1}"); } } private void RefreshVoreAble() { voreAble.RemoveAll((Player p) => (Object)(object)p == (Object)null); Player[] array = Object.FindObjectsOfType<Player>(); foreach (Player val in array) { if (!voreAble.Contains(val)) { string key = RealSteamID(val); if (!voreMeStatus.TryGetValue(key, out var value) || value) { voreAble.Add(val); } } } } private void RefreshFeedAble() { feedAble.RemoveAll((Player p) => (Object)(object)p == (Object)null); Player[] array = Object.FindObjectsOfType<Player>(); foreach (Player val in array) { if (!((Object)(object)val == (Object)(object)localPlayer) && !feedAble.Contains(val) && (!feedableStatus.TryGetValue(RealSteamID(val), out var value) || value)) { feedAble.Add(val); } } } public static string RealSteamID(Player p) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) string? result; if (!(p.Network_steamID == "localhost")) { result = p.Network_steamID; } else { CSteamID lobbyOwner = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); result = ((object)(CSteamID)(ref lobbyOwner)).ToString(); } return result; } private static float StepToward(float current, float target, float step) { if (Mathf.Approximately(current, target)) { return target; } return (current > target) ? Mathf.Max(target, current - step) : Mathf.Min(target, current + step); } private void SendDigestTick(Player prey, int dmg) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) string? text; if (!(prey.Network_steamID == "localhost")) { text = prey.Network_steamID; } else { CSteamID lobbyOwner = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); text = ((object)(CSteamID)(ref lobbyOwner)).ToString(); } string arg = text; SendLobbyChat($"DigestTick:{arg},{dmg}"); } private void InitAbsorbXp() { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) absorbPayoutsLeft = 5; absorbPayoutInterval = Mathf.Max(0.01f, absorbTotalTime / 5f); absorbPayoutTimer = 0f; float num = totalDigestDamage / 5f; absorbChunk = Mathf.RoundToInt(num * 100f); totalDigestDamage = 0f; permaLevelsPerStep = Mathf.CeilToInt((float)permaLvlGain / 5f); if ((Object)(object)playerVis != (Object)null && _normalSnapshot.HasValue) { float num2 = Mathf.Max(1f, absorbTotalTime / 0.1f); stepBoob = Mathf.Abs(playerVis._playerAppearanceStruct._boobWeight - _normalSnapshot.Value._boobWeight) / num2; stepButt = Mathf.Abs(playerVis._playerAppearanceStruct._bottomWeight - _normalSnapshot.Value._bottomWeight) / num2; stepBelly = Mathf.Abs(playerVis._playerAppearanceStruct._bellyWeight - _normalSnapshot.Value._bellyWeight) / num2; stepHeight = Mathf.Abs(playerVis._playerAppearanceStruct._heightWeight - _normalSnapshot.Value._heightWeight) / num2; stepWidth = Mathf.Abs(playerVis._playerAppearanceStruct._widthWeight - _normalSnapshot.Value._widthWeight) / num2; } Debug.Log((object)$"[InitAbsorb] absorbChunk={absorbChunk} permaLevelsPerStep={permaLevelsPerStep}"); } private void Client_ForceLoadMap(string mapName) { //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) MapInstance val = null; MapInstance[] array = Object.FindObjectsOfType<MapInstance>(); foreach (MapInstance val2 in array) { if (string.Equals(val2._mapName, mapName, StringComparison.OrdinalIgnoreCase)) { val = val2; break; } string text = ((Object)val2).name; if (text.StartsWith("_MapInstance (") && text.EndsWith(")")) { text = text.Substring("_MapInstance (".Length, text.Length - "_MapInstance (".Length - 1); } if (string.Equals(text, mapName, StringComparison.OrdinalIgnoreCase)) { val = val2; break; } } if ((Object)(object)val == (Object)null) { Debug.LogWarning((object)("[VFollow] Could not locate MapInstance '" + mapName + "' on client; UI may break.")); return; } Player val3 = localPlayer ?? Player._mainPlayer; if ((Object)(object)val3 != (Object)null) { val3.Network_playerMapInstance = val; val3.Network_mapName = mapName; } Scene scene = ((Component)val).gameObject.scene; if (((Scene)(ref scene)).IsValid()) { SceneManager.SetActiveScene(scene); } try { InGameUI current = InGameUI._current; if ((Object)(object)current != (Object)null) { ((Component)current).gameObject.SetActive(false); ((Component)current).gameObject.SetActive(true); } } catch (Exception arg) { Debug.Log((object)$"[VFollow] UI rebind threw: {arg}"); } } private static string ScenePathOf(Player p) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) MapInstance network_playerMapInstance = p.Network_playerMapInstance; if (Object.op_Implicit((Object)(object)network_playerMapInstance)) { return ((Scene)(ref network_playerMapInstance._loadedScene)).path; } Scene scene = ((Component)p).gameObject.scene; return ((Scene)(ref scene)).path; } private void AwardExp(int amt) { Debug.Log((object)$"[AwardExp] grant={amt} host={NetworkServer.active}"); if (amt <= 0) { return; } if (NetworkServer.active) { Player obj = localPlayer; PlayerStats val = ((obj != null) ? ((Component)obj).GetComponentInChildren<PlayerStats>() : null); if (val != null) { val.GainExp(amt, val.Network_currentLevel); } } else { SendLobbyChat(string.Format("{0}{1},{2}", "AbsorbExp:", localPlayer.Network_steamID, amt)); } } private static void ApplyLevel(PlayerStats ps, int lvl) { //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)$"[ApplyLevel] ENTER requested={lvl} current={((ps != null) ?