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 Dafis Mega Monster Pack Emporium REPO Edition v2.2.4
REPOdll.dll
Decompiled 4 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using Photon.Pun; using REPOdll; using UnityEngine; using UnityEngine.AI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(/*Could not decode attribute arguments.*/)] [assembly: TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] [assembly: AssemblyCompany("REPOdll")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("REPOdll")] [assembly: AssemblyTitle("REPOdll")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] public class EnemyHunterAnim : MonoBehaviour { public Enemy enemy; public EnemyDoom enemyHunter; internal Animator animator; public MaterialTrigger material; private float moveTimer; private bool stunImpulse; internal bool spawnImpulse; [Space] public List<ParticleSystem> teleportEffects; [Space] public Sound soundFootstepShort; public Sound soundFootstepLong; public Sound soundReload01; public Sound soundAimStart; public Sound soundAimStartGlobal; public Sound soundReload02; public Sound soundMoveShort; public Sound soundMoveLong; public Sound soundGunLong; public Sound soundGunShort; public Sound soundSpawn; public Sound soundDespawn; public Sound soundLeaveStart; [Space] public AudioClip[] aimStartClips; public AudioClip[] aimStartGlobalClips; private void Awake() { animator = ((Component)this).GetComponent<Animator>(); animator.keepAnimatorStateOnDisable = true; } private void Update() { if (enemy.Rigidbody.frozen) { animator.speed = 0f; } else { animator.speed = 1f; } if ((enemyHunter.currentState == EnemyDoom.State.Roam || enemyHunter.currentState == EnemyDoom.State.InvestigateWalk || enemyHunter.currentState == EnemyDoom.State.Leave) && (((Vector3)(ref enemy.Rigidbody.velocity)).magnitude > 0.2f || ((Vector3)(ref enemy.Rigidbody.physGrabObject.rbAngularVelocity)).magnitude > 0.25f)) { moveTimer = 0.1f; } if (moveTimer > 0f) { moveTimer -= Time.deltaTime; animator.SetBool("Moving", true); } else { animator.SetBool("Moving", false); } if (enemyHunter.currentState == EnemyDoom.State.LeaveStart) { animator.SetBool("Leaving", true); } else { animator.SetBool("Leaving", false); } if (enemyHunter.currentState == EnemyDoom.State.Stun) { if (stunImpulse) { animator.SetTrigger("Stun"); stunImpulse = false; } animator.SetBool("Stunned", true); } else { animator.SetBool("Stunned", false); stunImpulse = true; } if (enemyHunter.currentState == EnemyDoom.State.Aim) { animator.SetBool("Aiming", true); } else { animator.SetBool("Aiming", false); } if (enemyHunter.currentState == EnemyDoom.State.Shoot || enemyHunter.currentState == EnemyDoom.State.ShootEnd) { animator.SetBool("Shooting", true); } else { animator.SetBool("Shooting", false); } if (enemyHunter.currentState == EnemyDoom.State.Despawn) { animator.SetBool("Despawning", true); } else { animator.SetBool("Despawning", false); } } public void OnSpawn() { animator.SetBool("Stunned", false); animator.Play("Spawn", 0, 0f); } public void TeleportEffect() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_004d: 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_0067: Unknown result type (might be due to invalid IL or missing references) GameDirector.instance.CameraShake.ShakeDistance(3f, 3f, 10f, ((Component)this).transform.position, 0.5f); GameDirector.instance.CameraImpact.ShakeDistance(3f, 3f, 10f, ((Component)this).transform.position, 0.05f); Enumerator<ParticleSystem> enumerator = teleportEffects.GetEnumerator(); try { while (enumerator.MoveNext()) { ParticleSystem current = enumerator.Current; current.Play(); } } finally { ((global::System.IDisposable)enumerator).Dispose(); } } public void FootstepShort() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) soundFootstepShort.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); Materials.Instance.Impulse(enemy.Rigidbody.physGrabObject.centerPoint + Vector3.down * 1f, Vector3.down, (SoundType)1, true, material, (HostType)2); } public void FootstepLong() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) soundFootstepLong.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); Materials.Instance.Impulse(enemy.Rigidbody.physGrabObject.centerPoint + Vector3.down * 1f, Vector3.down, (SoundType)1, true, material, (HostType)2); } public void AimStart() { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) int num = Random.Range(0, aimStartClips.Length); soundAimStart.Sounds[0] = aimStartClips[num]; soundAimStartGlobal.Sounds[0] = aimStartGlobalClips[num]; soundAimStart.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); soundAimStartGlobal.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void Despawn() { enemy.EnemyParent.Despawn(); } public void Reload01() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundReload01.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void Reload02() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundReload02.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void MoveShort() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundMoveShort.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void MoveLong() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundMoveLong.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void GunLong() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundGunLong.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void GunShort() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundGunShort.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void Spawn() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundSpawn.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void DespawnSound() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundDespawn.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void LeaveStartSound() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundLeaveStart.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); } public void LeaveStartDone() { if (SemiFunc.IsMasterClientOrSingleplayer() && enemyHunter.currentState == EnemyDoom.State.LeaveStart) { enemyHunter.stateTimer = 0f; } } } namespace REPOdll; public class EnemyDoom : MonoBehaviour { public enum State { Spawn, Idle, Roam, Investigate, InvestigateWalk, Aim, Shoot, ShootEnd, LeaveStart, Leave, Despawn, Stun } public bool debugSpawn; [Space] public State currentState; private bool stateImpulse; internal float stateTimer; [Space] public Enemy enemy; public EnemyHunterAnim enemyHunterAnim; public EnemyHunterAlwaysActive enemyHunterAlwaysActive; private PhotonView photonView; public Transform investigateRayTransform; public Transform verticalAimTransform; public Transform gunAimTransform; public Transform gunTipTransform; public HurtCollider hurtCollider; private float hurtColliderTimer; private bool shootFast; [Space] public LineRenderer lineRenderer; public AnimationCurve lineRendererWidthCurve; private float lineRendererLerp; private bool lineRendererActive; [Space] public SpringQuaternion horizontalAimSpring; private Quaternion horizontalAimTarget = Quaternion.identity; public SpringQuaternion verticalAimSpring; private float pitCheckTimer; private int shotsFired; private int shotsFiredMax = 4; private Vector3 leavePosition; private Vector3 investigatePoint; private Quaternion investigateAimHorizontal = Quaternion.identity; private Quaternion investigateAimVertical = Quaternion.identity; private Quaternion investigateAimVerticalPrevious = Quaternion.identity; private float investigateAimVerticalRPCTimer; private bool investigatePointHasTransform; private Transform investigatePointTransform; private Vector3 investigatePointTransformPrevious; private Vector3 investigatePointSpread; private Vector3 investigatePointSpreadTarget; private float investigatePointSpreadTimer; private int leaveInterruptCounter; private float leaveInterruptTimer; [Space] public Transform shootEffectTransform; public List<ParticleSystem> shootEffects; [Space] public Transform hitEffectTransform; public List<ParticleSystem> hitEffects; [Space] public List<ParticleSystem> deathEffects; [Space] public Sound soundHurt; public Sound soundDeath; public Sound soundShoot; public Sound soundShootGlobal; public Sound soundHit; private float enemyDetectionRange = 12f; private float enemyCheckTimer; private float enemyCheckInterval = 1.5f; private void Awake() { photonView = ((Component)this).GetComponent<PhotonView>(); if (!Application.isEditor || (SemiFunc.IsMultiplayer() && !GameManager.instance.localTest)) { debugSpawn = false; } } private void Update() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 VerticalRotationLogic(); HurtColliderTimer(); LineRendererLogic(); if (SemiFunc.IsMasterClientOrSingleplayer()) { if (enemy.IsStunned()) { UpdateState(State.Stun); } if ((int)enemy.CurrentState == 11 && !enemy.IsStunned()) { UpdateState(State.Despawn); } ShotsFiredLogic(); HorizontalRotationLogic(); LeaveInterruptLogic(); CheckForNearbyEnemies(); switch (currentState) { case State.Spawn: StateSpawn(); break; case State.Idle: StateIdle(); break; case State.Roam: StateRoam(); break; case State.Investigate: StateInvestigate(); break; case State.InvestigateWalk: StateInvestigateWalk(); break; case State.Aim: AimLogic(); StateAim(); break; case State.Shoot: StateShoot(); break; case State.ShootEnd: StateShootEnd(); break; case State.LeaveStart: StateLeaveStart(); break; case State.Leave: StateLeave(); break; case State.Despawn: StateDespawn(); break; case State.Stun: StateStun(); break; } } } private void CheckForNearbyEnemies() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) enemyCheckTimer -= Time.deltaTime; if (!(enemyCheckTimer <= 0f) || (currentState != State.Idle && currentState != State.Roam)) { return; } enemyCheckTimer = enemyCheckInterval; Collider[] array = Physics.OverlapSphere(((Component)this).transform.position, enemyDetectionRange, LayerMask.GetMask(new string[1] { "Enemy" })); Collider[] array2 = array; foreach (Collider val in array2) { if ((Object)(object)((Component)val).transform.root == (Object)(object)((Component)this).transform.root) { continue; } Vector3 val2 = ((Component)val).transform.position - investigateRayTransform.position; RaycastHit[] array3 = Physics.RaycastAll(investigateRayTransform.position, ((Vector3)(ref val2)).normalized, ((Vector3)(ref val2)).magnitude, LayerMask.op_Implicit(SemiFunc.LayerMaskGetVisionObstruct())); bool flag = true; for (int j = 0; j < array3.Length; j++) { if (!((Object)(object)((RaycastHit)(ref array3[j])).transform.root == (Object)(object)((Component)val).transform.root)) { flag = false; break; } } if (flag) { investigatePoint = ((Component)val).transform.position; if (SemiFunc.IsMultiplayer()) { photonView.RPC("UpdateInvestigationPoint", (RpcTarget)1, new object[1] { investigatePoint }); } UpdateState(State.Aim); break; } } } private void StateSpawn() { if (stateImpulse) { stateImpulse = false; stateTimer = 1f; } stateTimer -= Time.deltaTime; if (stateTimer <= 0f) { UpdateState(State.Idle); } } private void StateIdle() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { stateImpulse = false; stateTimer = Random.Range(2f, 8f); enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); } if (!SemiFunc.EnemySpawnIdlePause()) { stateTimer -= Time.deltaTime; if (stateTimer <= 0f) { UpdateState(State.Roam); } if (SemiFunc.EnemyForceLeave(enemy)) { UpdateState(State.LeaveStart); } } } private void StateRoam() { //IL_0025: 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_006b: 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_007a: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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) if (stateImpulse) { stateImpulse = false; stateTimer = 1f; bool flag = false; LevelPoint val = SemiFunc.LevelPointGet(((Component)this).transform.position, 10f, 25f); if (!Object.op_Implicit((Object)(object)val)) { val = SemiFunc.LevelPointGet(((Component)this).transform.position, 0f, 999f); } NavMeshHit val2 = default(NavMeshHit); if (Object.op_Implicit((Object)(object)val) && NavMesh.SamplePosition(((Component)val).transform.position + Random.insideUnitSphere * 3f, ref val2, 5f, -1) && Physics.Raycast(((NavMeshHit)(ref val2)).position, Vector3.down, 5f, LayerMask.GetMask(new string[1] { "Default" }))) { enemy.NavMeshAgent.SetDestination(((NavMeshHit)(ref val2)).position); flag = true; } if (!flag) { return; } pitCheckTimer = 0.1f; enemy.Rigidbody.notMovingTimer = 0f; stateImpulse = false; } else { if (enemy.Rigidbody.notMovingTimer > 1f) { stateTimer -= Time.deltaTime; } if (PitCheckLogic()) { enemy.NavMeshAgent.ResetPath(); } if (stateTimer <= 0f || !enemy.NavMeshAgent.HasPath()) { UpdateState(State.Idle); } } if (SemiFunc.EnemyForceLeave(enemy)) { UpdateState(State.LeaveStart); } } private void StateDespawn() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { stateImpulse = false; enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); } } private void StateStun() { if (!enemy.IsStunned()) { UpdateState(State.Idle); } } private void StateInvestigate() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_00de: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (!stateImpulse) { return; } stateImpulse = false; float num = 12f; Vector3 val = investigatePoint - investigateRayTransform.position; bool flag = false; if (((Vector3)(ref val)).magnitude < num) { flag = true; RaycastHit[] array = Physics.RaycastAll(investigateRayTransform.position, val, ((Vector3)(ref val)).magnitude, LayerMask.op_Implicit(SemiFunc.LayerMaskGetVisionObstruct())); for (int i = 0; i < array.Length; i++) { RaycastHit val2 = array[i]; if (!(Vector3.Distance(investigatePoint, ((RaycastHit)(ref val2)).point) < 1f) && !((Component)((RaycastHit)(ref val2)).transform).CompareTag("Player") && !Object.op_Implicit((Object)(object)((Component)((RaycastHit)(ref val2)).transform).GetComponent<EnemyRigidbody>())) { flag = false; break; } } } if (flag) { enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); UpdateState(State.Aim); } else { UpdateState(State.InvestigateWalk); } } private void StateInvestigateWalk() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { enemy.NavMeshAgent.SetDestination(investigatePoint); pitCheckTimer = 0f; enemy.Rigidbody.notMovingTimer = 0f; stateTimer = 1f; stateImpulse = false; } else { if (enemy.Rigidbody.notMovingTimer > 1f) { stateTimer -= Time.deltaTime; } if (PitCheckLogic()) { enemy.NavMeshAgent.ResetPath(); } if (stateTimer <= 0f || !enemy.NavMeshAgent.HasPath()) { UpdateState(State.Idle); } } if (SemiFunc.EnemyForceLeave(enemy)) { UpdateState(State.LeaveStart); } } private void StateAim() { //IL_0026: 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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_00ad: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); stateImpulse = false; investigatePointSpread = Vector3.zero; investigatePointSpreadTarget = Vector3.zero; investigatePointSpreadTimer = 0f; if (shootFast) { stateTimer = 0.5f; } else { stateTimer = Random.Range(0.25f, 1f); } enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); } stateTimer -= Time.deltaTime; if (stateTimer <= 0f) { UpdateState(State.Shoot); } } private void StateShoot() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //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) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0051: 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_007c: 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0376: 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_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: 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_01df: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { Vector3 val = gunAimTransform.position + gunAimTransform.forward * 50f; float num = 1f; if (shootFast) { num = 1.5f; } if (Vector3.Distance(((Component)this).transform.position, investigatePoint) > 10f) { num = 0.5f; } bool flag = false; RaycastHit[] array = Physics.SphereCastAll(gunAimTransform.position, num, gunAimTransform.forward, 50f, LayerMask.GetMask(new string[1] { "Player" }) + LayerMask.GetMask(new string[1] { "PhysGrabObject" }) + LayerMask.GetMask(new string[1] { "Enemy" })); for (int i = 0; i < array.Length; i++) { RaycastHit val2 = array[i]; PlayerAvatar val3 = null; bool flag2 = false; if (((Component)((RaycastHit)(ref val2)).transform).gameObject.layer == LayerMask.NameToLayer("Player")) { flag2 = true; PlayerController componentInParent = ((Component)((RaycastHit)(ref val2)).transform).GetComponentInParent<PlayerController>(); val3 = ((!Object.op_Implicit((Object)(object)componentInParent)) ? ((Component)((RaycastHit)(ref val2)).transform).GetComponentInParent<PlayerAvatar>() : componentInParent.playerAvatarScript); } else if (((Component)((RaycastHit)(ref val2)).transform).gameObject.layer == LayerMask.NameToLayer("Enemy")) { if ((Object)(object)((RaycastHit)(ref val2)).transform.root != (Object)(object)((Component)this).transform.root) { flag2 = true; } } else { PlayerTumble componentInParent2 = ((Component)((RaycastHit)(ref val2)).transform).GetComponentInParent<PlayerTumble>(); if (Object.op_Implicit((Object)(object)componentInParent2)) { val3 = componentInParent2.playerAvatar; flag2 = true; } } if (!flag2) { continue; } bool flag3 = true; if (((RaycastHit)(ref val2)).point != Vector3.zero) { Vector3 val4 = ((RaycastHit)(ref val2)).point - gunAimTransform.position; RaycastHit[] array2 = Physics.RaycastAll(gunAimTransform.position, val4, ((Vector3)(ref val4)).magnitude, LayerMask.op_Implicit(SemiFunc.LayerMaskGetVisionObstruct())); for (int j = 0; j < array2.Length; j++) { RaycastHit val5 = array2[j]; if (((Component)((RaycastHit)(ref val5)).transform).gameObject.layer != LayerMask.NameToLayer("Player") && ((Component)((RaycastHit)(ref val5)).transform).gameObject.layer != LayerMask.NameToLayer("Enemy") && (((Component)((RaycastHit)(ref val5)).transform).gameObject.layer != LayerMask.NameToLayer("PhysGrabObject") || !Object.op_Implicit((Object)(object)((Component)this).GetComponentInParent<PlayerTumble>()))) { flag3 = false; break; } } } if (flag3) { if (((RaycastHit)(ref val2)).point != Vector3.zero) { val = ((RaycastHit)(ref val2)).point; flag = true; } else if (Object.op_Implicit((Object)(object)val3)) { val = val3.PlayerVisionTarget.VisionTransform.position; flag = true; } break; } } RaycastHit val6 = default(RaycastHit); if (!flag && Physics.Raycast(gunAimTransform.position, gunAimTransform.forward, ref val6, 50f, LayerMask.op_Implicit(SemiFunc.LayerMaskGetVisionObstruct()) + LayerMask.GetMask(new string[1] { "Enemy" }))) { val = ((RaycastHit)(ref val6)).point; } if (SemiFunc.IsMultiplayer()) { photonView.RPC("ShootRPC", (RpcTarget)0, new object[1] { val }); } else { ShootRPC(val); } stateImpulse = false; stateTimer = 2f; enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); } stateTimer -= Time.deltaTime; if (stateTimer <= 0f) { UpdateState(State.ShootEnd); } } private void StateShootEnd() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { shotsFired++; stateImpulse = false; stateTimer = 2f; enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); } stateTimer -= Time.deltaTime; if (stateTimer <= 0f) { if (shotsFired >= shotsFiredMax) { UpdateState(State.LeaveStart); } else { UpdateState(State.Idle); } } } private void StateLeaveStart() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { shotsFired++; stateImpulse = false; stateTimer = 3f; enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); } stateTimer -= Time.deltaTime; if (stateTimer <= 0f) { UpdateState(State.Leave); } } private void StateLeave() { //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_016a: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) if (stateImpulse) { enemy.NavMeshAgent.Warp(((Component)enemy.Rigidbody).transform.position); enemy.NavMeshAgent.ResetPath(); if (!enemy.EnemyParent.playerClose) { UpdateState(State.Idle); return; } bool flag = false; LevelPoint val = SemiFunc.LevelPointGetPlayerDistance(((Component)this).transform.position, 25f, 50f, false); if (!Object.op_Implicit((Object)(object)val)) { val = SemiFunc.LevelPointGetFurthestFromPlayer(((Component)this).transform.position, 5f); } NavMeshHit val2 = default(NavMeshHit); if (Object.op_Implicit((Object)(object)val) && NavMesh.SamplePosition(((Component)val).transform.position, ref val2, 5f, -1) && Physics.Raycast(((NavMeshHit)(ref val2)).position, Vector3.down, 5f, LayerMask.GetMask(new string[1] { "Default" }))) { leavePosition = ((NavMeshHit)(ref val2)).position; flag = true; } if (!flag) { return; } stateImpulse = false; stateTimer = 5f; } enemy.NavMeshAgent.SetDestination(leavePosition); if (enemy.Rigidbody.notMovingTimer > 2f) { stateTimer -= Time.deltaTime; } if (PitCheckLogic()) { stateImpulse = true; } else if (stateTimer <= 0f || Vector3.Distance(((Component)this).transform.position, leavePosition) < 1f) { UpdateState(State.Idle); } } public void OnSpawn() { if (SemiFunc.IsMasterClientOrSingleplayer() && SemiFunc.EnemySpawn(enemy)) { UpdateState(State.Spawn); } } public void OnHurt() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) soundHurt.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); if (SemiFunc.IsMasterClientOrSingleplayer() && currentState == State.Leave) { UpdateState(State.Idle); } } public void OnDeath() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0084: 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) soundDeath.Play(enemy.CenterTransform.position, 1f, 1f, 1f, 1f); Enumerator<ParticleSystem> enumerator = deathEffects.GetEnumerator(); try { while (enumerator.MoveNext()) { ParticleSystem current = enumerator.Current; current.Play(); } } finally { ((global::System.IDisposable)enumerator).Dispose(); } GameDirector.instance.CameraShake.ShakeDistance(3f, 3f, 10f, ((Component)this).transform.position, 0.5f); GameDirector.instance.CameraImpact.ShakeDistance(3f, 3f, 10f, ((Component)this).transform.position, 0.05f); if (SemiFunc.IsMasterClientOrSingleplayer()) { enemy.EnemyParent.Despawn(); } } public void OnInvestigate() { //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) if (!SemiFunc.IsMasterClientOrSingleplayer() || !(enemy.Rigidbody.timeSinceStun > 1.5f)) { return; } if (currentState == State.Idle || currentState == State.Roam || currentState == State.InvestigateWalk || (currentState == State.ShootEnd && shotsFired < shotsFiredMax) || (currentState == State.Leave && leaveInterruptCounter >= 3)) { investigatePoint = enemy.StateInvestigate.onInvestigateTriggeredPosition; if (Vector3.Distance(investigatePoint, ((Component)this).transform.position) < 4f) { shootFast = true; } else { shootFast = false; } InvestigateTransformGet(); if (SemiFunc.IsMultiplayer()) { photonView.RPC("UpdateInvestigationPoint", (RpcTarget)1, new object[1] { investigatePoint }); } UpdateState(State.Investigate); } else if (currentState == State.Leave && Vector3.Distance(((Component)this).transform.position, enemy.StateInvestigate.onInvestigateTriggeredPosition) < 5f) { leaveInterruptCounter++; leaveInterruptTimer = 3f; } } public void OnTouchPlayer() { //IL_0080: 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_00cd: Unknown result type (might be due to invalid IL or missing references) if (SemiFunc.IsMasterClientOrSingleplayer() && enemy.Rigidbody.timeSinceStun > 1.5f && (currentState == State.Idle || currentState == State.Roam || currentState == State.InvestigateWalk || currentState == State.ShootEnd || currentState == State.LeaveStart || currentState == State.Leave)) { shootFast = true; investigatePoint = enemy.Rigidbody.onTouchPlayerAvatar.PlayerVisionTarget.VisionTransform.position; investigatePointHasTransform = true; investigatePointTransform = enemy.Rigidbody.onTouchPlayerAvatar.PlayerVisionTarget.VisionTransform; if (SemiFunc.IsMultiplayer()) { photonView.RPC("UpdateInvestigationPoint", (RpcTarget)1, new object[1] { investigatePoint }); } UpdateState(State.Aim); } } public void OnTouchPlayerGrabbedObject() { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) if (SemiFunc.IsMasterClientOrSingleplayer() && enemy.Rigidbody.timeSinceStun > 1.5f && (currentState == State.Idle || currentState == State.Roam || currentState == State.InvestigateWalk || currentState == State.ShootEnd || currentState == State.LeaveStart || currentState == State.Leave)) { shootFast = true; investigatePoint = enemy.Rigidbody.onTouchPlayerGrabbedObjectPosition; investigatePointHasTransform = true; investigatePointTransform = enemy.Rigidbody.onTouchPlayerGrabbedObjectAvatar.PlayerVisionTarget.VisionTransform; if (SemiFunc.IsMultiplayer()) { photonView.RPC("UpdateInvestigationPoint", (RpcTarget)1, new object[1] { investigatePoint }); } UpdateState(State.Aim); } } public void OnGrabbed() { //IL_0080: 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_00cd: Unknown result type (might be due to invalid IL or missing references) if (SemiFunc.IsMasterClientOrSingleplayer() && enemy.Rigidbody.timeSinceStun > 1.5f && (currentState == State.Idle || currentState == State.Roam || currentState == State.InvestigateWalk || currentState == State.ShootEnd || currentState == State.LeaveStart || currentState == State.Leave)) { shootFast = true; investigatePoint = enemy.Rigidbody.onGrabbedPlayerAvatar.PlayerVisionTarget.VisionTransform.position; investigatePointHasTransform = true; investigatePointTransform = enemy.Rigidbody.onGrabbedPlayerAvatar.PlayerVisionTarget.VisionTransform; if (SemiFunc.IsMultiplayer()) { photonView.RPC("UpdateInvestigationPoint", (RpcTarget)1, new object[1] { investigatePoint }); } UpdateState(State.Aim); } } private void UpdateState(State _state) { if (currentState != _state) { currentState = _state; stateImpulse = true; stateTimer = 0f; if (GameManager.Multiplayer()) { photonView.RPC("UpdateStateRPC", (RpcTarget)0, new object[1] { currentState }); } else { UpdateStateRPC(currentState); } } } private void AimLogic() { //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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_004f: 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) //IL_005c: 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_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_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: 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_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: 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_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0172: 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_017c: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: 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) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0329: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) Vector3 val = investigatePoint; if (investigatePointHasTransform) { Vector3 val2 = investigatePointTransform.position - investigatePointTransformPrevious; val2.y = 0f; val = investigatePointTransform.position + val2 * 25f; investigatePointTransformPrevious = investigatePointTransform.position; } if (investigatePointSpreadTimer <= 0f) { Vector3 val3 = Random.insideUnitSphere * Random.Range(0f, 0.5f); if (Vector3.Distance(((Component)this).transform.position, val) > 10f) { val3 = Random.insideUnitSphere * Random.Range(0.5f, 1f); } investigatePointSpreadTimer = Random.Range(0.1f, 0.5f); investigatePointSpreadTarget = val3; } else { investigatePointSpreadTimer -= Time.deltaTime; } investigatePointSpread = Vector3.Lerp(investigatePointSpread, investigatePointSpreadTarget, Time.deltaTime * 20f); val += investigatePointSpread; float num = 5f; if (shootFast) { num = 20f; } investigatePoint = Vector3.Lerp(investigatePoint, val, num * Time.deltaTime); Vector3 position = ((Component)this).transform.position; Transform transform = ((Component)this).transform; transform.position += gunAimTransform.position - verticalAimTransform.position; Quaternion rotation = ((Component)this).transform.rotation; ((Component)this).transform.LookAt(investigatePoint); ((Component)this).transform.eulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f); Quaternion rotation2 = ((Component)this).transform.rotation; ((Component)this).transform.rotation = rotation; ((Component)this).transform.position = position; investigateAimHorizontal = rotation2; Vector3 position2 = verticalAimTransform.position; Transform obj = verticalAimTransform; obj.position += gunAimTransform.position - verticalAimTransform.position; verticalAimTransform.LookAt(investigatePoint); float num2 = 45f; float x = verticalAimTransform.localEulerAngles.x; x = ((!(x < 180f)) ? Mathf.Clamp(x, 360f - num2, 360f) : Mathf.Clamp(x, 0f, num2)); verticalAimTransform.localEulerAngles = new Vector3(x, 0f, 0f); Quaternion localRotation = verticalAimTransform.localRotation; verticalAimTransform.position = position2; investigateAimVertical = localRotation; if (!SemiFunc.IsMultiplayer()) { return; } if (investigateAimVerticalRPCTimer <= 0f) { if (investigateAimVerticalPrevious != investigateAimVertical) { investigateAimVerticalRPCTimer = 1f; photonView.RPC("UpdateVerticalAimRPC", (RpcTarget)1, new object[1] { investigateAimVertical }); investigateAimVerticalPrevious = investigateAimVertical; } } else { investigateAimVerticalRPCTimer -= Time.deltaTime; } } private void HorizontalRotationLogic() { //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: 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_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) if (currentState == State.Idle || currentState == State.Roam || currentState == State.InvestigateWalk || currentState == State.LeaveStart || currentState == State.Leave) { horizontalAimSpring.damping = 0.7f; horizontalAimSpring.speed = 3f; if (((Vector3)(ref enemy.NavMeshAgent.AgentVelocity)).magnitude > 0.01f) { Quaternion rotation = ((Component)this).transform.rotation; ((Component)this).transform.rotation = Quaternion.LookRotation(((Vector3)(ref enemy.NavMeshAgent.AgentVelocity)).normalized); ((Component)this).transform.eulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f); Quaternion rotation2 = ((Component)this).transform.rotation; ((Component)this).transform.rotation = rotation; horizontalAimTarget = rotation2; } } else if (currentState == State.Aim) { if (shootFast) { horizontalAimSpring.damping = 0.9f; horizontalAimSpring.speed = 30f; } else { horizontalAimSpring.damping = 0.8f; horizontalAimSpring.speed = 20f; } horizontalAimTarget = investigateAimHorizontal; } ((Component)this).transform.rotation = SemiFunc.SpringQuaternionGet(horizontalAimSpring, horizontalAimTarget, -1f); } private void VerticalRotationLogic() { //IL_001f: 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) //IL_0040: 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) if (currentState == State.Aim || currentState == State.Shoot) { verticalAimTransform.localRotation = SemiFunc.SpringQuaternionGet(verticalAimSpring, investigateAimVertical, -1f); } else { verticalAimTransform.localRotation = SemiFunc.SpringQuaternionGet(verticalAimSpring, Quaternion.identity, -1f); } } private bool PitCheckLogic() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: 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_0075: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: 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_00c7: 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) if (pitCheckTimer <= 0f) { Vector3 normalized = ((Vector3)(ref enemy.NavMeshAgent.AgentVelocity)).normalized; if (((Vector3)(ref normalized)).magnitude > 0.1f) { pitCheckTimer = 0.5f; Vector3 normalized2 = ((Vector3)(ref enemy.NavMeshAgent.AgentVelocity)).normalized; normalized2.y = 0f; bool flag = Physics.Raycast(((Component)this).transform.position + normalized2 + Vector3.up * 1f, Vector3.down, 5f, LayerMask.op_Implicit(SemiFunc.LayerMaskGetVisionObstruct())); if (!flag) { enemy.NavMeshAgent.Warp(((Component)this).transform.position - normalized2 * 0.5f); enemy.NavMeshAgent.ResetPath(); enemy.NavMeshAgent.Agent.velocity = Vector3.zero; } return !flag; } } pitCheckTimer -= Time.deltaTime; return false; } private void HurtColliderTimer() { if (hurtColliderTimer > 0f) { hurtColliderTimer -= Time.deltaTime; if (hurtColliderTimer <= 0f) { ((Component)hurtCollider).gameObject.SetActive(false); } } } private void LineRendererLogic() { if (lineRendererActive) { lineRenderer.widthMultiplier = lineRendererWidthCurve.Evaluate(lineRendererLerp); lineRendererLerp += Time.deltaTime * 5f; if (lineRendererLerp >= 1f) { ((Component)lineRenderer).gameObject.SetActive(false); lineRendererActive = false; } } } private void ShotsFiredLogic() { if (currentState == State.Spawn || currentState == State.Leave) { shotsFired = 0; } } private void InvestigateTransformGet() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) investigatePointHasTransform = false; Collider[] array = Physics.OverlapSphere(investigatePoint, 1.5f, LayerMask.GetMask(new string[1] { "Player" }) + LayerMask.GetMask(new string[1] { "PhysGrabObject" })); Collider[] array2 = array; foreach (Collider val in array2) { if (((Component)val).CompareTag("Player")) { PlayerController componentInParent = ((Component)val).GetComponentInParent<PlayerController>(); if (Object.op_Implicit((Object)(object)componentInParent)) { investigatePointHasTransform = true; investigatePointTransform = componentInParent.playerAvatarScript.PlayerVisionTarget.VisionTransform; continue; } PlayerAvatar componentInParent2 = ((Component)val).GetComponentInParent<PlayerAvatar>(); if (Object.op_Implicit((Object)(object)componentInParent2)) { investigatePointHasTransform = true; investigatePointTransform = componentInParent2.PlayerVisionTarget.VisionTransform; } } else { PlayerTumble componentInParent3 = ((Component)val).GetComponentInParent<PlayerTumble>(); if (Object.op_Implicit((Object)(object)componentInParent3)) { investigatePointHasTransform = true; investigatePointTransform = componentInParent3.playerAvatar.PlayerVisionTarget.VisionTransform; } } } } private void LeaveInterruptLogic() { if (currentState == State.Leave) { if (leaveInterruptTimer <= 0f) { leaveInterruptCounter = 0; } else { leaveInterruptTimer -= Time.deltaTime; } } else { leaveInterruptTimer = 0f; } } [PunRPC] private void UpdateStateRPC(State _state) { currentState = _state; if (currentState == State.Spawn) { enemyHunterAnim.OnSpawn(); } } [PunRPC] private void UpdateVerticalAimRPC(Quaternion _rotation) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) investigateAimVertical = _rotation; } [PunRPC] private void ShootRPC(Vector3 _hitPosition) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0011: 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) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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_005d: 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_0071: 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) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: 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_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_0102: 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_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: 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_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) Vector3 val = _hitPosition - gunTipTransform.position; ((Component)lineRenderer).gameObject.SetActive(true); lineRenderer.SetPosition(0, gunTipTransform.position); lineRenderer.SetPosition(1, gunTipTransform.position + ((Vector3)(ref val)).normalized * 0.5f); lineRenderer.SetPosition(2, _hitPosition - ((Vector3)(ref val)).normalized * 0.5f); lineRenderer.SetPosition(3, _hitPosition); lineRendererActive = true; lineRendererLerp = 0f; ((Component)hurtCollider).transform.position = _hitPosition; ((Component)hurtCollider).transform.rotation = Quaternion.LookRotation(gunTipTransform.forward); ((Component)hurtCollider).gameObject.SetActive(true); hurtColliderTimer = 0.25f; shootEffectTransform.position = gunTipTransform.position; shootEffectTransform.rotation = gunTipTransform.rotation; Enumerator<ParticleSystem> enumerator = shootEffects.GetEnumerator(); try { while (enumerator.MoveNext()) { ParticleSystem current = enumerator.Current; current.Play(); } } finally { ((global::System.IDisposable)enumerator).Dispose(); } hitEffectTransform.position = _hitPosition; hitEffectTransform.rotation = gunTipTransform.rotation; Enumerator<ParticleSystem> enumerator2 = hitEffects.GetEnumerator(); try { while (enumerator2.MoveNext()) { ParticleSystem current2 = enumerator2.Current; current2.Play(); } } finally { ((global::System.IDisposable)enumerator2).Dispose(); } enemyHunterAlwaysActive.Trigger(); GameDirector.instance.CameraShake.ShakeDistance(5f, 3f, 15f, gunTipTransform.position, 0.5f); GameDirector.instance.CameraImpact.ShakeDistance(5f, 3f, 15f, gunTipTransform.position, 0.05f); GameDirector.instance.CameraShake.ShakeDistance(3f, 3f, 10f, _hitPosition, 0.5f); GameDirector.instance.CameraImpact.ShakeDistance(3f, 3f, 10f, _hitPosition, 0.05f); soundShoot.Play(gunTipTransform.position, 1f, 1f, 1f, 1f); soundShootGlobal.Play(gunTipTransform.position, 1f, 1f, 1f, 1f); soundHit.Play(_hitPosition, 1f, 1f, 1f, 1f); } [PunRPC] private void UpdateInvestigationPoint(Vector3 _point) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) investigatePoint = _point; } } internal class TestDummy { }