using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using CanisBase;
using CanisRufus;
using GorillaNetworking;
using MelonLoader;
using Photon.Pun;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: MelonInfo(typeof(CanisBaseMain), "CanisBase", "1.0.3", "xvfraudd", null)]
[assembly: MelonGame("Another Axiom", "Gorilla Tag")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("CanisBase")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("CanisBase")]
[assembly: AssemblyTitle("CanisBase")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace CanisBase;
public class CBConst
{
public static readonly string room_text = "PRESS ENTER TO JOIN OR CREATE A CUSTOM ROOM WITH THE ENTERED CODE. PRESS OPTION 1 TO DISCONNECT FROM THE CURRENT ROOM.\n\nCURRENT ROOM: [$$]\n\n[$$$]: [$$$$]\n\nROOM TO JOIN: [$]";
public static readonly string name_text = "PRESS ENTER TO CHANGE YOUR NAME TO THE ENTERED NEW NAME.\n\nCURRENT NAME: [$$]\n\n NEW NAME: [$]";
public static readonly string canis_text = "THANK YOU FOR USING CANISRUFUS!\n\nCANISRUFUS: [$]\n CANISBASE: [$$]\n\nMADE BY XVFRAUDD";
public static readonly string return_text = "<color=red>IF YOU CONTINUE, YOU WILL EXIT CANISRUFUS AND RETURN TO GORILLA OS!</color>\nYOU CAN RETURN TO CANISRUFUS AT ANY TIME BY PRESSING <color=yellow>OPTION 3</color> IN THE <color=yellow>ROOM</color> TAB.\n\nTO EXIT CANISRUFUS, TYPE \"RETURN\" AND PRESS ENTER.\n\nINPUT: [$]";
}
public class CanisBaseMain : MelonMod
{
public static string version;
public override void OnInitializeMelon()
{
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Expected O, but got Unknown
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_006f: Expected O, but got Unknown
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Expected O, but got Unknown
//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Expected O, but got Unknown
version = "1.0.3 - MELON";
CanisRufusPC.instance.AddFuncItem(new FuncItem("ROOM", (Func<string>)RoomCB.TextAction, (Action<string>)RoomCB.KeyAction, (Action)null));
CanisRufusPC.instance.AddFuncItem(new FuncItem("NAME", (Func<string>)NameCB.TextAction, (Action<string>)NameCB.KeyAction, (Action)NameCB.InitAction));
CanisRufusPC.instance.AddFuncItem(new FuncItem("CANIS", (Func<string>)CanisCB.TextAction, (Action<string>)null, (Action)null));
CanisRufusPC.instance.AddFuncItem(new FuncItem("RETURN", (Func<string>)ReturnCB.TextAction, (Action<string>)ReturnCB.KeyAction, (Action)null));
}
public static string CapStr(string str, int max)
{
if (str.Length > max)
{
return str[..max];
}
return str;
}
public static string ReplaceText(string text, List<string> reps)
{
if (reps == null)
{
return text;
}
int num = 1;
foreach (string rep in reps)
{
text = ((!(rep == "[$]")) ? text.Replace("[" + new string('$', num) + "]", rep) : text.Replace("[" + new string('$', num) + "]", CanisRufusPC.instance.full_input));
num++;
}
return text;
}
}
public class RoomCB
{
public static string TextAction()
{
List<string> reps = new List<string>
{
"[$]",
(PhotonNetwork.CurrentRoom != null) ? PhotonNetwork.CurrentRoom.Name : "-NOT IN ROOM-",
(PhotonNetwork.CurrentRoom != null) ? "PLAYERS IN ROOM" : "PLAYERS ONLINE",
(PhotonNetwork.CurrentRoom != null) ? PhotonNetwork.CurrentRoom.PlayerCount.ToString() : HowManyMonke.ThisMany.ToString()
};
return CanisBaseMain.ReplaceText(CBConst.room_text, reps);
}
public static void KeyAction(string key)
{
if (key == "option1")
{
PhotonNetwork.Disconnect();
}
else if (key == "enter" && !string.IsNullOrEmpty(CanisRufusPC.instance.full_input))
{
((GorillaComputer)GorillaComputer.instance).networkController.AttemptToJoinSpecificRoom(CanisRufusPC.instance.full_input, (JoinType)0);
}
CanisRufusPC.instance.full_input = CanisBaseMain.CapStr(CanisRufusPC.instance.full_input, 10);
}
}
public class NameCB
{
public static string TextAction()
{
List<string> reps = new List<string>
{
"[$]",
((GorillaComputer)GorillaComputer.instance).savedName
};
return CanisBaseMain.ReplaceText(CBConst.name_text, reps);
}
public static void InitAction()
{
CanisRufusPC.instance.full_input = ((GorillaComputer)GorillaComputer.instance).savedName;
}
public static void KeyAction(string key)
{
if (key == "enter" && !string.IsNullOrEmpty(CanisRufusPC.instance.full_input))
{
ChangeName(CanisRufusPC.instance.full_input);
}
CanisRufusPC.instance.full_input = CanisBaseMain.CapStr(CanisRufusPC.instance.full_input, 12);
}
private static void ChangeName(string currentName)
{
NetworkSystem.Instance.SetMyNickName(currentName);
CustomMapsTerminal.RequestDriverNickNameRefresh();
((GorillaComputer)GorillaComputer.instance).SetLocalNameTagText(currentName);
((GorillaComputer)GorillaComputer.instance).savedName = currentName;
PlayerPrefs.SetString("playerName", currentName);
PlayerPrefs.Save();
if (NetworkSystem.Instance.InRoom)
{
float @float = PlayerPrefs.GetFloat("redValue", 0f);
float float2 = PlayerPrefs.GetFloat("greenValue", 0f);
float float3 = PlayerPrefs.GetFloat("blueValue", 0f);
GorillaTagger.Instance.myVRRig.SendRPC("RPC_InitializeNoobMaterial", (RpcTarget)0, new object[3] { @float, float2, float3 });
}
}
}
public class CanisCB
{
public static string TextAction()
{
List<string> reps = new List<string>
{
CanisRufusPC.version,
CanisBaseMain.version
};
return CanisBaseMain.ReplaceText(CBConst.canis_text, reps);
}
}
public class ReturnCB
{
public static void KeyAction(string key)
{
if (key == "enter" && CanisRufusPC.instance.full_input == "RETURN")
{
CanisRufusPC.instance.ReturnControlToGorillaOS();
}
}
public static string TextAction()
{
List<string> reps = new List<string> { "[$]" };
return CanisBaseMain.ReplaceText(CBConst.return_text, reps);
}
}
internal class PluginInfo
{
public const string GUID = "loan.fraudulent.CanisBaseBIE";
public const string Author = "xvfraudd";
public const string Name = "CanisBase";
public const string Version = "1.0.3";
}