using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Photon.Pun;
using UnityEngine;
using UnityEngine.Events;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("")]
[assembly: AssemblyCompany("Desay1")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+a4ea7e9e540851af274402bd8d70f7193a86f419")]
[assembly: AssemblyProduct("DesaValuables")]
[assembly: AssemblyTitle("DesaValuables")]
[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.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;
}
}
[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;
}
}
}
public class ElMonoTrampa : Trap
{
public UnityEvent gramophoneTimer;
[Space]
[Header("Sounds")]
public Sound GramophoneStart;
public Sound GramophoneEnd;
public Sound GramophoneMusic;
private bool StartSequence;
private bool endSequence;
private float StartSequenceProgress;
private float EndSequenceProgress;
private bool MusicStart;
public override void Start()
{
((Trap)this).Start();
}
public override void Update()
{
//IL_0066: 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)
((Trap)this).Update();
if (base.trapStart)
{
TrapActivate();
}
if (!base.trapActive)
{
return;
}
base.enemyInvestigate = true;
if (StartSequenceProgress == 0f && !StartSequence)
{
StartSequence = true;
GramophoneStart.Play(base.physGrabObject.centerPoint, 1f, 1f, 1f, 1f);
}
if (StartSequence)
{
StartSequenceProgress += Time.deltaTime;
if (StartSequenceProgress >= 1f)
{
StartSequence = false;
MusicStart = true;
}
}
if (MusicStart)
{
GramophoneMusic.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
MusicStart = false;
}
if (endSequence)
{
EndSequenceProgress += Time.deltaTime;
if (EndSequenceProgress >= 1f)
{
EndSequenceDone();
}
}
}
private void EndSequenceDone()
{
base.trapActive = false;
endSequence = false;
}
public void TrapStop()
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
endSequence = true;
GramophoneEnd.Play(base.physGrabObject.centerPoint, 1f, 1f, 1f, 1f);
}
public void TrapActivate()
{
if (!base.trapTriggered)
{
gramophoneTimer.Invoke();
base.trapActive = true;
base.trapTriggered = true;
}
}
}
public class GordoPocion : MonoBehaviour
{
private enum State
{
Idle,
Active
}
private PhysGrabObject physGrabObject;
private List<string> prefijo = new List<string>();
private List<string> comidas = new List<string>();
private float coolDownUntilNextSentence = 3f;
private State currentState;
private string playerName = "[playerName]";
private void Start()
{
physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
InitializeWordLists();
}
private void Update()
{
if (SemiFunc.IsMultiplayer())
{
switch (currentState)
{
case State.Idle:
StateIdle();
break;
case State.Active:
StateActive();
break;
}
}
}
private void StateIdle()
{
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_00c2: 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_01d6: 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)
if (coolDownUntilNextSentence > 0f && physGrabObject.grabbed)
{
coolDownUntilNextSentence -= Time.deltaTime;
}
else
{
if (!Object.op_Implicit((Object)(object)PhysGrabber.instance) || !PhysGrabber.instance.grabbed || !Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) || !((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject == (Object)(object)physGrabObject))
{
return;
}
bool flag = false;
if (!SemiFunc.IsMultiplayer())
{
playerName = "this potion";
flag = true;
}
else
{
List<PlayerAvatar> list = SemiFunc.PlayerGetAllPlayerAvatarWithinRange(10f, ((Component)PhysGrabber.instance).transform.position, false, default(LayerMask));
PlayerAvatar val = null;
float num = float.MaxValue;
foreach (PlayerAvatar item in list)
{
if (!((Object)(object)item == (Object)(object)PlayerAvatar.instance))
{
float num2 = Vector3.Distance(((Component)PhysGrabber.instance).transform.position, ((Component)item).transform.position);
if (num2 < num)
{
num = num2;
val = item;
}
}
}
flag = true;
if ((Object)(object)val != (Object)null)
{
playerName = val.playerName;
}
else
{
playerName = "this potion";
}
}
if (flag)
{
string text = GenerateGordoSentence();
currentState = State.Active;
Color val2 = default(Color);
((Color)(ref val2))..ctor(1f, 0.3f, 0.6f, 1f);
ChatManager.instance.PossessChatScheduleStart(10);
ChatManager.instance.PossessChat((PossessChatID)1, text, 1f, val2, 0f, false, 0, (UnityEvent)null);
ChatManager.instance.PossessChatScheduleEnd();
}
}
}
private void StateActive()
{
if (PhysGrabber.instance.grabbed && Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) && (Object)(object)PhysGrabber.instance.grabbedPhysGrabObject != (Object)(object)physGrabObject)
{
currentState = State.Idle;
coolDownUntilNextSentence = Random.Range(5f, 15f);
}
else if (!ChatManager.instance.StateIsPossessed())
{
currentState = State.Idle;
coolDownUntilNextSentence = Random.Range(5f, 15f);
}
}
private void InitializeWordLists()
{
prefijo.AddRange(new string[26]
{
"un acantilado", "un agujero negro", "un almacén", "una aspiradora", "un barril", "una bolsa", "una bóveda", "un camión volquete", "una cápsula", "un cementerio",
"un cajón", "un container", "un depósito", "una fosa", "una galaxia", "un genocida", "un holocausto", "una jaula", "una montaña fofa", "una nave",
"una purga", "un sepulcro", "un sicario", "un termotanque", "un vertedero", "una bola"
});
comidas.AddRange(new string[36]
{
"alfajores", "azúcares", "canelones", "carbohidratos", "choripanes", "chinchulines", "chocotortas", "chocolates", "churros", "empanadas",
"facturas", "flanes", "frituras", "grasas", "guisos", "hamburguesas", "harinas", "helados", "jamones", "locro",
"manteca", "mantecol", "mayonesa", "medialunas", "milanesas", "mondongo", "morcillas", "pastas", "pastafrolas", "piononos",
"pizzas", "quesos", "ravioles", "salchichas", "sánguches", "tortafritas"
});
}
private string GenerateGordoSentence()
{
if (playerName == "this potion")
{
return "Soy " + prefijo[Random.Range(0, prefijo.Count)] + " de " + comidas[Random.Range(0, comidas.Count)];
}
return playerName + " es " + prefijo[Random.Range(0, prefijo.Count)] + " de " + comidas[Random.Range(0, comidas.Count)];
}
}
namespace DesaValuables
{
public class BossCall : MonoBehaviour
{
private enum State
{
Idle,
Active
}
private PhysGrabObject physGrabObject;
private float coolDownUntilNextSentence = 3f;
private State currentState;
private void Start()
{
physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
}
private void Update()
{
switch (currentState)
{
case State.Idle:
StateIdle();
break;
case State.Active:
StateActive();
break;
}
}
private void StateIdle()
{
//IL_0163: Unknown result type (might be due to invalid IL or missing references)
//IL_0101: Unknown result type (might be due to invalid IL or missing references)
if (coolDownUntilNextSentence > 0f && physGrabObject.grabbed)
{
coolDownUntilNextSentence -= Time.deltaTime;
}
if (!Object.op_Implicit((Object)(object)PhysGrabber.instance) || !PhysGrabber.instance.grabbed || !Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) || !((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject == (Object)(object)physGrabObject))
{
return;
}
Color val = default(Color);
Color val2 = default(Color);
foreach (PhysGrabber item in physGrabObject.playerGrabbing)
{
if (item.playerAvatar.playerName == "Chapita")
{
string text = "TODOS POOTOS";
currentState = State.Active;
((Color)(ref val))..ctor(1f, 0f, 0f, 1f);
ChatManager.instance.PossessChatScheduleStart(10);
ChatManager.instance.PossessChat((PossessChatID)3, text, 1f, val, 0f, false, 0, (UnityEvent)null);
ChatManager.instance.PossessChatScheduleEnd();
}
else
{
string text2 = "SOY EL BOSS";
currentState = State.Active;
((Color)(ref val2))..ctor(0f, 1f, 0f, 1f);
ChatManager.instance.PossessChatScheduleStart(10);
ChatManager.instance.PossessChat((PossessChatID)1, text2, 1f, val2, 0f, false, 0, (UnityEvent)null);
ChatManager.instance.PossessChatScheduleEnd();
}
}
}
private void StateActive()
{
if (PhysGrabber.instance.grabbed && Object.op_Implicit((Object)(object)PhysGrabber.instance.grabbedPhysGrabObject) && (Object)(object)PhysGrabber.instance.grabbedPhysGrabObject != (Object)(object)physGrabObject)
{
currentState = State.Idle;
coolDownUntilNextSentence = Random.Range(5f, 15f);
}
else if (!ChatManager.instance.StateIsPossessed())
{
currentState = State.Idle;
coolDownUntilNextSentence = Random.Range(5f, 15f);
}
}
}
[BepInPlugin("Desay1.DesaValuables", "DesaValuables", "1.0")]
public class DesaValuables : BaseUnityPlugin
{
internal static DesaValuables Instance { get; private set; }
internal static ManualLogSource Logger => Instance._logger;
private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger;
internal Harmony? Harmony { get; set; }
private void Awake()
{
Instance = this;
((Component)this).gameObject.transform.parent = null;
((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
Patch();
Logger.LogInfo((object)$"{((BaseUnityPlugin)this).Info.Metadata.GUID} v{((BaseUnityPlugin)this).Info.Metadata.Version} has loaded!");
}
internal void Patch()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Expected O, but got Unknown
//IL_0026: Expected O, but got Unknown
if (Harmony == null)
{
Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID);
Harmony val2 = val;
Harmony = val;
}
Harmony.PatchAll();
}
internal void Unpatch()
{
Harmony? harmony = Harmony;
if (harmony != null)
{
harmony.UnpatchSelf();
}
}
private void Update()
{
}
}
[HarmonyPatch(typeof(PlayerController))]
internal static class ExamplePlayerControllerPatch
{
[HarmonyPrefix]
[HarmonyPatch("Start")]
private static void Start_Prefix(PlayerController __instance)
{
DesaValuables.Logger.LogDebug((object)$"{__instance} Start Prefix");
}
[HarmonyPostfix]
[HarmonyPatch("Start")]
private static void Start_Postfix(PlayerController __instance)
{
DesaValuables.Logger.LogDebug((object)$"{__instance} Start Postfix");
}
}
public class PlayGrabSound : MonoBehaviour
{
public Sound grabSound;
private PhotonView photonView;
private PhysGrabObject physGrabObject;
private bool grabbedPrev;
private void Start()
{
physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
photonView = ((Component)this).GetComponent<PhotonView>();
}
protected void Update()
{
if (physGrabObject.grabbed)
{
if (!grabbedPrev)
{
grabbedPrev = true;
if (SemiFunc.IsMasterClientOrSingleplayer())
{
PlaySound();
}
}
}
else
{
grabbedPrev = false;
}
}
private void PlaySound()
{
//IL_0029: 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)
if (SemiFunc.IsMultiplayer())
{
photonView.RPC("PlayHonkRPC", (RpcTarget)0, Array.Empty<object>());
}
else
{
PlayHonkRPC();
}
}
[PunRPC]
private void PlayHonkRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
if (!SemiFunc.IsMultiplayer() || _info.Sender == PhotonNetwork.MasterClient)
{
grabSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
}
}
}
public class PlayGrabSound2 : MonoBehaviour
{
public Sound grabSound;
public Sound releaseSound;
private PhotonView photonView;
private PhysGrabObject physGrabObject;
private bool grabbedPrev;
private void Start()
{
physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
photonView = ((Component)this).GetComponent<PhotonView>();
}
protected void Update()
{
if (physGrabObject.grabbed)
{
if (!grabbedPrev)
{
grabbedPrev = true;
if (SemiFunc.IsMasterClientOrSingleplayer())
{
PlayGrabSound();
}
}
}
else if (grabbedPrev)
{
grabbedPrev = false;
if (SemiFunc.IsMasterClientOrSingleplayer())
{
PlayReleaseSound();
}
}
}
private void PlayGrabSound()
{
//IL_0029: 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)
if (SemiFunc.IsMultiplayer())
{
photonView.RPC("PlayGrabRPC", (RpcTarget)0, Array.Empty<object>());
}
else
{
PlayGrabRPC();
}
}
private void PlayReleaseSound()
{
//IL_0029: 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)
if (SemiFunc.IsMultiplayer())
{
photonView.RPC("PlayReleaseRPC", (RpcTarget)0, Array.Empty<object>());
}
else
{
PlayReleaseRPC();
}
}
[PunRPC]
private void PlayGrabRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
if (!SemiFunc.IsMultiplayer() || _info.Sender == PhotonNetwork.MasterClient)
{
grabSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
}
}
[PunRPC]
private void PlayReleaseRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
if (!SemiFunc.IsMultiplayer() || _info.Sender == PhotonNetwork.MasterClient)
{
releaseSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
}
}
}
public class PlayReleaseSound : MonoBehaviour
{
public Sound releaseSound;
private PhotonView photonView;
private PhysGrabObject physGrabObject;
private bool grabbedPrev;
private void Start()
{
physGrabObject = ((Component)this).GetComponent<PhysGrabObject>();
photonView = ((Component)this).GetComponent<PhotonView>();
}
protected void Update()
{
if (physGrabObject.grabbed)
{
grabbedPrev = true;
}
else if (grabbedPrev)
{
grabbedPrev = false;
if (SemiFunc.IsMasterClientOrSingleplayer())
{
PlaySound();
}
}
}
private void PlaySound()
{
//IL_0029: 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)
if (SemiFunc.IsMultiplayer())
{
photonView.RPC("PlayHonkRPC", (RpcTarget)0, Array.Empty<object>());
}
else
{
PlayHonkRPC();
}
}
[PunRPC]
private void PlayHonkRPC(PhotonMessageInfo _info = default(PhotonMessageInfo))
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
if (!SemiFunc.IsMultiplayer() || _info.Sender == PhotonNetwork.MasterClient)
{
releaseSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f);
}
}
}
}