using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text.RegularExpressions;
using Agents;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Unity.IL2CPP;
using BepInEx.Unity.IL2CPP.Utils.Collections;
using GTFO.API;
using GTFO.API.Utilities;
using HarmonyLib;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using LevelGeneration;
using Microsoft.CodeAnalysis;
using Player;
using SNetwork;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("RainbowGuns")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("RainbowGuns")]
[assembly: AssemblyTitle("RainbowGuns")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
}
namespace RainbowGuns
{
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("RainbowGuns", "RainbowGuns", "0.0.9")]
public class Plugin : BasePlugin
{
public struct RainbowNetInfo
{
public int Name;
public int R;
public int G;
public int B;
public int A;
public static string NetworkIdentity => "RainbowNetInfo";
public RainbowNetInfo(int name, int r, int g, int b, int a)
{
this = default(RainbowNetInfo);
Name = name;
R = r;
G = g;
B = b;
A = a;
Debug.Log(Object.op_Implicit($"RainbowGuns - sent a rainbow love package over intternet {name} {r} {g} {b} {a}"));
}
}
public struct RainbowInfo
{
public int Name;
public int R;
public int G;
public int B;
public int A;
public RainbowInfo(int name, int r, int g, int b, int a)
{
this = default(RainbowInfo);
Name = name;
R = r;
G = g;
B = b;
A = a;
}
public RainbowInfo(RainbowNetInfo network)
{
this = default(RainbowInfo);
Name = network.Name;
R = network.R;
G = network.G;
B = network.B;
A = network.A;
}
}
public class RainbowGuns : MonoBehaviour
{
public static void Send()
{
CoroutineManager.StartCoroutine(CollectionExtensions.WrapToIl2Cpp(RainbowSend()), (Action)null);
}
public static void Begin()
{
ledger.Clear();
CoroutineManager.StartCoroutine(CollectionExtensions.WrapToIl2Cpp(RainbowWatcher()), (Action)null);
}
public static void OnFileChanged(LiveEditEventArgs e)
{
//IL_0204: Unknown result type (might be due to invalid IL or missing references)
//IL_025b: Unknown result type (might be due to invalid IL or missing references)
//IL_0265: Expected O, but got Unknown
//IL_032c: Unknown result type (might be due to invalid IL or missing references)
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
//IL_03eb: Unknown result type (might be due to invalid IL or missing references)
//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
Debug.Log(Object.op_Implicit("RainbowGuns - configuration changed, reloading.."));
config.Reload();
Dictionary<int, string> obj = new Dictionary<int, string>
{
[1] = _cfgFront.Value,
[2] = _cfgMag.Value,
[3] = _cfgReceiver.Value,
[4] = _cfgSight.Value,
[5] = _cfgStock.Value,
[6] = _cfgGrip.Value,
[7] = _cfgHandle.Value,
[8] = _cfgNeck.Value,
[9] = _cfgPommel.Value,
[10] = _cfgHead.Value,
[11] = _cfgIron.Value,
[12] = _cfgRetA.Value,
[13] = _cfgRetB.Value,
[14] = _cfgRetC.Value
};
Dictionary<int, Color> dictionary = new Dictionary<int, Color>();
foreach (KeyValuePair<int, string> item in obj)
{
string[] array = item.Value.Split(",");
float num = 0f;
float num2 = 0f;
float num3 = 0f;
float num4 = 0f;
int.TryParse(array[0], out var result);
int.TryParse(array[1], out var result2);
int.TryParse(array[2], out var result3);
int.TryParse(array[3], out var result4);
if (result > 0)
{
num = (float)result / 255f;
}
if (result2 > 0)
{
num2 = (float)result2 / 255f;
}
if (result3 > 0)
{
num3 = (float)result3 / 255f;
}
if (result4 > 0)
{
num4 = (float)result4 / 255f;
}
int[] value = new int[4] { result, result2, result3, result4 };
raakaList[item.Key] = value;
dictionary[item.Key] = new Color(num, num2, num3, num4);
}
for (int i = 1; i < 5; i++)
{
for (int j = 1; j < 15; j++)
{
rbTextures[i][j].Add(new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height));
rbTextures[i][j].RemoveAt(0);
}
}
for (int k = 0; k < ((Texture)Texture2D.redTexture).height; k++)
{
for (int l = 0; l < ((Texture)Texture2D.redTexture).width; l++)
{
for (int m = 1; m < 5; m++)
{
for (int n = 1; n < 15; n++)
{
rbTextures[m][n].Last().SetPixel(l, k, dictionary[n]);
}
}
}
}
for (int num5 = 1; num5 < 5; num5++)
{
for (int num6 = 1; num6 < 15; num6++)
{
colorList[num5][num6] = dictionary[num6];
rbTextures[num5][num6].Last().Apply();
}
}
SendNow = true;
int key = PlayerManager.GetLocalPlayerAgent().PlayerSlotIndex + 1;
for (int num7 = 0; num7 < 5; num7++)
{
pyssyt[key][num7] = true;
}
PlayerAgent localPlayerAgent = PlayerManager.GetLocalPlayerAgent();
InventorySlot wieldedSlot = localPlayerAgent.Inventory.WieldedSlot;
localPlayerAgent.Sync.WantsToWieldSlot((InventorySlot)1, false);
localPlayerAgent.Sync.WantsToWieldSlot((InventorySlot)2, false);
localPlayerAgent.Sync.WantsToWieldSlot((InventorySlot)3, false);
localPlayerAgent.Sync.WantsToWieldSlot((InventorySlot)10, false);
localPlayerAgent.Sync.WantsToWieldSlot(wieldedSlot, false);
Enumerator<PlayerAgent> enumerator2 = PlayerManager.PlayerAgentsInLevel.GetEnumerator();
while (enumerator2.MoveNext())
{
PlayerAgent current2 = enumerator2.Current;
key = current2.PlayerSlotIndex + 1;
for (int num8 = 1; num8 < 5; num8++)
{
pyssyt[key][num8] = true;
}
if (SNet.IsMaster && ((Agent)current2).m_replicator.OwningPlayer.IsBot)
{
current2.Sync.WantsToWieldSlot((InventorySlot)1, false);
current2.Sync.WantsToWieldSlot((InventorySlot)2, false);
current2.Sync.WantsToWieldSlot((InventorySlot)3, false);
current2.Sync.WantsToWieldSlot((InventorySlot)10, false);
}
}
}
public static IEnumerator RainbowSend()
{
int secs = 0;
while (true)
{
if (secs > 299 || SendNow)
{
SendNow = false;
secs = 0;
for (int i = 1; i < 12; i++)
{
NetworkAPI.InvokeEvent<RainbowNetInfo>("RainbowNetInfo", new RainbowNetInfo(i, raakaList[i][0], raakaList[i][1], raakaList[i][2], raakaList[i][3]), (SNet_ChannelType)2);
}
}
secs++;
yield return (object)new WaitForSeconds(1f);
}
}
public static void ReceiveRainbowNetInfo(ulong sender, RainbowNetInfo netInfo)
{
//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
//IL_01e3: Expected O, but got Unknown
//IL_0228: Unknown result type (might be due to invalid IL or missing references)
Debug.Log(Object.op_Implicit("received data from sender " + sender + ": name:" + netInfo.Name + " r:" + netInfo.R + " g:" + netInfo.G + " b:" + netInfo.B + " a:" + netInfo.A));
Enumerator<PlayerAgent> enumerator = PlayerManager.PlayerAgentsInLevel.GetEnumerator();
Color val = default(Color);
while (enumerator.MoveNext())
{
PlayerAgent current = enumerator.Current;
if (current.Sync.Replicator.OwningPlayer.Lookup != sender)
{
continue;
}
Debug.Log(Object.op_Implicit($"RainbowGuns - player {current.PlayerName} is sender {current.Sync.Replicator.OwningPlayer.Lookup} in slot {current.PlayerSlotIndex}"));
int key = current.PlayerSlotIndex + 1;
float num = (float)netInfo.R / 255f;
float num2 = (float)netInfo.G / 255f;
float num3 = (float)netInfo.B / 255f;
float num4 = (float)netInfo.A / 255f;
((Color)(ref val))..ctor(num, num2, num3, num4);
colorList[key][netInfo.Name] = val;
rbTextures[key][netInfo.Name].Add(new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height));
rbTextures[key][netInfo.Name].RemoveAt(0);
for (int i = 0; i < ((Texture)Texture2D.redTexture).height; i++)
{
for (int j = 0; j < ((Texture)Texture2D.redTexture).width; j++)
{
rbTextures[key][netInfo.Name].Last().SetPixel(j, i, val);
}
}
rbTextures[key][netInfo.Name].Last().Apply();
for (int k = 1; k < 5; k++)
{
pyssyt[key][k] = true;
}
}
}
public static IEnumerator RainbowWatcher()
{
Debug.Log(Object.op_Implicit("RainbowGuns - thirdperson sentry coroutine running.."));
yield return (object)new WaitForSeconds(0.4f);
PlayerManager.GetLocalPlayerAgent().Sync.WantsToWieldSlot((InventorySlot)1, false);
PlayerManager.GetLocalPlayerAgent().Sync.WantsToWieldSlot((InventorySlot)2, false);
PlayerManager.GetLocalPlayerAgent().Sync.WantsToWieldSlot((InventorySlot)3, false);
PlayerManager.GetLocalPlayerAgent().Sync.WantsToWieldSlot((InventorySlot)10, false);
Enumerator<PlayerAgent> enumerator = PlayerManager.PlayerAgentsInLevel.GetEnumerator();
while (enumerator.MoveNext())
{
PlayerAgent current = enumerator.Current;
if (SNet.IsMaster && ((Agent)current).m_replicator.OwningPlayer.IsBot)
{
current.Sync.WantsToWieldSlot((InventorySlot)1, false);
current.Sync.WantsToWieldSlot((InventorySlot)2, false);
current.Sync.WantsToWieldSlot((InventorySlot)3, false);
current.Sync.WantsToWieldSlot((InventorySlot)10, false);
}
}
BackpackItem val = default(BackpackItem);
while (true)
{
bool flag = false;
enumerator = PlayerManager.PlayerAgentsInLevel.GetEnumerator();
while (enumerator.MoveNext())
{
PlayerAgent current2 = enumerator.Current;
_ = current2.PlayerSlotIndex;
PlayerBackpackManager.GetBackpack(((Agent)current2).m_replicator.m_owningPlayer).TryGetBackpackItem((InventorySlot)3, ref val);
if (val != null)
{
if ((int)val.Status == 0 && ledger.Contains(current2.PlayerName))
{
ledger.Remove(current2.PlayerName);
}
if ((int)val.Status == 1 && !ledger.Contains(current2.PlayerName))
{
ledger.Add(current2.PlayerName);
flag = true;
}
}
}
if (flag)
{
Debug.Log(Object.op_Implicit("RainbowGuns - hikst! (finding deployed sentryguns to re-texture)"));
foreach (SentryGunInstance item in Object.FindObjectsOfType<SentryGunInstance>())
{
PlayerAgent owner = ((Item)item).Owner;
int key = owner.PlayerSlotIndex + 1;
foreach (Transform componentsInChild in ((Component)item).GetComponentsInChildren<Transform>())
{
string[] array = new string[13]
{
"Front", "Mag", "Receiver", "Sight", "Stock", "Grip", "Handle", "Neck", "Pommel", "Head",
"Anim", "Turret", "Target"
};
for (int i = 0; i < array.Length; i++)
{
string text = array[i];
if (!((Object)componentsInChild).name.Contains(text, StringComparison.OrdinalIgnoreCase))
{
continue;
}
bool flag2 = false;
Texture2D val2 = new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height);
_ = Color.black;
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "glass", RegexOptions.IgnoreCase).Success)
{
flag2 = true;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "holo", RegexOptions.IgnoreCase).Success)
{
flag2 = true;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "align", RegexOptions.IgnoreCase).Success)
{
flag2 = true;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "_sight$", RegexOptions.IgnoreCase).Success)
{
flag2 = true;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "_picture", RegexOptions.IgnoreCase).Success)
{
flag2 = true;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^front", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][1].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "mag", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][2].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^receiver", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][3].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "anim", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][3].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^turret", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][3].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^sight", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][4].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "light", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][4].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "target", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][4].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^stock", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][5].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^grip", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][6].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "handle", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][7].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^neck", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][8].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^pommel", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][9].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^head", RegexOptions.IgnoreCase).Success)
{
val2 = rbTextures[owner.PlayerSlotIndex + 1][10].Last();
}
string text2 = text;
int key2 = i + 1;
if (text == "Anim")
{
key2 = 3;
}
if (text == "Turret")
{
key2 = 3;
}
if (text == "Target")
{
key2 = 6;
}
_ = "slot" + (((Item)item).Owner.PlayerSlotIndex + 1) + text2;
Color val3 = colorList[key][key2];
if (val3.r + val3.g + val3.b + val3.a == 0f)
{
Debug.Log(Object.op_Implicit("RainbowGuns - " + ((Object)componentsInChild).name + " not getting textures due to 0,0,0,0"));
flag2 = true;
}
if (flag2)
{
continue;
}
foreach (MeshRenderer component in ((Component)componentsInChild).gameObject.GetComponents<MeshRenderer>())
{
((Renderer)component).material.SetTexture("_MainTex", (Texture)(object)val2);
((Renderer)component).material.color = val3;
foreach (Material item2 in (Il2CppArrayBase<Material>)(object)((Renderer)component).materials)
{
item2.SetTexture("_MainTex", (Texture)(object)val2);
item2.color = val3;
}
}
}
}
}
}
yield return (object)new WaitForSeconds(1f);
}
}
public static void ColorMe(ItemEquippable __instance)
{
//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_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Invalid comparison between Unknown and I4
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Invalid comparison between Unknown and I4
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Invalid comparison between Unknown and I4
//IL_0045: Invalid comparison between Unknown and I4
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
//IL_016b: Expected O, but got Unknown
//IL_016b: Unknown result type (might be due to invalid IL or missing references)
//IL_0170: Unknown result type (might be due to invalid IL or missing references)
//IL_0657: Unknown result type (might be due to invalid IL or missing references)
//IL_065c: Unknown result type (might be due to invalid IL or missing references)
//IL_065e: Unknown result type (might be due to invalid IL or missing references)
//IL_0665: Unknown result type (might be due to invalid IL or missing references)
//IL_066d: Unknown result type (might be due to invalid IL or missing references)
//IL_0675: Unknown result type (might be due to invalid IL or missing references)
//IL_06d3: Unknown result type (might be due to invalid IL or missing references)
//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
//IL_06ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0840: Unknown result type (might be due to invalid IL or missing references)
//IL_084e: Unknown result type (might be due to invalid IL or missing references)
//IL_085d: Unknown result type (might be due to invalid IL or missing references)
//IL_086c: Unknown result type (might be due to invalid IL or missing references)
//IL_08a5: Unknown result type (might be due to invalid IL or missing references)
//IL_0743: Unknown result type (might be due to invalid IL or missing references)
//IL_0751: Unknown result type (might be due to invalid IL or missing references)
//IL_0760: Unknown result type (might be due to invalid IL or missing references)
//IL_076f: Unknown result type (might be due to invalid IL or missing references)
//IL_0735: Unknown result type (might be due to invalid IL or missing references)
//IL_0990: Unknown result type (might be due to invalid IL or missing references)
//IL_099e: Unknown result type (might be due to invalid IL or missing references)
//IL_09ad: Unknown result type (might be due to invalid IL or missing references)
//IL_09bc: Unknown result type (might be due to invalid IL or missing references)
//IL_08e9: 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_07c1: Unknown result type (might be due to invalid IL or missing references)
//IL_07d0: 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_07a5: Unknown result type (might be due to invalid IL or missing references)
//IL_0815: Unknown result type (might be due to invalid IL or missing references)
//IL_09f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0a37: Unknown result type (might be due to invalid IL or missing references)
Debug.Log(Object.op_Implicit("RainbowGuns - weapon " + ((Object)((Component)__instance).gameObject).name + " gets a proud paint-job!"));
InventorySlot slot = ((Item)__instance).pItemData.slot;
int key = 0;
if ((int)slot == 10)
{
key = 1;
}
if ((int)slot == 1)
{
key = 2;
}
if ((int)slot == 2)
{
key = 3;
}
if ((int)slot == 3)
{
key = 4;
}
pyssyt[((Item)__instance).Owner.PlayerSlotIndex + 1][key] = false;
PlayerAgent owner = ((Item)__instance).Owner;
int key2 = owner.PlayerSlotIndex + 1;
foreach (Transform componentsInChild in ((Component)__instance).GetComponentsInChildren<Transform>())
{
string[] array = new string[14]
{
"Front", "Mag", "Receiver", "Sight", "Stock", "Grip", "Handle", "Neck", "Pommel", "Head",
"Anim", "Turret", "Target", "Holo"
};
for (int i = 0; i < array.Length; i++)
{
string text = array[i];
if (!((Object)componentsInChild).name.Contains(text, StringComparison.OrdinalIgnoreCase))
{
continue;
}
foreach (MeshRenderer component in ((Component)componentsInChild).GetComponents<MeshRenderer>())
{
bool flag = false;
Texture2D val = new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height);
Color black = Color.black;
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "align", RegexOptions.IgnoreCase).Success)
{
flag = true;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "_sight", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][11].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^front", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][1].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "mag", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][2].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^receiver", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][3].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "anim", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][3].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^turret", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][3].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^sight", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][4].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "light", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][4].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "target", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][4].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^stock", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][5].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^grip", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][6].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "handle", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][7].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^neck", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][8].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^pommel", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][9].Last();
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "^head", RegexOptions.IgnoreCase).Success)
{
val = rbTextures[owner.PlayerSlotIndex + 1][10].Last();
}
int num = i + 1;
if (text == "Anim")
{
num = 3;
}
if (text == "Turret")
{
num = 3;
}
if (text == "Target")
{
num = 6;
}
if (text == "holo")
{
num = 11;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "iron", RegexOptions.IgnoreCase).Success)
{
num = 11;
}
if (Regex.Match(((Object)((Renderer)component).material).name.ToLower(), "pistol_sight", RegexOptions.IgnoreCase).Success)
{
num = 11;
}
if (Regex.Match(((Object)((Renderer)component).material).name.ToLower(), "emissive", RegexOptions.IgnoreCase).Success)
{
num = 11;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "glass", RegexOptions.IgnoreCase).Success)
{
num = 12;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "holo", RegexOptions.IgnoreCase).Success)
{
num = 12;
}
if (Regex.Match(((Object)componentsInChild).name.ToLower(), "_picture", RegexOptions.IgnoreCase).Success)
{
num = 12;
}
black = colorList[key2][num];
float num2 = black.r + black.g + black.b + black.a;
if (num2 == 0f)
{
Debug.Log(Object.op_Implicit("RainbowGuns - part " + ((Object)componentsInChild).name + " not getting textures due to 0,0,0,0"));
flag = true;
}
if (flag)
{
continue;
}
if (num > 11)
{
Dictionary<int, Color> dictionary = colorList[owner.PlayerSlotIndex + 1];
num2 = dictionary[12].r + dictionary[12].g + dictionary[12].b + dictionary[12].a;
if (num2 > 0f)
{
((Renderer)component).material.SetColor("_ReticuleColorA", colorList[owner.PlayerSlotIndex + 1][12]);
}
num2 = dictionary[13].r + dictionary[13].g + dictionary[13].b + dictionary[13].a;
if (num2 > 0f)
{
((Renderer)component).material.SetColor("_ReticuleColorB", colorList[owner.PlayerSlotIndex + 1][13]);
}
num2 = dictionary[14].r + dictionary[14].g + dictionary[14].b + dictionary[14].a;
if (num2 > 0f)
{
((Renderer)component).material.SetColor("_ReticuleColorC", colorList[owner.PlayerSlotIndex + 1][14]);
}
}
if (num == 11)
{
Dictionary<int, Color> dictionary2 = colorList[owner.PlayerSlotIndex + 1];
num2 = dictionary2[11].r + dictionary2[11].g + dictionary2[11].b + dictionary2[11].a;
Debug.Log(Object.op_Implicit($"RainbowGuns - iron colors {colorList[owner.PlayerSlotIndex + 1][11]}"));
if (num2 > 0f)
{
((Renderer)component).material.SetColor("_EmissiveColor", colorList[owner.PlayerSlotIndex + 1][11]);
}
if (num2 > 0f)
{
((Renderer)component).material.SetTexture("_MainTex", (Texture)(object)Texture2D.grayTexture);
}
if (num2 > 0f)
{
((Renderer)component).material.SetTexture("_BumpMap", (Texture)(object)Texture2D.grayTexture);
}
if (num2 > 0f)
{
((Renderer)component).material.SetTexture("_MetallicGlossMap", (Texture)(object)Texture2D.grayTexture);
}
if (num2 > 0f)
{
((Renderer)component).material.SetTexture("_EmissiveMap", (Texture)(object)Texture2D.grayTexture);
}
}
if (num >= 11)
{
continue;
}
Dictionary<int, Color> dictionary3 = colorList[owner.PlayerSlotIndex + 1];
num2 = dictionary3[num].r + dictionary3[num].g + dictionary3[num].b + dictionary3[num].a;
if (num2 > 0f)
{
((Renderer)component).material.SetTexture("_MainTex", (Texture)(object)val);
}
if (num2 > 0f)
{
((Renderer)component).material.color = black;
}
foreach (Material item in (Il2CppArrayBase<Material>)(object)((Renderer)component).materials)
{
if (num2 > 0f)
{
item.SetTexture("_MainTex", (Texture)(object)val);
}
if (num2 > 0f)
{
item.color = black;
}
}
}
}
}
}
}
[HarmonyPatch]
private class RainbowPatch1
{
[HarmonyPatch(typeof(ItemEquippable), "OnWield")]
[HarmonyPrefix]
private static bool Prefix(ItemEquippable __instance)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: 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_0010: Invalid comparison between Unknown and I4
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Invalid comparison between Unknown and I4
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Invalid comparison between Unknown and I4
//IL_0021: Invalid comparison between Unknown and I4
InventorySlot slot = ((Item)__instance).pItemData.slot;
int num = 0;
if ((int)slot == 10)
{
num = 1;
}
if ((int)slot == 1)
{
num = 2;
}
if ((int)slot == 2)
{
num = 3;
}
if ((int)slot == 3)
{
num = 4;
}
if (num > 0 && !pyssyt[((Item)__instance).Owner.PlayerSlotIndex + 1][num])
{
return true;
}
if (num == 0)
{
return true;
}
RainbowGuns.ColorMe(__instance);
return true;
}
}
public static Dictionary<int, Dictionary<int, bool>> pyssyt = new Dictionary<int, Dictionary<int, bool>>
{
[1] = new Dictionary<int, bool>
{
[1] = true,
[2] = true,
[3] = true,
[4] = true
},
[2] = new Dictionary<int, bool>
{
[1] = true,
[2] = true,
[3] = true,
[4] = true
},
[3] = new Dictionary<int, bool>
{
[1] = true,
[2] = true,
[3] = true,
[4] = true
},
[4] = new Dictionary<int, bool>
{
[1] = true,
[2] = true,
[3] = true,
[4] = true
}
};
public static bool SendNow = true;
public static string CONFIG_PATH = Path.Combine(Paths.ConfigPath, "RainbowGuns.cfg");
public static string PLUGIN_PATH = Paths.PluginPath;
public static ConfigFile config = new ConfigFile(CONFIG_PATH, true);
public static ConfigEntry<string> _cfgFront;
public static ConfigEntry<string> _cfgMag;
public static ConfigEntry<string> _cfgReceiver;
public static ConfigEntry<string> _cfgSight;
public static ConfigEntry<string> _cfgStock;
public static ConfigEntry<string> _cfgGrip;
public static ConfigEntry<string> _cfgHandle;
public static ConfigEntry<string> _cfgNeck;
public static ConfigEntry<string> _cfgPommel;
public static ConfigEntry<string> _cfgHead;
public static ConfigEntry<string> _cfgIron;
public static ConfigEntry<string> _cfgRetA;
public static ConfigEntry<string> _cfgRetB;
public static ConfigEntry<string> _cfgRetC;
public static Dictionary<int, Dictionary<int, List<Texture2D>>> rbTextures = new Dictionary<int, Dictionary<int, List<Texture2D>>>
{
[1] = new Dictionary<int, List<Texture2D>>
{
[1] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[2] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[3] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[4] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[5] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[6] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[7] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[8] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[9] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[10] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[11] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[12] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[13] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[14] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
}
},
[2] = new Dictionary<int, List<Texture2D>>
{
[1] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[2] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[3] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[4] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[5] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[6] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[7] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[8] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[9] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[10] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[11] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[12] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[13] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[14] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
}
},
[3] = new Dictionary<int, List<Texture2D>>
{
[1] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[2] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[3] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[4] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[5] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[6] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[7] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[8] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[9] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[10] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[11] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[12] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[13] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[14] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
}
},
[4] = new Dictionary<int, List<Texture2D>>
{
[1] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[2] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[3] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[4] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[5] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[6] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[7] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[8] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[9] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[10] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[11] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[12] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[13] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
},
[14] = new List<Texture2D>
{
new Texture2D(((Texture)Texture2D.redTexture).width, ((Texture)Texture2D.redTexture).height)
}
}
};
private static int[] tempraw = new int[4];
public static Dictionary<int, int[]> raakaList = new Dictionary<int, int[]> { [1] = tempraw };
public static Dictionary<int, Dictionary<int, Color>> colorList = new Dictionary<int, Dictionary<int, Color>>
{
[1] = new Dictionary<int, Color> { [1] = Color.black },
[2] = new Dictionary<int, Color> { [1] = Color.black },
[3] = new Dictionary<int, Color> { [1] = Color.black },
[4] = new Dictionary<int, Color> { [1] = Color.black }
};
public static List<string> ledger = new List<string>();
public override void Load()
{
//IL_0005: 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_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Expected O, but got Unknown
//IL_0089: Expected O, but got Unknown
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Expected O, but got Unknown
//IL_00bc: Expected O, but got Unknown
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ef: Expected O, but got Unknown
//IL_00ef: Expected O, but got Unknown
//IL_0103: Unknown result type (might be due to invalid IL or missing references)
//IL_0118: Unknown result type (might be due to invalid IL or missing references)
//IL_0122: Expected O, but got Unknown
//IL_0122: Expected O, but got Unknown
//IL_0136: Unknown result type (might be due to invalid IL or missing references)
//IL_014b: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Expected O, but got Unknown
//IL_0155: Expected O, but got Unknown
//IL_0169: Unknown result type (might be due to invalid IL or missing references)
//IL_017e: Unknown result type (might be due to invalid IL or missing references)
//IL_0188: Expected O, but got Unknown
//IL_0188: Expected O, but got Unknown
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
//IL_01bb: Expected O, but got Unknown
//IL_01bb: Expected O, but got Unknown
//IL_01cf: 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_01ee: Expected O, but got Unknown
//IL_01ee: Expected O, but got Unknown
//IL_0202: Unknown result type (might be due to invalid IL or missing references)
//IL_0217: Unknown result type (might be due to invalid IL or missing references)
//IL_0221: Expected O, but got Unknown
//IL_0221: Expected O, but got Unknown
//IL_0235: 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_0254: Expected O, but got Unknown
//IL_0254: Expected O, but got Unknown
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_027d: Unknown result type (might be due to invalid IL or missing references)
//IL_0287: Expected O, but got Unknown
//IL_0287: Expected O, but got Unknown
//IL_029b: 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)
//IL_02ba: Expected O, but got Unknown
//IL_02ba: Expected O, but got Unknown
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
//IL_02ed: Expected O, but got Unknown
//IL_02ed: Expected O, but got Unknown
//IL_0301: Unknown result type (might be due to invalid IL or missing references)
//IL_0316: Unknown result type (might be due to invalid IL or missing references)
//IL_0320: Expected O, but got Unknown
//IL_0320: Expected O, but got Unknown
//IL_0347: Unknown result type (might be due to invalid IL or missing references)
//IL_0351: Expected O, but got Unknown
//IL_0538: Unknown result type (might be due to invalid IL or missing references)
//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0591: Unknown result type (might be due to invalid IL or missing references)
new Harmony("RainbowGuns").PatchAll();
Debug.Log(Object.op_Implicit("RainbowGuns - i bring you love"));
LG_Factory.OnFactoryBuildStart += Action.op_Implicit((Action)RainbowGuns.Send);
EventAPI.OnExpeditionStarted += RainbowGuns.Begin;
NetworkAPI.RegisterEvent<RainbowNetInfo>(RainbowNetInfo.NetworkIdentity, (Action<ulong, RainbowNetInfo>)RainbowGuns.ReceiveRainbowNetInfo);
_cfgFront = config.Bind<string>(new ConfigDefinition("General", "Front"), "0, 0, 0, 0", new ConfigDescription("Front color (unity Color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgMag = config.Bind<string>(new ConfigDefinition("General", "Mag"), "0, 0, 0, 0", new ConfigDescription("Mag color (unity Color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgReceiver = config.Bind<string>(new ConfigDefinition("General", "Receiver"), "0, 0, 0, 0", new ConfigDescription("Receiver color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgSight = config.Bind<string>(new ConfigDefinition("General", "Sight"), "0, 0, 0, 0", new ConfigDescription("Sight color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgStock = config.Bind<string>(new ConfigDefinition("General", "Stock"), "0, 0, 0, 0", new ConfigDescription("Stock color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgGrip = config.Bind<string>(new ConfigDefinition("General", "Grip"), "0, 0, 0, 0", new ConfigDescription("Grip color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgHandle = config.Bind<string>(new ConfigDefinition("General", "Handle"), "0, 0, 0, 0", new ConfigDescription("Melee Handle color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgNeck = config.Bind<string>(new ConfigDefinition("General", "Neck"), "0, 0, 0, 0", new ConfigDescription("Melee Neck color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgPommel = config.Bind<string>(new ConfigDefinition("General", "Pommel"), "0, 0, 0, 0", new ConfigDescription("Melee Pommel color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgHead = config.Bind<string>(new ConfigDefinition("General", "Head"), "0, 0, 0, 0", new ConfigDescription("Melee Head color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgIron = config.Bind<string>(new ConfigDefinition("General", "Iron"), "0, 0, 0, 0", new ConfigDescription("Iron Sights color (unity color r,g,b,a values 0-255 no decimals, WEIRD SHADER STUFF GOING ON, DIFF GUNS SHOW DIFF COLORS!)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgRetA = config.Bind<string>(new ConfigDefinition("General", "RetA"), "0, 0, 0, 0", new ConfigDescription("ADS sights Reticule A color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgRetB = config.Bind<string>(new ConfigDefinition("General", "RetB"), "0, 0, 0, 0", new ConfigDescription("ADS sights Reticule B color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
_cfgRetC = config.Bind<string>(new ConfigDefinition("General", "RetC"), "0, 0, 0, 0", new ConfigDescription("ADS sights Reticule C color (unity color r,g,b,a values 0-255 no decimals, default value is same as do not recolor)", (AcceptableValueBase)null, Array.Empty<object>()));
LiveEditListener obj = LiveEdit.CreateListener(Paths.ConfigPath, "RainbowGuns.cfg", false);
obj.FileChangedEventCooldown = 0.75f;
obj.FileChanged += new LiveEditEventHandler(RainbowGuns.OnFileChanged);
Dictionary<int, string> obj2 = new Dictionary<int, string>
{
[1] = _cfgFront.Value,
[2] = _cfgMag.Value,
[3] = _cfgReceiver.Value,
[4] = _cfgSight.Value,
[5] = _cfgStock.Value,
[6] = _cfgGrip.Value,
[7] = _cfgHandle.Value,
[8] = _cfgNeck.Value,
[9] = _cfgPommel.Value,
[10] = _cfgHead.Value,
[11] = _cfgIron.Value,
[12] = _cfgRetA.Value,
[13] = _cfgRetB.Value,
[14] = _cfgRetC.Value
};
Dictionary<int, Color> dictionary = new Dictionary<int, Color>();
foreach (KeyValuePair<int, string> item in obj2)
{
string[] array = item.Value.Split(",");
float num = 0f;
float num2 = 0f;
float num3 = 0f;
float num4 = 0f;
int.TryParse(array[0], out var result);
int.TryParse(array[1], out var result2);
int.TryParse(array[2], out var result3);
int.TryParse(array[3], out var result4);
if (result > 0)
{
num = (float)result / 255f;
}
if (result2 > 0)
{
num2 = (float)result2 / 255f;
}
if (result3 > 0)
{
num3 = (float)result3 / 255f;
}
if (result4 > 0)
{
num4 = (float)result4 / 255f;
}
int[] value = new int[4] { result, result2, result3, result4 };
raakaList[item.Key] = value;
dictionary[item.Key] = new Color(num, num2, num3, num4);
}
for (int i = 0; i < ((Texture)Texture2D.redTexture).height; i++)
{
for (int j = 0; j < ((Texture)Texture2D.redTexture).width; j++)
{
for (int k = 1; k < 5; k++)
{
for (int l = 1; l < 15; l++)
{
rbTextures[k][l].Last().SetPixel(j, i, dictionary[l]);
}
}
}
}
for (int m = 1; m < 5; m++)
{
for (int n = 1; n < 15; n++)
{
colorList[m][n] = dictionary[n];
rbTextures[m][n].Last().Apply();
}
}
}
}
[GeneratedCode("VersionInfoGenerator", "2.0.0+git50a4b1a-master")]
[CompilerGenerated]
internal static class VersionInfo
{
public const string RootNamespace = "RainbowGuns";
public const string Version = "1.0.0";
public const string VersionPrerelease = null;
public const string VersionMetadata = null;
public const string SemVer = "1.0.0";
public const string GitRevShort = null;
public const string GitRevLong = null;
public const string GitBranch = null;
public const string GitTag = null;
public const bool GitIsDirty = false;
}
}