Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of MinecraftStrongholdLevel v1.13.1
Minecraft Stronghold Scripts.dll
Decompiled 4 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using Microsoft.CodeAnalysis; using Photon.Pun; using UnityEngine; using UnityEngine.Events; using UnityEngine.Serialization; [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-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("Autodesk.Fbx")] [assembly: IgnoresAccessChecksTo("Discord.Sdk")] [assembly: IgnoresAccessChecksTo("Domain_Reload")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("FbxBuildTestAssets")] [assembly: IgnoresAccessChecksTo("Klattersynth")] [assembly: IgnoresAccessChecksTo("Photon3Unity3D")] [assembly: IgnoresAccessChecksTo("PhotonChat")] [assembly: IgnoresAccessChecksTo("PhotonRealtime")] [assembly: IgnoresAccessChecksTo("PhotonUnityNetworking")] [assembly: IgnoresAccessChecksTo("PhotonUnityNetworking.Utilities")] [assembly: IgnoresAccessChecksTo("PhotonVoice.API")] [assembly: IgnoresAccessChecksTo("PhotonVoice")] [assembly: IgnoresAccessChecksTo("PhotonVoice.PUN")] [assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime")] [assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime.Public")] [assembly: IgnoresAccessChecksTo("Sirenix.OdinInspector.Attributes")] [assembly: IgnoresAccessChecksTo("Sirenix.Serialization.Config")] [assembly: IgnoresAccessChecksTo("Sirenix.Serialization")] [assembly: IgnoresAccessChecksTo("Sirenix.Utilities")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.Formats.Fbx.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.MemoryProfiler")] [assembly: IgnoresAccessChecksTo("Unity.Postprocessing.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Splines")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Antlr3.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Core")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Flow")] [assembly: IgnoresAccessChecksTo("Unity.VisualScripting.State")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: IgnoresAccessChecksTo("websocket-sharp")] [assembly: AssemblyCompany("AriIcedT")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Minecraft Stronghold Scripts")] [assembly: AssemblyTitle("Minecraft Stronghold Scripts")] [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 ButtonScript : MonoBehaviour { public Animator ButtonToggleAnimation; public Sound ButtonOnSound; public Sound DoorOpenSound; private PhotonView photonView; private StaticGrabObject staticGrabObject; private void Start() { photonView = ((Component)this).GetComponent<PhotonView>(); staticGrabObject = ((Component)this).GetComponent<StaticGrabObject>(); } public void animatorStart() { if (SemiFunc.IsMultiplayer()) { if (SemiFunc.IsMasterClient()) { photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>()); } } else { animatorStartRPC(); } } [PunRPC] public void animatorStartRPC() { //IL_0033: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) Animator component = ((Component)this).GetComponent<Animator>(); component.SetTrigger("buttonOn"); GameDirector.instance.CameraShake.ShakeDistance(2f, 1f, 2f, ((Component)this).transform.position, 0.1f); GameDirector.instance.CameraImpact.ShakeDistance(2f, 1f, 3f, ((Component)this).transform.position, 0.1f); ButtonOnSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); DoorOpenSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } } public class FireworkBoom : MonoBehaviour { private FireworkScriptExplosion FireworkScriptExplosion; public Sound soundBlast; private void Start() { FireworkScriptExplosion = ((Component)this).GetComponent<FireworkScriptExplosion>(); } public void Explosion() { //IL_000d: 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) soundBlast.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); FireworkScriptExplosion.Spawn(((Component)this).transform.position, 1.2f, 75, 160, 4f); } } public class FireworkParticlePrefabExplosion : MonoBehaviour { public ParticleSystem particleCharge; private float lightIntensityCurveProgress; internal float explosionSize = 1f; internal float particleSizeMultiplier = 0f; internal int explosionDamage; internal int explosionDamageEnemy; private float chargeNullCheckTimer; [HideInInspector] public float forceMultiplier = 1f; public bool onlyParticleEffect; internal bool SkipHurtColliderSetup; public HurtCollider HurtCollider; private bool HurtColliderActive = true; private bool HurtColliderFirstSetup = true; private bool HurtColliderSecondSetup = true; private float HurtColliderTimer; private void Start() { //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) MainModule main = particleCharge.main; particleCharge.Play(); } private void Update() { //IL_0113: 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_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Invalid comparison between Unknown and I4 //IL_00dd: 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_01da: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) if (!onlyParticleEffect && HurtColliderActive) { HurtColliderTimer += Time.deltaTime; if (HurtColliderFirstSetup) { if (!SkipHurtColliderSetup) { HurtCollider.playerDamage = explosionDamage; HurtCollider.enemyDamage = explosionDamageEnemy; HurtCollider.physHitForce = (float)explosionDamage * 0.5f; if (explosionDamage >= 50) { HurtCollider.physImpact = (BreakImpact)3; HurtCollider.physHingeDestroy = true; } else if (explosionDamage >= 15) { HurtCollider.physImpact = (BreakImpact)2; } else { HurtCollider.physImpact = (BreakImpact)1; } } ((Component)HurtCollider).gameObject.SetActive(true); ((Component)HurtCollider).transform.localScale = new Vector3(explosionSize, explosionSize, explosionSize); HurtColliderFirstSetup = false; } if (HurtColliderSecondSetup && HurtColliderTimer > 0.2f) { HurtCollider.playerDamage = 0; HurtCollider hurtCollider = HurtCollider; hurtCollider.playerHitForce *= 0.25f; HurtCollider hurtCollider2 = HurtCollider; hurtCollider2.physHitForce *= 0.25f; if ((int)HurtCollider.physImpact > 0) { HurtCollider hurtCollider3 = HurtCollider; hurtCollider3.physImpact = (BreakImpact)(hurtCollider3.physImpact - 1); } ((Component)HurtCollider).transform.localScale = new Vector3(explosionSize * 2f, explosionSize * 2f, explosionSize * 2f); HurtColliderSecondSetup = false; } if (HurtColliderTimer > 0.5f) { ((Component)HurtCollider).gameObject.SetActive(false); HurtColliderActive = false; } } chargeNullCheckTimer += Time.deltaTime; if (chargeNullCheckTimer > 1f) { if (!Object.op_Implicit((Object)(object)particleCharge)) { Object.Destroy((Object)(object)((Component)this).gameObject); } chargeNullCheckTimer = 0f; } } } public class FireworkScriptExplosion : MonoBehaviour { public GameObject FireworkExplosionPrefab; private void Start() { } public FireworkParticlePrefabExplosion Spawn(Vector3 position, float size, int damage, int enemyDamage, float forceMulti = 1f, bool onlyParticleEffect = false, bool disableSound = false, float shakeMultiplier = 1f) { //IL_0007: 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) FireworkParticlePrefabExplosion component = Object.Instantiate<GameObject>(FireworkExplosionPrefab, position, Quaternion.identity).GetComponent<FireworkParticlePrefabExplosion>(); component.explosionSize = size; component.explosionDamage = damage / 3; component.explosionDamageEnemy = enemyDamage / 2; component.particleCharge.Play(); return component; } } public class FireworkTrap : MonoBehaviour { public UnityEvent FireworkDetonate; private ItemToggle itemToggle; private ItemAttributes itemAttributes; internal bool isActive; private float grenadeTimer; public float tickTime = 3f; private PhotonView photonView; private PhysGrabObjectImpactDetector physGrabObjectImpactDetector; public Sound soundLaunch; private ItemEquippable itemEquippable; private Vector3 grenadeStartPosition; private Quaternion grenadeStartRotation; private PhysGrabObject physGrabObject; private Vector3 prevPosition; [Space] private Quaternion initialBottleRotation; private Vector3 randomTorque; private int timeToTwist; public ParticleSystem TrailParticleSystem; public GameObject FireworkMesh; [FormerlySerializedAs("isThiefGrenade")] [HideInInspector] public bool isSpawnedGrenade; private Rigidbody rb; private void Start() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) itemEquippable = ((Component)this).GetComponent<ItemEquippable>(); itemToggle = ((Component)this).GetComponent<ItemToggle>(); itemAttributes = ((Component)this).GetComponent<ItemAttributes>(); photonView = ((Component)this).GetComponent<PhotonView>(); physGrabObjectImpactDetector = ((Component)this).GetComponent<PhysGrabObjectImpactDetector>(); grenadeStartPosition = ((Component)this).transform.position; grenadeStartRotation = ((Component)this).transform.rotation; physGrabObject = ((Component)this).GetComponent<PhysGrabObject>(); rb = ((Component)this).GetComponent<Rigidbody>(); } private void FixedUpdate() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: 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_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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_0087: 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) //IL_0034: Unknown result type (might be due to invalid IL or missing references) if (itemEquippable.isEquipped || itemEquippable.wasEquippedTimer > 0f) { prevPosition = rb.position; return; } Vector3 val = (rb.position - prevPosition) / Time.fixedDeltaTime; Vector3 val2 = rb.position - prevPosition; _ = ((Vector3)(ref val2)).normalized; prevPosition = rb.position; } private void Update() { //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_00df: 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_00fb: 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_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: 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_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) if (itemEquippable.isEquipped) { if (isActive) { TrailParticleSystem.Stop(false); isActive = false; grenadeTimer = 0f; itemToggle.ToggleItem(false, -1); } } else { if (!SemiFunc.IsMasterClientOrSingleplayer()) { return; } if (itemToggle.toggleState && !isActive) { isActive = true; TickStart(); TrailParticleSystem.Play(false); } if (!isActive) { return; } rb.AddForce(((Component)this).transform.up * 0.45f * 25f * Time.fixedDeltaTime * 25f, (ForceMode)0); rb.AddForce(Vector3.up * 0.15f * 15f * Time.fixedDeltaTime * 25f, (ForceMode)0); rb.AddTorque(randomTorque * 25f * Time.fixedDeltaTime * 25f, (ForceMode)0); if (timeToTwist > 200) { Vector3 val = Random.insideUnitSphere; randomTorque = ((Vector3)(ref val)).normalized * Random.Range(0f, 0.5f); timeToTwist = 0; val = rb.velocity; if (((Vector3)(ref val)).magnitude < 0.5f && !physGrabObject.grabbed) { rb.AddForce(((Component)this).transform.up * 3f, (ForceMode)1); rb.AddTorque(randomTorque * 15f, (ForceMode)1); } } grenadeTimer += Time.deltaTime; if (grenadeTimer >= tickTime) { grenadeTimer = 0f; TickEnd(); } } } private void GrenadeReset() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) isActive = false; DeparentAndDestroy(TrailParticleSystem); grenadeTimer = 0f; itemToggle.ToggleItem(false, -1); if (!SemiFunc.IsMasterClientOrSingleplayer()) { return; } rb.velocity = Vector3.zero; rb.angularVelocity = Vector3.zero; foreach (PhysGrabber item in physGrabObject.playerGrabbing.ToList()) { if (!SemiFunc.IsMultiplayer()) { item.ReleaseObject(photonView.ViewID, 0.1f); continue; } item.photonView.RPC("ReleaseObjectRPC", (RpcTarget)0, new object[3] { false, 0.1f, photonView.ViewID }); } } private void DeparentAndDestroy(ParticleSystem particleSystem) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)particleSystem != (Object)null && particleSystem.isPlaying) { ((Component)particleSystem).gameObject.transform.parent = null; MainModule main = particleSystem.main; ((MainModule)(ref main)).stopAction = (ParticleSystemStopAction)2; particleSystem.Stop(false); particleSystem = null; } } private void TickStart() { //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.IsMasterClient()) { photonView.RPC("TickStartRPC", (RpcTarget)0, Array.Empty<object>()); } else { TickStartRPC(); } } private void TickEnd() { //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.IsMasterClient()) { photonView.RPC("TickEndRPC", (RpcTarget)0, Array.Empty<object>()); } else { TickEndRPC(); } } [PunRPC] private void TickStartRPC(PhotonMessageInfo _info = default(PhotonMessageInfo)) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) if (SemiFunc.MasterOnlyRPC(_info)) { soundLaunch.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); isActive = true; } } [PunRPC] private void TickEndRPC(PhotonMessageInfo _info = default(PhotonMessageInfo)) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) if (!SemiFunc.MasterOnlyRPC(_info) || itemEquippable.isEquipped) { return; } FireworkDetonate.Invoke(); if (SemiFunc.IsMasterClientOrSingleplayer()) { if (!SemiFunc.RunIsShop() || isSpawnedGrenade) { if (!isSpawnedGrenade) { StatsManager.instance.ItemRemove(itemAttributes.instanceName); } Object.Destroy((Object)(object)((Component)this).gameObject, 15f); Object.Destroy((Object)(object)((Component)this).GetComponent<BoxCollider>()); Object.Destroy((Object)(object)FireworkMesh); Object.Destroy((Object)(object)((Component)this).GetComponent<FireworkTrap>()); TrailParticleSystem.Stop(false); Object.Destroy((Object)(object)TrailParticleSystem, 15f); } else { physGrabObject.Teleport(grenadeStartPosition, grenadeStartRotation); } } if (SemiFunc.RunIsShop() && !isSpawnedGrenade) { GrenadeReset(); } } } public class LeverScript : MonoBehaviour { public Animator LeverToggleAnimation; public Sound ButtonOnSound; public Sound ButtonOffSound; private PhotonView photonView; private StaticGrabObject staticGrabObject; private void Start() { photonView = ((Component)this).GetComponent<PhotonView>(); staticGrabObject = ((Component)this).GetComponent<StaticGrabObject>(); } public void animatorStart() { if (SemiFunc.IsMultiplayer()) { if (SemiFunc.IsMasterClient()) { photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>()); } } else { animatorStartRPC(); } } [PunRPC] public void animatorStartRPC() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) Animator component = ((Component)this).GetComponent<Animator>(); component.SetTrigger("leverOn"); component.ResetTrigger("leverOff"); GameDirector.instance.CameraShake.ShakeDistance(2f, 1f, 2f, ((Component)this).transform.position, 0.1f); GameDirector.instance.CameraImpact.ShakeDistance(2f, 1f, 3f, ((Component)this).transform.position, 0.1f); ButtonOnSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void animatorStay() { if (SemiFunc.IsMultiplayer()) { if (SemiFunc.IsMasterClient()) { photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>()); } } else { animatorStayRPC(); } } [PunRPC] public void animatorStayRPC() { Animator component = ((Component)this).GetComponent<Animator>(); component.SetTrigger("leverOn"); component.ResetTrigger("leverOff"); } public void animatorStop() { if (SemiFunc.IsMultiplayer()) { if (SemiFunc.IsMasterClient()) { photonView.RPC("animatorStartRPC", (RpcTarget)0, Array.Empty<object>()); } } else { animatorStopRPC(); } } [PunRPC] public void animatorStopRPC() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) Animator component = ((Component)this).GetComponent<Animator>(); component.SetTrigger("leverOff"); component.ResetTrigger("leverOn"); GameDirector.instance.CameraShake.ShakeDistance(2f, 1f, 2f, ((Component)this).transform.position, 0.1f); GameDirector.instance.CameraImpact.ShakeDistance(2f, 1f, 3f, ((Component)this).transform.position, 0.1f); ButtonOffSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } } public class ObjectAreaTrigger : MonoBehaviour { [SerializeField] private UnityEvent onTriggerEnter; [SerializeField] private UnityEvent onTriggerStay; [SerializeField] private UnityEvent onTriggerExit; private PhotonView photonView; private void OnTriggerEnter(Collider other) { onTriggerEnter.Invoke(); } private void OnTriggerStay(Collider other) { onTriggerStay.Invoke(); } private void OnTriggerExit(Collider other) { onTriggerExit.Invoke(); } } public class PotionDanceTrigger : MonoBehaviour { public enum State { start, levitate, end, inactive } private PhotonView photonView; internal State state = State.inactive; private bool stateStart = true; public Transform sphereEffects; public float range = 3f; private List<PlayerAvatar> capturedPlayerAvatars = new List<PlayerAvatar>(); private float checkTimer; private int particleCount; private float stateTimer; private void StateMachine() { switch (state) { case State.start: StateStart(); break; case State.levitate: StateLevitate(); break; case State.end: StateEnd(); break; case State.inactive: StateInactive(); break; } } private void Reset() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) checkTimer = 0f; particleCount = 0; capturedPlayerAvatars.Clear(); sphereEffects.localScale = Vector3.zero; ((Component)sphereEffects).gameObject.SetActive(false); } private void StateInactive() { if (stateStart) { Reset(); stateStart = false; ((Component)this).gameObject.SetActive(false); } } private void StateEnd() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) if (stateStart) { stateStart = false; } if (((Component)sphereEffects).gameObject.activeSelf) { sphereEffects.localScale = Vector3.Lerp(sphereEffects.localScale, Vector3.zero, Time.deltaTime * 20f); if (sphereEffects.localScale.x < 0.01f) { StateSet(State.inactive); } } else { StateSet(State.inactive); } } private void StateStart() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: 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) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) if (stateStart) { Reset(); ((Component)sphereEffects).gameObject.SetActive(true); stateStart = false; } sphereEffects.localScale = Vector3.Lerp(sphereEffects.localScale, Vector3.one * 1.2f, Time.deltaTime * 6f); if (sphereEffects.localScale.x > 1.19f) { sphereEffects.localScale = Vector3.one * 1.2f; StateSet(State.levitate); } } private void StateLevitate() { if (stateStart) { stateTimer = 0f; stateStart = false; GetAllWithinRange(); } if (checkTimer > 0.35f) { GetAllWithinRange(); checkTimer = 0f; } checkTimer += Time.deltaTime; stateTimer += Time.deltaTime; } private void RemoveAllOutOfRange() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0066: 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_007b: Unknown result type (might be due to invalid IL or missing references) for (int num = capturedPlayerAvatars.Count - 1; num >= 0; num--) { PlayerAvatar val = capturedPlayerAvatars[num]; if (!Object.op_Implicit((Object)(object)val)) { capturedPlayerAvatars.RemoveAt(num); } else if (Vector3.Distance(new Vector3(((Component)val).transform.position.x, ((Component)this).transform.position.y, ((Component)val).transform.position.z), ((Component)this).transform.position) > range * 1.2f) { capturedPlayerAvatars.RemoveAt(num); } } } private void StateLevitateFixed() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: 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_00e0: 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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) if (state != State.levitate) { return; } int count = capturedPlayerAvatars.Count; if (particleCount < count) { Vector3 val = Vector3.zero; bool flag = false; if (particleCount < capturedPlayerAvatars.Count) { if (Object.op_Implicit((Object)(object)capturedPlayerAvatars[particleCount])) { val = ((Component)capturedPlayerAvatars[particleCount]).transform.position; flag = true; } } else { int num = particleCount - capturedPlayerAvatars.Count; } if (flag) { Vector3 val2 = Random.insideUnitSphere * 2f; val2.y = 0f - Mathf.Abs(val2.y); val += val2; } particleCount++; } else { particleCount = 0; } } private void FixedUpdate() { if (state != State.levitate) { return; } foreach (PlayerAvatar capturedPlayerAvatar in capturedPlayerAvatars) { if (Object.op_Implicit((Object)(object)capturedPlayerAvatar) && capturedPlayerAvatar.isLocal && Object.op_Implicit((Object)(object)PlayerController.instance)) { float num = Mathf.Sin(Time.time * 11.5f) * 0.7f; float num2 = Mathf.Sin(Time.time * 11.5f) * 25f; CameraAim.Instance.AdditiveAimY(num); PlayerExpressionsUI.instance.playerAvatarVisuals.playerAvatar.playerExpression.OverrideExpressionSet(4, 100f); PlayerExpressionsUI.instance.playerExpression.OverrideExpressionSet(4, 100f); PlayerExpressionsUI.instance.playerAvatarVisuals.HeadTiltOverride(num2 * 0.5f); } } if (SemiFunc.IsMasterClientOrSingleplayer()) { StateLevitateFixed(); } } private void Update() { StateMachine(); } public void StateSet(State _state) { if (state != _state) { state = _state; stateStart = true; } } public void GetAllWithinRange() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: 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) RemoveAllOutOfRange(); foreach (PlayerAvatar item in SemiFunc.PlayerGetAllPlayerAvatarWithinRange(range, ((Component)this).transform.position, false, default(LayerMask))) { if (!capturedPlayerAvatars.Contains(item)) { capturedPlayerAvatars.Add(item); } } } private void OnEnable() { StateSet(State.start); } private void OnDisable() { StateSet(State.inactive); StateInactive(); } } namespace Minecraft_Stronghold_Scripts { [BepInPlugin("MinecraftStrongholdLevel", "MinecraftStrongholdLevel", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Minecraft_Stronghold_Scripts : BaseUnityPlugin { private void Awake() { } } public static class MyPluginInfo { public const string PLUGIN_GUID = "MinecraftStrongholdLevel"; public const string PLUGIN_NAME = "MinecraftStrongholdLevel"; public const string PLUGIN_VERSION = "1.0.0"; } }