scripts
This commit is contained in:
@@ -0,0 +1,419 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using Photon;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RecRoom.Core.AI
|
||||
{
|
||||
// Token: 0x02000B7D RID: 2941
|
||||
[RequireComponent(typeof(PhotonView))]
|
||||
[RequireComponent(typeof(Enemy))]
|
||||
public abstract class EnemyRangedWeapon : global::Photon.MonoBehaviour
|
||||
{
|
||||
// Token: 0x17000970 RID: 2416
|
||||
// (get) Token: 0x0601639C RID: 91036 RVA: 0x00625BAC File Offset: 0x00623DAC
|
||||
public Transform DCBHLBNCLGP
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.projectileOriginTransform;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000971 RID: 2417
|
||||
// (get) Token: 0x0601639D RID: 91037 RVA: 0x00625BB4 File Offset: 0x00623DB4
|
||||
public float NJNINJPMKCA
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.shotSettings == null)
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
return (float)this.shotSettings.Length * this.timeBetweenBurstShots;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x140000AE RID: 174
|
||||
// (add) Token: 0x0601639E RID: 91038 RVA: 0x00625BD8 File Offset: 0x00623DD8
|
||||
// (remove) Token: 0x0601639F RID: 91039 RVA: 0x00625C10 File Offset: 0x00623E10
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
public event EnemyRangedWeapon.LHLJCBGFKKD JCCIBHHCGDD;
|
||||
|
||||
// Token: 0x140000AF RID: 175
|
||||
// (add) Token: 0x060163A0 RID: 91040 RVA: 0x00625C48 File Offset: 0x00623E48
|
||||
// (remove) Token: 0x060163A1 RID: 91041 RVA: 0x00625C80 File Offset: 0x00623E80
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
public event EnemyRangedWeapon.IPKAJLEIDKK APHBMAPOFBI;
|
||||
|
||||
// Token: 0x140000B0 RID: 176
|
||||
// (add) Token: 0x060163A2 RID: 91042 RVA: 0x00625CB8 File Offset: 0x00623EB8
|
||||
// (remove) Token: 0x060163A3 RID: 91043 RVA: 0x00625CF0 File Offset: 0x00623EF0
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
public event EnemyRangedWeapon.AAOGICJJNLG HHGOAGAPIOJ;
|
||||
|
||||
// Token: 0x140000B1 RID: 177
|
||||
// (add) Token: 0x060163A4 RID: 91044 RVA: 0x00625D28 File Offset: 0x00623F28
|
||||
// (remove) Token: 0x060163A5 RID: 91045 RVA: 0x00625D60 File Offset: 0x00623F60
|
||||
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
public event EnemyRangedWeapon.MLNPHNHBCNA OHHFNAMFFBL;
|
||||
|
||||
// Token: 0x060163A6 RID: 91046 RVA: 0x00625D98 File Offset: 0x00623F98
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
this.GLDGOBKOFMJ = base.GetComponent<Enemy>();
|
||||
if (this.GLDGOBKOFMJ == null)
|
||||
{
|
||||
global::UnityEngine.Debug.LogError(base.name + " is missing an enemy script.");
|
||||
return;
|
||||
}
|
||||
this.DIBBLFPCIFB = base.GetComponent<EnemyTeamColor>();
|
||||
}
|
||||
|
||||
// Token: 0x060163A7 RID: 91047 RVA: 0x00625DEC File Offset: 0x00623FEC
|
||||
private void Start()
|
||||
{
|
||||
this.FOKHKLBPNLH.Add(this.GLDGOBKOFMJ.BOLBONELAEF.POEDHHBIGLD);
|
||||
}
|
||||
|
||||
// Token: 0x060163A8 RID: 91048 RVA: 0x00625E0C File Offset: 0x0062400C
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
base.OnDestroy();
|
||||
this.EBMKNCNNKEC();
|
||||
}
|
||||
|
||||
// Token: 0x060163A9 RID: 91049 RVA: 0x00625E1C File Offset: 0x0062401C
|
||||
public void AuthorityFire(Vector3 MMEBLCBANIL, float KMLDGGEMJHG = -1f)
|
||||
{
|
||||
if (base.BHCCHBHNHCG && this.BAFBLDIBFMC(MMEBLCBANIL))
|
||||
{
|
||||
this.JDCLNBMADKL(MMEBLCBANIL);
|
||||
base.OMNGGJICBBI.RPC("RpcOnFire", IHCPDNLJMMD.All, new object[] { -1, MMEBLCBANIL, this.PBKGMFGBIKP, KMLDGGEMJHG });
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163AA RID: 91050 RVA: 0x00625E84 File Offset: 0x00624084
|
||||
public void AuthorityFire(EIDNMNCOAAJ MMEBLCBANIL, float KMLDGGEMJHG = -1f)
|
||||
{
|
||||
if (base.BHCCHBHNHCG && MMEBLCBANIL.AJFBOLHPEJC && this.BAFBLDIBFMC(MMEBLCBANIL.ICNCDGIKNNI))
|
||||
{
|
||||
this.JDCLNBMADKL(MMEBLCBANIL.ICNCDGIKNNI);
|
||||
base.OMNGGJICBBI.RPC("RpcOnFire", IHCPDNLJMMD.All, new object[]
|
||||
{
|
||||
MMEBLCBANIL.BADMPMDONAH,
|
||||
Vector3.zero,
|
||||
this.PBKGMFGBIKP,
|
||||
KMLDGGEMJHG
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163AB RID: 91051 RVA: 0x00625F0C File Offset: 0x0062410C
|
||||
public void StopFiring()
|
||||
{
|
||||
this.EBMKNCNNKEC();
|
||||
}
|
||||
|
||||
// Token: 0x060163AC RID: 91052 RVA: 0x00625F14 File Offset: 0x00624114
|
||||
private void JDCLNBMADKL(Vector3 FEOIAALCCLH)
|
||||
{
|
||||
if (base.BHCCHBHNHCG)
|
||||
{
|
||||
if (this.PBKGMFGBIKP == null || this.PBKGMFGBIKP.Length != this.shotSettings.Length)
|
||||
{
|
||||
this.PBKGMFGBIKP = new Vector3[this.shotSettings.Length];
|
||||
}
|
||||
global::UnityEngine.Random.InitState((int)DateTime.UtcNow.Ticks);
|
||||
for (int i = 0; i < this.shotSettings.Length; i++)
|
||||
{
|
||||
this.PBKGMFGBIKP[i] = this.IJJFFGEBAGL(FEOIAALCCLH, this.shotSettings[i].HitChance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163AD RID: 91053 RVA: 0x00625FB4 File Offset: 0x006241B4
|
||||
private bool BAFBLDIBFMC(Vector3 MMEBLCBANIL)
|
||||
{
|
||||
Vector3 vector = Vector3.ProjectOnPlane(base.transform.forward, Vector3.up);
|
||||
Vector3 vector2 = Vector3.ProjectOnPlane(MMEBLCBANIL - base.transform.position, Vector3.up);
|
||||
return vector.sqrMagnitude >= 0.001f && vector2.sqrMagnitude >= 0.001f && Vector3.Angle(vector, vector2) <= this.validShotVisionConeDegrees;
|
||||
}
|
||||
|
||||
// Token: 0x060163AE RID: 91054 RVA: 0x0062602C File Offset: 0x0062422C
|
||||
protected virtual Vector3 IJJFFGEBAGL(Vector3 FEOIAALCCLH, float IDDGADFFNPK)
|
||||
{
|
||||
float num = global::UnityEngine.Random.Range(-this.maximumFireOffsetRotationAngle, this.maximumFireOffsetRotationAngle);
|
||||
Vector3 vector = Vector3.up;
|
||||
Vector3 vector2 = Vector3.ProjectOnPlane((FEOIAALCCLH - base.transform.position).normalized, Vector3.up);
|
||||
vector = Quaternion.AngleAxis(num, vector2) * vector;
|
||||
bool flag = IDDGADFFNPK != 0f && global::UnityEngine.Random.Range(0f, 1f) <= IDDGADFFNPK;
|
||||
float num2;
|
||||
float num3;
|
||||
if (flag)
|
||||
{
|
||||
num2 = this.minimumFireHitDistance;
|
||||
num3 = this.maximumFireHitDistance;
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = this.minimumFireMissDistance;
|
||||
num3 = this.maximumFireMissDistance;
|
||||
}
|
||||
float num4 = global::UnityEngine.Random.Range(num2, num3);
|
||||
return vector * num4;
|
||||
}
|
||||
|
||||
// Token: 0x060163AF RID: 91055 RVA: 0x006260F8 File Offset: 0x006242F8
|
||||
private void LJAELPNJINO(EIDNMNCOAAJ JHJKHGCBHBI, Vector3 JEICMHIFOCK, Vector3[] OHAAPMJOGDO, float KMLDGGEMJHG)
|
||||
{
|
||||
if (this.GLDGOBKOFMJ != null && this.GLDGOBKOFMJ.CNHBPJFLDCE > 0 && this.GLDGOBKOFMJ.ACEACLFJOAA)
|
||||
{
|
||||
this.OGLLCHLHOJE(JHJKHGCBHBI, JEICMHIFOCK, OHAAPMJOGDO, KMLDGGEMJHG);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B0 RID: 91056
|
||||
protected abstract void JFIPKCICNCJ(Vector3 MMEBLCBANIL, float KMLDGGEMJHG);
|
||||
|
||||
// Token: 0x060163B1 RID: 91057 RVA: 0x00626138 File Offset: 0x00624338
|
||||
private void OGLLCHLHOJE(EIDNMNCOAAJ JHJKHGCBHBI, Vector3 JEICMHIFOCK, Vector3[] OHAAPMJOGDO, float KMLDGGEMJHG)
|
||||
{
|
||||
this.EBMKNCNNKEC();
|
||||
this.POAOIIINFJC = base.StartCoroutine(this.FBNNHNNHLOH(JHJKHGCBHBI, JEICMHIFOCK, OHAAPMJOGDO, KMLDGGEMJHG));
|
||||
}
|
||||
|
||||
// Token: 0x060163B2 RID: 91058 RVA: 0x00626158 File Offset: 0x00624358
|
||||
private void EBMKNCNNKEC()
|
||||
{
|
||||
if (this.POAOIIINFJC != null)
|
||||
{
|
||||
base.StopCoroutine(this.POAOIIINFJC);
|
||||
this.POAOIIINFJC = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B3 RID: 91059 RVA: 0x00626178 File Offset: 0x00624378
|
||||
private IEnumerator FBNNHNNHLOH(EIDNMNCOAAJ JHJKHGCBHBI, Vector3 JEICMHIFOCK, Vector3[] OHAAPMJOGDO, float KMLDGGEMJHG)
|
||||
{
|
||||
for (int i = 0; i < OHAAPMJOGDO.Length; i++)
|
||||
{
|
||||
if (this.GLDGOBKOFMJ == null || this.GLDGOBKOFMJ.CNHBPJFLDCE == 0 || !this.GLDGOBKOFMJ.ACEACLFJOAA)
|
||||
{
|
||||
break;
|
||||
}
|
||||
Vector3 vector = JEICMHIFOCK;
|
||||
if (JHJKHGCBHBI.AJFBOLHPEJC)
|
||||
{
|
||||
vector = JHJKHGCBHBI.ICNCDGIKNNI;
|
||||
}
|
||||
vector += OHAAPMJOGDO[i];
|
||||
this.HCKKFOBPFMA(vector);
|
||||
this.JFIPKCICNCJ(vector, KMLDGGEMJHG);
|
||||
if (OHAAPMJOGDO.Length > 1)
|
||||
{
|
||||
yield return new WaitForSeconds(this.timeBetweenBurstShots);
|
||||
}
|
||||
}
|
||||
this.POAOIIINFJC = null;
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x060163B4 RID: 91060 RVA: 0x006261B0 File Offset: 0x006243B0
|
||||
protected void KEPABDJPHJD(Player JEFGMHBLLKI, Player.HDOICGIKKAO ACAHIJEJKLC, IHEAKAOGCIF CACIBBKDNIH)
|
||||
{
|
||||
if (this.JCCIBHHCGDD != null)
|
||||
{
|
||||
this.JCCIBHHCGDD(this, JEFGMHBLLKI, ACAHIJEJKLC, CACIBBKDNIH);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B5 RID: 91061 RVA: 0x006261CC File Offset: 0x006243CC
|
||||
protected void HONGIOONIGM(Tool EEPPNAIKGEO, IHEAKAOGCIF CACIBBKDNIH)
|
||||
{
|
||||
if (EEPPNAIKGEO.OHGPCMJMFGC && this.APHBMAPOFBI != null)
|
||||
{
|
||||
this.APHBMAPOFBI(this, EEPPNAIKGEO, CACIBBKDNIH);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B6 RID: 91062 RVA: 0x006261F4 File Offset: 0x006243F4
|
||||
protected void LBOONNMGDKF(Enemy AKICADDPOIF, MHEBDODJGOA FJJKLPKDCPP, IHEAKAOGCIF CACIBBKDNIH)
|
||||
{
|
||||
if (AKICADDPOIF != null && this.HHGOAGAPIOJ != null)
|
||||
{
|
||||
this.HHGOAGAPIOJ(this, AKICADDPOIF, FJJKLPKDCPP, CACIBBKDNIH);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B7 RID: 91063 RVA: 0x0062621C File Offset: 0x0062441C
|
||||
protected void HCKKFOBPFMA(Vector3 MMEBLCBANIL)
|
||||
{
|
||||
Vector3 normalized = (MMEBLCBANIL - this.projectileOriginTransform.position).normalized;
|
||||
this.DCIIDBJDHEH(this.muzzleFlashParticlesPrefab, this.projectileOriginTransform.position, normalized);
|
||||
AudioManager.PlayRandom3DSFX(this.fireAudio, this.projectileOriginTransform.position, this.customAudioRolloff, false);
|
||||
if (this.OHHFNAMFFBL != null)
|
||||
{
|
||||
this.OHHFNAMFFBL(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B8 RID: 91064 RVA: 0x00626290 File Offset: 0x00624490
|
||||
protected void DCIIDBJDHEH(PooledParticle PPICLLLMNAN, Vector3 FHFHOMKFHCI, Vector3 MNNIMIJFPPJ)
|
||||
{
|
||||
if (PPICLLLMNAN != null)
|
||||
{
|
||||
PooledParticle pooledParticle = ObjectPool.NCKMBFBMBFM.Acquire<PooledParticle>(PPICLLLMNAN);
|
||||
pooledParticle.transform.position = FHFHOMKFHCI;
|
||||
pooledParticle.transform.rotation = Quaternion.LookRotation(MNNIMIJFPPJ);
|
||||
if (this.DIBBLFPCIFB != null && this.DIBBLFPCIFB.LAMCFBONKLA)
|
||||
{
|
||||
for (int i = 0; i < pooledParticle.MILLDACFPJB.Length; i++)
|
||||
{
|
||||
pooledParticle.MILLDACFPJB[i].main.startColor = this.DIBBLFPCIFB.GBLPHKFPELB;
|
||||
}
|
||||
}
|
||||
pooledParticle.Play(false);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163B9 RID: 91065 RVA: 0x00626338 File Offset: 0x00624538
|
||||
protected void DOEHAGPDBLF(ImpactDecal JAJBAKIDJGJ, Color HNOPCLEFEIG, Vector3 FHFHOMKFHCI, Vector3 CJDGNGLMGDI, GameObject BMGPDAGEDBB)
|
||||
{
|
||||
if (this.projectileImpactDecalPrefab != null)
|
||||
{
|
||||
ImpactDecal.Spawn(JAJBAKIDJGJ, HNOPCLEFEIG, FHFHOMKFHCI, CJDGNGLMGDI, BMGPDAGEDBB);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060163BA RID: 91066 RVA: 0x00626358 File Offset: 0x00624558
|
||||
[BCENPNOIAOM]
|
||||
protected void RpcOnFire(int EDEKGCLBACC, Vector3 JEICMHIFOCK, Vector3[] OHAAPMJOGDO, float KMLDGGEMJHG)
|
||||
{
|
||||
this.LJAELPNJINO(new EIDNMNCOAAJ(EDEKGCLBACC), JEICMHIFOCK, OHAAPMJOGDO, KMLDGGEMJHG);
|
||||
}
|
||||
|
||||
// Token: 0x04003E5D RID: 15965
|
||||
[SerializeField]
|
||||
private float validShotVisionConeDegrees = 60f;
|
||||
|
||||
// Token: 0x04003E5E RID: 15966
|
||||
[SerializeField]
|
||||
private EnemyRangedWeapon.ShotSettings[] shotSettings = new EnemyRangedWeapon.ShotSettings[]
|
||||
{
|
||||
new EnemyRangedWeapon.ShotSettings
|
||||
{
|
||||
HitChance = 1f
|
||||
}
|
||||
};
|
||||
|
||||
// Token: 0x04003E5F RID: 15967
|
||||
[SerializeField]
|
||||
private float timeBetweenBurstShots = 0.36f;
|
||||
|
||||
// Token: 0x04003E60 RID: 15968
|
||||
[Header("Projectile")]
|
||||
[SerializeField]
|
||||
protected Transform projectileOriginTransform;
|
||||
|
||||
// Token: 0x04003E61 RID: 15969
|
||||
[SerializeField]
|
||||
[Header("Fire Accuracy")]
|
||||
protected float minimumFireHitDistance = 0.09f;
|
||||
|
||||
// Token: 0x04003E62 RID: 15970
|
||||
[SerializeField]
|
||||
protected float maximumFireHitDistance = 0.11f;
|
||||
|
||||
// Token: 0x04003E63 RID: 15971
|
||||
[SerializeField]
|
||||
protected float minimumFireMissDistance = 0.175f;
|
||||
|
||||
// Token: 0x04003E64 RID: 15972
|
||||
[SerializeField]
|
||||
protected float maximumFireMissDistance = 0.4f;
|
||||
|
||||
// Token: 0x04003E65 RID: 15973
|
||||
[SerializeField]
|
||||
protected float maximumFireOffsetRotationAngle = 120f;
|
||||
|
||||
// Token: 0x04003E66 RID: 15974
|
||||
[Header("Fire Feedback")]
|
||||
[SerializeField]
|
||||
protected PooledParticle muzzleFlashParticlesPrefab;
|
||||
|
||||
// Token: 0x04003E67 RID: 15975
|
||||
[SerializeField]
|
||||
protected RecRoomAudioClip[] fireAudio;
|
||||
|
||||
// Token: 0x04003E68 RID: 15976
|
||||
[Header("Impact Feedback")]
|
||||
[SerializeField]
|
||||
protected ImpactDecal projectileImpactDecalPrefab;
|
||||
|
||||
// Token: 0x04003E69 RID: 15977
|
||||
[SerializeField]
|
||||
protected PooledParticle projectileImpactParticlesPrefab;
|
||||
|
||||
// Token: 0x04003E6A RID: 15978
|
||||
[SerializeField]
|
||||
protected RecRoomAudioClip projectileImpactAudio;
|
||||
|
||||
// Token: 0x04003E6B RID: 15979
|
||||
[Header("Audio rolloff")]
|
||||
[SerializeField]
|
||||
protected AudioRolloff customAudioRolloff;
|
||||
|
||||
// Token: 0x04003E70 RID: 15984
|
||||
protected Enemy GLDGOBKOFMJ;
|
||||
|
||||
// Token: 0x04003E71 RID: 15985
|
||||
protected EnemyTeamColor DIBBLFPCIFB;
|
||||
|
||||
// Token: 0x04003E72 RID: 15986
|
||||
protected List<Rigidbody> FOKHKLBPNLH = new List<Rigidbody>();
|
||||
|
||||
// Token: 0x04003E73 RID: 15987
|
||||
private Vector3[] PBKGMFGBIKP;
|
||||
|
||||
// Token: 0x04003E74 RID: 15988
|
||||
private Coroutine POAOIIINFJC;
|
||||
|
||||
// Token: 0x02000B7E RID: 2942
|
||||
private enum PHHAPHPFKNC
|
||||
{
|
||||
// Token: 0x04003E76 RID: 15990
|
||||
SINGLE_SHOT,
|
||||
// Token: 0x04003E77 RID: 15991
|
||||
BURST
|
||||
}
|
||||
|
||||
// Token: 0x02000B7F RID: 2943
|
||||
// (Invoke) Token: 0x060163BC RID: 91068
|
||||
public delegate void LHLJCBGFKKD(EnemyRangedWeapon PDNIEPGJLNP, Player IPLDGGMENKL, Player.HDOICGIKKAO OJCFELLMIFA, IHEAKAOGCIF CACIBBKDNIH);
|
||||
|
||||
// Token: 0x02000B80 RID: 2944
|
||||
// (Invoke) Token: 0x060163C0 RID: 91072
|
||||
public delegate void IPKAJLEIDKK(EnemyRangedWeapon PDNIEPGJLNP, Tool EEPPNAIKGEO, IHEAKAOGCIF CACIBBKDNIH);
|
||||
|
||||
// Token: 0x02000B81 RID: 2945
|
||||
// (Invoke) Token: 0x060163C4 RID: 91076
|
||||
public delegate void AAOGICJJNLG(EnemyRangedWeapon PDNIEPGJLNP, Enemy AKICADDPOIF, MHEBDODJGOA OMPOICMBDBP, IHEAKAOGCIF CACIBBKDNIH);
|
||||
|
||||
// Token: 0x02000B82 RID: 2946
|
||||
// (Invoke) Token: 0x060163C8 RID: 91080
|
||||
public delegate void MLNPHNHBCNA(EnemyRangedWeapon PDNIEPGJLNP);
|
||||
|
||||
// Token: 0x02000B83 RID: 2947
|
||||
[Serializable]
|
||||
private struct ShotSettings
|
||||
{
|
||||
// Token: 0x04003E78 RID: 15992
|
||||
[Range(0f, 1f)]
|
||||
public float HitChance;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user