Decompiled source of VORE v7.1.1
Mods/Lillys_BL_Koogles_Vore_Fork.dll
Decompiled 5 hours 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.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.1.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_0030: 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)}"); } } 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_0f8a: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0929: Unknown result type (might be due to invalid IL or missing references) //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_07df: 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_0698: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_0b8e: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Unknown result type (might be due to invalid IL or missing references) //IL_0c69: Unknown result type (might be due to invalid IL or missing references) //IL_0c6e: 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 val; 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 text4 = RealSteamID(voredBy); SendLobbyChat("RestoreBelly:" + text4); } 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"; val = SteamUser.GetSteamID(); string text3 = ((object)(CSteamID)(ref val)).ToString(); Beyondinstance.permaStatus[text3] = Beyondinstance.permaEnabled; SendLobbyChat($"Perma:{text3},{(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 val2 = ((localPlayer != null) ? ((Component)localPlayer).GetComponentInChildren<PlayerStats>() : null); __instance.New_ChatMessage($"Current level: {(Object.op_Implicit((Object)(object)val2) ? val2.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 { val = SteamUser.GetSteamID(); string arg = ((object)(CSteamID)(ref val)).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"; 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 { val = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); text5 = ((object)(CSteamID)(ref val)).ToString(); } string key = text5; if (!Beyondinstance.voreMeStatus.TryGetValue(key, out var value) || value) { __instance.New_ChatMessage(Regex.Replace(item._nickname, "<.*?>", "")); } } 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("^ Boobs, Height, Head, Width, Butt, Belly, Muzzle, Voice, Torso, Arms, and Scale"); 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 who can vore you"); L(); L("/Vorable"); L("^ list players that are vorable (excluding yourself)"); L("^ Note: you'll still show up here even if you toggle"); L("^ vorable to false due to a bug I dont feel like fixing lol"); L("^ but dont worry! you're safe if your vorable is false!"); L(); L("/UnVore [Name]"); L("^ escape or eject prey"); L(); L("/VoreLock"); L("^ toggle escape lock while inside pred"); L("^ be careful ... its permanent ..."); L(); L("/VoreBelly <value>"); L("^ set the size your tummy goes to after eating someone"); 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>FOR PLAYERS TO TAKE DIGESTION DAMAGE YOU MUST BE IN A NON-SAFE AREA (CAN'T BE IN SPAWN)</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; 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 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_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) //IL_0588: Unknown result type (might be due to invalid IL or missing references) //IL_04f8: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_0753: Unknown result type (might be due to invalid IL or missing references) //IL_0758: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_0929: Unknown result type (might be due to invalid IL or missing references) //IL_092e: Unknown result type (might be due to invalid IL or missing references) //IL_0820: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c0a: Unknown result type (might be due to invalid IL or missing references) //IL_0b1c: Unknown result type (might be due to invalid IL or missing references) //IL_0b21: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a13: Unknown result type (might be due to invalid IL or missing references) //IL_0c5a: Unknown result type (might be due to invalid IL or missing references) //IL_0b7a: 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("VFollowAck:") && !NetworkServer.active) { string text3 = text; int length = "VFollowAck:".Length; string[] array3 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array3.Length == 2) { string text4 = array3[0]; string text5 = array3[1]; val2 = SteamUser.GetSteamID(); if (text4 == ((object)(CSteamID)(ref val2)).ToString() || ((Object)(object)localPlayer != (Object)null && text4 == localPlayer.Network_steamID)) { Debug.Log((object)("[VFollow] Ack from host; transferring to '" + text5 + "'...")); } } } else if (text.StartsWith("Perma:")) { string[] array4 = text.Split(':', ','); if (array4.Length == 3) { permaStatus[array4[1]] = array4[2] == "1"; } } else if (text.StartsWith("PermaGain:") && !NetworkServer.active) { string text3 = text; int length = "PermaGain:".Length; string[] array5 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array5.Length == 2) { string obj = array5[0]; val2 = SteamUser.GetSteamID(); if (obj == ((object)(CSteamID)(ref val2)).ToString() && int.TryParse(array5[1], out var result) && result > 0) { permaLvlGain += result; } } } else if (text.StartsWith("SetLevel:") && NetworkServer.active) { string text3 = text; int length = "SetLevel:".Length; string[] array6 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array6.Length == 2 && ulong.TryParse(array6[0], out var result2) && int.TryParse(array6[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 text3 = text; int length = "EscapeKill:".Length; if (ulong.TryParse(text3.Substring(length, text3.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 text3 = text; int length = "AbsorbExp:".Length; string[] array7 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array7.Length == 2 && ulong.TryParse(array7[0], out var result5) && int.TryParse(array7[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 text3 = text; int length = "RestoreBelly:".Length; string text6 = text3.Substring(length, text3.Length - length); val2 = SteamMatchmaking.GetLobbyOwner(new CSteamID(SteamLobby._current._currentLobbyID)); string text7 = ((object)(CSteamID)(ref val2)).ToString(); Player obj2 = localPlayer; if (!(text6 == ((obj2 != null) ? obj2.Network_steamID : null))) { if (!(text6 == text7)) { return; } Player obj3 = localPlayer; if (!(((obj3 != null) ? obj3.Network_steamID : null) == "localhost")) { return; } } Beyondinstance.RestorePredatorBelly(); } else if (text.StartsWith("VFollowReq:") && NetworkServer.active) { string text3 = text; int length = "VFollowReq:".Length; string[] array8 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array8.Length == 2 && ulong.TryParse(array8[0], out var result7) && ulong.TryParse(array8[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.StartsWith("HealthDbg:")) { string[] array9 = text.Split(':', ','); if (array9.Length == 3) { string obj4 = array9[1]; val2 = SteamUser.GetSteamID(); if (obj4 == ((object)(CSteamID)(ref val2)).ToString()) { ChatBehaviour._current.New_ChatMessage("[DEBUG] Your HP is now " + array9[2]); } } } else if (text.StartsWith("DigestTick:") && NetworkServer.active) { string text3 = text; int length = "DigestTick:".Length; string[] array10 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array10.Length != 2 || !ulong.TryParse(array10[0], out var result9) || !int.TryParse(array10[1], out var result10) || result10 <= 0) { return; } Player val11 = findPlayer(new CSteamID(result9)); Player val12 = findPlayer(sid); if (Object.op_Implicit((Object)(object)val11) && Object.op_Implicit((Object)(object)val12)) { StatusEntity component = ((Component)val11).GetComponent<StatusEntity>(); StatusEntity component2 = ((Component)val12).GetComponent<StatusEntity>(); int network_currentHealth = component.Network_currentHealth; if (network_currentHealth > 0 && network_currentHealth - result10 <= 0) { HandlePermaKill(val11, val12); } component.Subtract_Health(result10); if ((Object)(object)component != (Object)null) { SendHealthDebug(val11.Network_steamID, component.Network_currentHealth); } if (component2 != null) { component2.Add_Mana(result10 * 10); } } } else if (text.StartsWith("VoreMe?:") && (Object)(object)localPlayer != (Object)null) { string text3 = text; int length = "VoreMe?:".Length; string text8 = text3.Substring(length, text3.Length - length); val2 = SteamUser.GetSteamID(); if (text8 == ((object)(CSteamID)(ref val2)).ToString()) { SendLobbyChat($"VoreMe:{text8},{(voreMe ? 1 : 0)}"); } } else if (text.StartsWith("DigestInit:") && NetworkServer.active) { string text3 = text; int length = "DigestInit:".Length; string[] array11 = text3.Substring(length, text3.Length - length).Split(new char[1] { ',' }); if (array11.Length != 2 || !ulong.TryParse(array11[0], out var result11) || !ulong.TryParse(array11[1], out var result12)) { return; } Player val13 = findPlayer(new CSteamID(result11)); Player val14 = findPlayer(new CSteamID(result12)); if (Object.op_Implicit((Object)(object)val13) && Object.op_Implicit((Object)(object)val14)) { PreyDigestInfo obj5 = new PreyDigestInfo { Prey = val13, Status = ((Component)val13).GetComponent<StatusEntity>() }; StatusEntity component3 = ((Component)val13).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)val14).GetComponent<StatusEntity>(); } } } else if (text.StartsWith("DigestKill:") && NetworkServer.active) { string text3 = text; int length = "DigestKill:".Length; if (ulong.TryParse(text3.Substring(length, text3.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 text9 = text.Substring("VoreReq:".Length); val2 = SteamUser.GetSteamID(); if (!(text9 == ((object)(CSteamID)(ref val2)).ToString()) && (!((Object)(object)localPlayer != (Object)null) || !(text9 == localPlayer.Network_steamID))) { return; } Player val15 = findPlayer(sid); if ((Object)(object)val15 == (Object)null) { _pendingVore = new PendingVore { SenderSteamID = sid.m_SteamID.ToString() }; return; } currentRequest = new VoreRequest { Sender = val15 }; if (!voreMe) { ChatBehaviour._current.New_ChatMessage("Vore request denied (VoreMe is false)"); return; } if (!autoAccept || Vored) { ChatBehaviour._current.New_ChatMessage("Vore request from " + val15._nickname); return; } acceptVore(); ChatBehaviour._current.New_ChatMessage("You've been vored by " + val15._nickname); } else if (text.Contains("Unvore")) { string text10 = Regex.Replace(text.Split(new char[1] { ',' })[0], "<.*?>", ""); string text11 = Regex.Replace(localPlayer._nickname, "<.*?>", ""); if (text11 == text10 && 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 (!((Object)(object)val == (Object)(object)localPlayer) && !voreAble.Contains(val) && (!voreMeStatus.TryGetValue(val.Network_steamID, out var value) || value)) { voreAble.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) ? new int?(ps.Network_currentLevel) : null)}"); if (!Object.op_Implicit((Object)(object)ps)) { return; } StatLogics statLogics = GameManager._current._statLogics; int maxMainLevel = statLogics._maxMainLevel; int attributePointsEachLevel = statLogics._attributePointsEachLevel; lvl = Mathf.Clamp(lvl, 1, maxMainLevel); ps.Network_currentLevel = lvl; int num = (int)statLogics._experienceCurve.Evaluate((float)lvl) - 5; ps.Network_currentExp = Mathf.Clamp(ps.Network_currentExp, 0, num); int network_currentAttributePoints = 6 + (lvl - 1) * attributePointsEachLevel; ps.Network_currentAttributePoints = network_currentAttributePoints; if (ps._syncAttributes != null) { for (int i = 0; i < ps._syncAttributes.Count; i++) { AttributeStruct val = ps._syncAttributes[i]; val._attributeValue = 1; ps._syncAttributes[i] = val; } } Debug.Log((object)$"[ApplyLevel] EXIT newLvl={ps.Network_currentLevel} exp={ps.Network_currentExp} attrPool={ps.Network_currentAttributePoints}"); } private void HandlePermaKill(Player prey, Player predator) { if (!Object.op_Implicit((Object)(object)prey) || !Object.op_Implicit((Object)(object)predator)) { return; } string key = RealSteamID(prey); if (!permaStatus.TryGetValue(key, out var value) || !value) { return; } PlayerStats componentInChildren = ((Component)prey).GetComponentInChildren<PlayerStats>(); int num = (Object.op_Implicit((Object)(object)componentInChildren) ? componentInChildren.Network_currentLevel : 0); Debug.Log((object)$"[HPK] prey={prey._nickname} lostLvls={num} pred={predator._nickname}"); if (num > 0) { if (((NetworkBehaviour)predator).isLocalPlayer) { permaLvlGain += num; } if (NetworkServer.active) { ApplyLevel(componentInChildren, 1); } else { SendLobbyChat("SetLevel:" + RealSteamID(prey) + ",1"); } if (!((NetworkBehaviour)predator).isLocalPlayer) { SendLobbyChat($"PermaGain:{RealSteamID(predator)},{num}"); } Debug.Log((object)$"[HPK] predGain now {permaLvlGain}"); } } private void ForceBellyToBaseline() { //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) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)playerVis) && _baselineValid) { PlayerAppearanceStruct playerAppearanceStruct = playerVis._playerAppearanceStruct; if (!Mathf.Approximately(playerAppearanceStruct._bellyWeight, baselineBellySize)) { playerAppearanceStruct._bellyWeight = baselineBellySize; playerVis.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct); PlayerAppearance_Profile appearanceProfile = ProfileDataManager._current._characterFile._appearanceProfile; appearanceProfile._bellyWeight = baselineBellySize; ProfileDataManager._current.Save_ProfileData(); } } } private void Update() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: 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_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0722: 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_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0733: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_0753: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_077a: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07ba: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_08ff: Unknown result type (might be due to invalid IL or missing references) //IL_0913: Unknown result type (might be due to invalid IL or missing references) //IL_091a: Unknown result type (might be due to invalid IL or missing references) //IL_092e: Unknown result type (might be due to invalid IL or missing references) //IL_0935: Unknown result type (might be due to invalid IL or missing references) //IL_0b3f: Unknown result type (might be due to invalid IL or missing references) //IL_0acb: Unknown result type (might be due to invalid IL or missing references) //IL_0ad0: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_0495: Unknown result type (might be due to invalid IL or missing references) //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Unknown result type (might be due to invalid IL or missing references) if (_pendingVore != null) { Player val = findPlayer(new CSteamID(ulong.Parse(_pendingVore.SenderSteamID))); if ((Object)(object)val != (Object)null) { currentRequest = new VoreRequest { Sender = val }; if (autoAccept && !Vored && voreMe) { acceptVore(); } _pendingVore = null; } } if (digestEnabled && (Object)(object)playerVis != (Object)null && _baselineValid) { digestTimer += Time.deltaTime; if (!(digestTimer < 0.1f)) { digestTimer = 0f; PlayerAppearanceStruct playerAppearanceStruct = playerVis._playerAppearanceStruct; float bellyWeight = playerAppearanceStruct._bellyWeight; _digesting.RemoveAll(delegate(PreyDigestInfo di) { if (di == null || (Object)(object)di.Prey == (Object)null) { return true; } PlayerVisual pVisual2 = di.Prey._pVisual; return (Object)(object)pVisual2 == (Object)null || pVisual2._playerAppearanceStruct._heightWeight > 0.05f; }); float num = 0.1f / Mathf.Max(0.01f, digestTotalTime); int num2 = 0; PreyDigestInfo[] array = _digesting.ToArray(); foreach (PreyDigestInfo preyDigestInfo in array) { PreyDigestInfo preyDigestInfo2 = preyDigestInfo; if (preyDigestInfo2.Status == null) { Player prey = preyDigestInfo.Prey; preyDigestInfo2.Status = ((prey != null) ? ((Component)prey).GetComponent<StatusEntity>() : null); } if ((Object)(object)preyDigestInfo.Status == (Object)null) { continue; } float num3 = (float)preyDigestInfo.MaxHealth * num; int network_currentHealth = preyDigestInfo.Status.Network_currentHealth; if ((float)network_currentHealth > preyDigestInfo.VisualHealth) { preyDigestInfo.VisualHealth = network_currentHealth; } else { float num4 = preyDigestInfo.VisualHealth - num3; preyDigestInfo.VisualHealth = Mathf.Max((float)network_currentHealth, num4); } preyDigestInfo.DamageRemainder += num3; int num5 = Mathf.FloorToInt(preyDigestInfo.DamageRemainder); if (num5 <= 0) { continue; } preyDigestInfo.DamageRemainder -= num5; totalDigestDamage += num5; num2 += num5; if (NetworkServer.active) { int network_currentHealth2 = preyDigestInfo.Status.Network_currentHealth; if (network_currentHealth2 > 0 && network_currentHealth2 - num5 <= 0) { HandlePermaKill(preyDigestInfo.Prey, localPlayer); } preyDigestInfo.Status.S