using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using EnhancedGodMode;
using MelonLoader;
using Photon.Pun;
using Repo_Library;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: MelonInfo(typeof(EnhancedGod), "EventRepo", "1.0", "Drew and Kel", null)]
[assembly: MelonGame("semiwork", "REPO")]
[assembly: AssemblyTitle("EnhancedGodMode")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EnhancedGodMode")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("779630a6-ed84-4579-90aa-e74f5354c1b1")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace EnhancedGodMode;
public class EnhancedGod : MelonMod
{
private readonly Library Repo_Lib = new Library();
private bool hasUpgraded = false;
private bool god = false;
private bool isNoClip = false;
private float flySpeed = 10f;
private bool isTumble = false;
private bool durability = false;
private bool wasInGameLastFrame = false;
private bool lasersWOO = false;
public override void OnUpdate()
{
//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
//IL_02de: Unknown result type (might be due to invalid IL or missing references)
//IL_0315: Unknown result type (might be due to invalid IL or missing references)
//IL_0279: Unknown result type (might be due to invalid IL or missing references)
//IL_027e: Unknown result type (might be due to invalid IL or missing references)
//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
bool flag = Repo_Lib.IsInGame();
if (flag && !wasInGameLastFrame)
{
hasUpgraded = false;
}
wasInGameLastFrame = flag;
if (!flag)
{
return;
}
PlayerController playerController = Repo_Lib.GetPlayerController();
if ((Object)(object)playerController == (Object)null)
{
return;
}
if (Repo_Lib.IsSprinting(playerController))
{
Repo_Lib.SetSprintEnergyDrain(playerController, 0f);
Repo_Lib.SetPlayerCurrentEnergy(playerController, Repo_Lib.GetPlayerMaxEnergy(playerController));
}
if (!hasUpgraded)
{
hasUpgraded = true;
for (int i = 0; i < 20; i++)
{
Repo_Lib.UpgradePlayerEnergy();
Repo_Lib.UpgradePlayerHealth();
Repo_Lib.UpgradePlayerJump();
Repo_Lib.UpgradePlayerGrabRange();
Repo_Lib.UpgradePlayerGrabStrength();
}
for (int j = 0; j < 10; j++)
{
Repo_Lib.UpgradePlayerTumbleLaunch();
Repo_Lib.UpgradePlayerSprintSpeed();
}
}
if (Input.GetKeyDown((KeyCode)282))
{
if (!god)
{
god = true;
Repo_Lib.SetGodMode(true);
MelonLogger.Msg("god mode enabled");
}
else
{
god = false;
Repo_Lib.SetGodMode(false);
MelonLogger.Msg("god mode disabled");
}
}
if (Input.GetKeyDown((KeyCode)283))
{
ToggleNoClip(playerController);
}
if (isNoClip)
{
FlyMovement(playerController);
}
if (Input.GetKeyDown((KeyCode)284))
{
Repo_Lib.SpawnItem(AssetManager.instance.enemyValuableBig);
}
if (Input.GetKeyDown((KeyCode)285))
{
List<PlayerAvatar> allPlayers = Repo_Lib.GetAllPlayers();
for (int k = 0; k < allPlayers.Count; k++)
{
if (((Component)allPlayers[k]).GetComponent<PhotonView>().IsMine)
{
PlayerController playerController2 = Repo_Lib.GetPlayerController();
MelonLogger.Msg("Player is mine");
Vector3 position;
if (k != 0)
{
position = ((Component)allPlayers[k - 1]).transform.position;
MelonLogger.Msg("Player moved to: " + ((object)(Vector3)(ref position)).ToString());
Repo_Lib.TeleportPlayer(playerController2, ((Component)allPlayers[k - 1]).transform.position);
}
else
{
position = ((Component)allPlayers[allPlayers.Count - 1]).transform.position;
MelonLogger.Msg("Player moved to: " + ((object)(Vector3)(ref position)).ToString());
Repo_Lib.TeleportPlayer(playerController2, ((Component)allPlayers[allPlayers.Count - 1]).transform.position);
}
}
}
}
if (Input.GetKeyDown((KeyCode)286))
{
PlayerAvatar playerAvatar = Repo_Lib.GetPlayerAvatar();
Repo_Lib.HealPlayerMax(((Component)playerAvatar).gameObject);
}
if (Input.GetKeyDown((KeyCode)287))
{
if (!durability)
{
Repo_Lib.DisableItemsDurability(true);
MelonLogger.Msg("Item Durability: Disabled");
durability = true;
}
else
{
Repo_Lib.DisableItemsDurability(false);
MelonLogger.Msg("Item Durability: Enabled");
durability = false;
}
}
if (lasersWOO)
{
Repo_Lib.DrawLineToEnemy();
}
if (Input.GetKeyDown((KeyCode)288))
{
if (!lasersWOO)
{
lasersWOO = true;
return;
}
lasersWOO = false;
Repo_Lib.ClearEnemyLines();
}
}
private void ToggleNoClip(PlayerController playerController)
{
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
isNoClip = !isNoClip;
if (isNoClip)
{
((Behaviour)playerController.PlayerCollision).enabled = false;
((Behaviour)playerController.CollisionController).enabled = false;
((Component)playerController.CollisionController).gameObject.SetActive(false);
((Component)playerController.PlayerCollision).gameObject.SetActive(false);
((Behaviour)playerController.CollisionGrounded).enabled = false;
playerController.rb.isKinematic = true;
playerController.rb.useGravity = false;
playerController.rb.detectCollisions = false;
playerController.rb.velocity = Vector3.zero;
MelonLogger.Msg("NoClip enabled");
}
else
{
((Behaviour)playerController.PlayerCollision).enabled = true;
((Behaviour)playerController.CollisionController).enabled = true;
((Component)playerController.CollisionController).gameObject.SetActive(true);
((Component)playerController.PlayerCollision).gameObject.SetActive(true);
((Behaviour)playerController.CollisionGrounded).enabled = true;
playerController.rb.isKinematic = false;
playerController.rb.useGravity = true;
playerController.rb.detectCollisions = true;
MelonLogger.Msg("NoClip disabled");
}
}
private void FlyMovement(PlayerController playerController)
{
//IL_001f: 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_00e3: 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_00f4: 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_0104: Unknown result type (might be due to invalid IL or missing references)
//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_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_0114: 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_0122: 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_0130: 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)
Rigidbody component = ((Component)playerController).GetComponent<Rigidbody>();
if ((Object)(object)component != (Object)null)
{
component.useGravity = false;
component.velocity = Vector3.zero;
}
float axis = Input.GetAxis("Horizontal");
float axis2 = Input.GetAxis("Vertical");
float num = 0f;
if (Input.GetKey((KeyCode)32))
{
num = 1f;
}
if (Input.GetKey((KeyCode)306))
{
num = -1f;
}
bool flag = axis != 0f || axis2 != 0f || num != 0f;
float num2 = flySpeed;
num2 = ((!Input.GetKey((KeyCode)304) || !Input.GetKey((KeyCode)119)) ? flySpeed : (num2 + 15f));
Vector3 val = (flag ? (((Component)playerController).transform.right * axis + ((Component)playerController).transform.forward * axis2 + ((Component)playerController).transform.up * num) : Vector3.zero);
Transform transform = ((Component)playerController).transform;
transform.position += val * num2 * Time.deltaTime;
}
}