Files
Dec2017-Script-Dump/Assembly-CSharp/RecRoom/Activities/Quest/QuestGoblinRangedEnemy.cs
T
2026-06-04 11:42:34 +02:00

896 lines
47 KiB
C#

using System;
using RecRoom.Core.AI;
using UnityEngine;
namespace RecRoom.Activities.Quest
{
// Token: 0x02000126 RID: 294
public class QuestGoblinRangedEnemy : Enemy
{
// Token: 0x06003D93 RID: 15763 RVA: 0x00138304 File Offset: 0x00136504
private void KFCEGODAOJC()
{
if (base.IGIPCHFCFNN())
{
if (this.HEPCLEMEHBC.HFOKKCOENOF() || !base.BKHECJODPHF.NKJPIHMAJGI() || base.BKHECJODPHF.JAHIBHNGMHE)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(1);
return;
}
if (base.LMDJJEGNOGM.AEAKFIBHEPE() && base.BKHECJODPHF.HAODGLCKEOF())
{
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(base.BKHECJODPHF.OGCGDMDPHBM));
}
}
}
// Token: 0x06003D94 RID: 15764 RVA: 0x0013839C File Offset: 0x0013659C
private Vector3 HIJGLFEIICM()
{
Vector3 vector = Vector3.zero;
Vector3 vector2 = Vector3.ProjectOnPlane(this.ECFDNGMPNOB - base.transform.position, Vector3.up);
float magnitude = vector2.magnitude;
if (magnitude >= this.maxDashDistance)
{
vector = vector2 / magnitude;
}
else
{
vector = global::UnityEngine.Random.onUnitSphere;
}
float num = global::UnityEngine.Random.Range(this.minDashDistance, this.maxDashDistance);
return base.KHBMLLEPOML(base.BOLBONELAEF.CIGPHKLAAOD + vector * num);
}
// Token: 0x06003D95 RID: 15765 RVA: 0x00138428 File Offset: 0x00136628
protected override void Awake()
{
base.Awake();
this.enemyAudio.BMBFCDOIIMM = !base.BKHECJODPHF.OGCGDMDPHBM;
this.EPOFAAICKOP = new LHLLJPPCDKA<Vector3>(this, "AO", Vector3.zero, IKCAJLLAFML.AUTHORITY, null);
base.BKHECJODPHF.HAMIGCDKOKE = this.movementAngularSpeed;
this.HEPCLEMEHBC = new AONMNAEOJAL(this, "B", IKCAJLLAFML.AUTHORITY);
this.OIGGPMIJBIL = new PNONBEAIBHA("B", IKCAJLLAFML.AUTHORITY);
this.OIGGPMIJBIL.AGLMMKOFICI(ushort.MaxValue, null, null, null);
this.OIGGPMIJBIL.AGLMMKOFICI(0, new ANMJLCILKDJ.NCMAEMHOHDG(this.GMDBMKECCEK), new ANMJLCILKDJ.NCMAEMHOHDG(this.EPMNFNGPBBG), new ANMJLCILKDJ.PLBLFEEANOO(this.KLEBDALIDNB));
this.OIGGPMIJBIL.AGLMMKOFICI(1, new ANMJLCILKDJ.NCMAEMHOHDG(this.BNDMHFBEPHI), new ANMJLCILKDJ.NCMAEMHOHDG(this.BGAPMMICPIB), new ANMJLCILKDJ.PLBLFEEANOO(this.JCLJLBEHMKN));
this.OIGGPMIJBIL.AGLMMKOFICI(2, new ANMJLCILKDJ.NCMAEMHOHDG(this.NLDOBJMLIMD), null, new ANMJLCILKDJ.PLBLFEEANOO(this.MBJAANBJLGG));
this.OIGGPMIJBIL.AGLMMKOFICI(3, new ANMJLCILKDJ.NCMAEMHOHDG(this.DKPIAAIOLPL), new ANMJLCILKDJ.NCMAEMHOHDG(this.DMDLHLPCPFP), new ANMJLCILKDJ.PLBLFEEANOO(this.KFJAGMBPEFB));
}
// Token: 0x06003D96 RID: 15766 RVA: 0x00138568 File Offset: 0x00136768
protected override void Update()
{
base.Update();
this.OIGGPMIJBIL.DLBPEOILIFL();
this.HEPCLEMEHBC.KHJKJGDBPMF();
}
// Token: 0x06003D97 RID: 15767 RVA: 0x00138588 File Offset: 0x00136788
protected override void CBAEJNFNPGJ()
{
base.CBAEJNFNPGJ();
if (base.BHCCHBHNHCG)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(ushort.MaxValue);
}
}
// Token: 0x06003D98 RID: 15768 RVA: 0x001385AC File Offset: 0x001367AC
protected virtual void HDCAMLJLKHC()
{
base.Start();
this.OIGGPMIJBIL.PGELJEHELFN(this, 129);
}
// Token: 0x06003D99 RID: 15769 RVA: 0x001385C8 File Offset: 0x001367C8
protected virtual void LHJGDDIJODP(bool BCKMKPCENOL)
{
base.DKCKOHPCOBL(BCKMKPCENOL);
if (BCKMKPCENOL && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.BOAKFKEHGHP = true;
}
}
// Token: 0x06003D9A RID: 15770 RVA: 0x001385F4 File Offset: 0x001367F4
private void DMDLHLPCPFP(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.StopPathing();
}
// Token: 0x06003D9B RID: 15771 RVA: 0x00138604 File Offset: 0x00136804
private void AHKJDICBCMJ()
{
if (base.GANDPDNCOKF())
{
if (this.HEPCLEMEHBC.HFOKKCOENOF() || !base.BKHECJODPHF.PathIsValid() || base.BKHECJODPHF.JAHIBHNGMHE)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(0);
return;
}
if (base.LMDJJEGNOGM.AEAKFIBHEPE() && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(base.BKHECJODPHF.OGCGDMDPHBM));
}
}
}
// Token: 0x06003D9C RID: 15772 RVA: 0x0013869C File Offset: 0x0013689C
protected override void EKEGOFIPIPE()
{
base.EKEGOFIPIPE();
if (base.BHCCHBHNHCG)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(0);
}
}
// Token: 0x06003D9D RID: 15773 RVA: 0x001386BC File Offset: 0x001368BC
private void MMBILNPCDCD(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.FMFCBADCFCK = this.dashSpeed;
base.BKHECJODPHF.GKJLNANPDNC = this.maxDashForce;
if (base.DFJFKOLLEMK())
{
base.BKHECJODPHF.Path(this.FGGKEADIOBI(), this.dashSlowdownDistance, 360f, true);
this.HEPCLEMEHBC.GMFIHNFPAFM(this.dashTimeout);
}
}
// Token: 0x06003D9E RID: 15774 RVA: 0x00138724 File Offset: 0x00136924
private void DKPIAAIOLPL(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.FMFCBADCFCK = this.dashSpeed;
base.BKHECJODPHF.GKJLNANPDNC = this.maxDashForce;
if (base.BHCCHBHNHCG)
{
base.BKHECJODPHF.Path(this.HIJGLFEIICM(), this.dashSlowdownDistance, 0.01f, false);
this.HEPCLEMEHBC.BJOJLPHBGMN(this.dashTimeout);
}
}
// Token: 0x06003D9F RID: 15775 RVA: 0x0013878C File Offset: 0x0013698C
private void NNMOELKIFCE(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.LFMMGPCLGCL();
base.BKHECJODPHF.FMFCBADCFCK = this.movementSpeed;
}
// Token: 0x06003DA0 RID: 15776 RVA: 0x001387AC File Offset: 0x001369AC
private Vector3 FJNEHIELLEJ()
{
Vector3 vector = Vector3.zero;
Vector3 vector2 = Vector3.ProjectOnPlane(this.ECFDNGMPNOB - base.transform.position, Vector3.up);
float magnitude = vector2.magnitude;
if (magnitude >= this.maxDashDistance)
{
vector = vector2 / magnitude;
}
else
{
vector = global::UnityEngine.Random.onUnitSphere;
}
float num = global::UnityEngine.Random.Range(this.minDashDistance, this.maxDashDistance);
return base.KHBMLLEPOML(base.BOLBONELAEF.JHBFKKAFPFG() + vector * num);
}
// Token: 0x06003DA1 RID: 15777 RVA: 0x00138838 File Offset: 0x00136A38
private void KLEBDALIDNB()
{
if (base.BHCCHBHNHCG)
{
EIDNMNCOAAJ eidnmncoaaj = this.IJCDBKLCFIE(false);
if (eidnmncoaaj.AJFBOLHPEJC)
{
base.LMDJJEGNOGM = eidnmncoaaj;
base.GPBFOEHJJFO = EIDNMNCOAAJ.CGNKKAKJIJL;
this.OIGGPMIJBIL.BKBFIGCPIMI(1);
}
else if (this.pathTowardsPlayerCentroidToFindTarget)
{
base.HCGGDDPJBHE(this.movementSlowdownDistance);
}
else
{
this.OIGGPMIJBIL.BKBFIGCPIMI(3);
}
}
}
// Token: 0x06003DA2 RID: 15778 RVA: 0x001388B0 File Offset: 0x00136AB0
private void BKGHDECAGFJ(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.enemyAnimator.OAIIGJBMHID(false);
this.enemyAudio.DKPPAPIIFMM();
if (base.GANDPDNCOKF())
{
this.HEPCLEMEHBC.OOEPCEFMAKA(this.attackChargeDuration);
}
}
// Token: 0x17000119 RID: 281
// (get) Token: 0x06003DA3 RID: 15779 RVA: 0x001388E8 File Offset: 0x00136AE8
// (set) Token: 0x06003DB6 RID: 15798 RVA: 0x00138D20 File Offset: 0x00136F20
private Vector3 ECFDNGMPNOB
{
get
{
return this.EPOFAAICKOP.CPIBGJLHLBL();
}
set
{
this.EPOFAAICKOP.MEAINJPIECA(value);
}
}
// Token: 0x06003DA4 RID: 15780 RVA: 0x001388F8 File Offset: 0x00136AF8
private void OJMFOENMIOP()
{
if (base.BHCCHBHNHCG)
{
if (this.HEPCLEMEHBC.ALEKFIMMFPH() || !base.BKHECJODPHF.PathIsValid() || base.BKHECJODPHF.JAHIBHNGMHE)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(0);
return;
}
if (base.LMDJJEGNOGM.PBDDCCOAGOG() && base.BKHECJODPHF.HAODGLCKEOF())
{
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(!base.BKHECJODPHF.OGCGDMDPHBM));
}
}
}
// Token: 0x06003DA5 RID: 15781 RVA: 0x00138990 File Offset: 0x00136B90
private void PMJLAAGPELD()
{
if (base.JNOCCMDBMIO())
{
if (!base.LMDJJEGNOGM.AJFBOLHPEJC || this.HEPCLEMEHBC.OAJDHNPMNCN())
{
this.OIGGPMIJBIL.BKBFIGCPIMI(3);
return;
}
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(base.BKHECJODPHF.OGCGDMDPHBM));
}
}
// Token: 0x06003DA6 RID: 15782 RVA: 0x001389F8 File Offset: 0x00136BF8
private void CPIECJFKNFB(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.StopLooking();
base.BKHECJODPHF.FMFCBADCFCK = this.movementSpeed;
}
// Token: 0x06003DA7 RID: 15783 RVA: 0x00138A18 File Offset: 0x00136C18
private void PIEDMBEHIMP(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.StopLooking();
base.BKHECJODPHF.FMFCBADCFCK = this.movementSpeed;
}
// Token: 0x06003DA8 RID: 15784 RVA: 0x00138A38 File Offset: 0x00136C38
private void IPCCPEDJMPK(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.BGJLOGIPKCH();
if (base.JNOCCMDBMIO())
{
this.HEPCLEMEHBC.PBDGDJIFMOK(this.attackDuration);
}
}
// Token: 0x06003DA9 RID: 15785 RVA: 0x00138A5C File Offset: 0x00136C5C
private Vector3 FGGKEADIOBI()
{
Vector3 vector = Vector3.zero;
Vector3 vector2 = Vector3.ProjectOnPlane(this.ECFDNGMPNOB - base.transform.position, Vector3.up);
float magnitude = vector2.magnitude;
if (magnitude >= this.maxDashDistance)
{
vector = vector2 / magnitude;
}
else
{
vector = global::UnityEngine.Random.onUnitSphere;
}
float num = global::UnityEngine.Random.Range(this.minDashDistance, this.maxDashDistance);
return base.KHBMLLEPOML(base.BOLBONELAEF.JHBFKKAFPFG() + vector * num);
}
// Token: 0x06003DAA RID: 15786 RVA: 0x00138AE8 File Offset: 0x00136CE8
private void ACPGDHIJJHG(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.NHBOKDINFMG();
}
// Token: 0x06003DAB RID: 15787 RVA: 0x00138AF8 File Offset: 0x00136CF8
private void LFMPHIHPCIC(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.StopPathing();
}
// Token: 0x06003DAC RID: 15788 RVA: 0x00138B08 File Offset: 0x00136D08
private void KFJAGMBPEFB()
{
if (base.BHCCHBHNHCG)
{
if (this.HEPCLEMEHBC.CGELFKLLMBA || !base.BKHECJODPHF.PathIsValid() || base.BKHECJODPHF.JAHIBHNGMHE)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(0);
return;
}
if (base.LMDJJEGNOGM.AJFBOLHPEJC && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(!base.BKHECJODPHF.OGCGDMDPHBM));
}
}
}
// Token: 0x06003DAD RID: 15789 RVA: 0x00138BA0 File Offset: 0x00136DA0
private void OGLPHFEBONN(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.StopPathing();
}
// Token: 0x06003DAE RID: 15790 RVA: 0x00138BB0 File Offset: 0x00136DB0
private void NLDOBJMLIMD(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.BGJLOGIPKCH();
if (base.BHCCHBHNHCG)
{
this.HEPCLEMEHBC.BJOJLPHBGMN(this.attackDuration);
}
}
// Token: 0x06003DAF RID: 15791 RVA: 0x00138BD4 File Offset: 0x00136DD4
protected virtual void LHMGNEDHIHI()
{
base.Update();
this.OIGGPMIJBIL.DLBPEOILIFL();
this.HEPCLEMEHBC.AOKPPLPAKIO();
}
// Token: 0x06003DB0 RID: 15792 RVA: 0x00138BF4 File Offset: 0x00136DF4
private void JHPNPJENLEK(Vector3 NOBAPCOKFIL)
{
this.EPOFAAICKOP.MEAINJPIECA(NOBAPCOKFIL);
}
// Token: 0x06003DB1 RID: 15793 RVA: 0x00138C04 File Offset: 0x00136E04
protected override void LDEOLFDIEDE()
{
base.LDEOLFDIEDE();
if (base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.BOAKFKEHGHP = true;
}
}
// Token: 0x06003DB2 RID: 15794 RVA: 0x00138C28 File Offset: 0x00136E28
protected virtual void JJEHDEOKOBB()
{
base.Start();
this.OIGGPMIJBIL.FLHFCMCNLEK(this, (ushort)(-59));
}
// Token: 0x06003DB3 RID: 15795 RVA: 0x00138C44 File Offset: 0x00136E44
private void MPJCAMOCMFP(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.BGJLOGIPKCH();
if (base.BHCCHBHNHCG)
{
this.HEPCLEMEHBC.OOEPCEFMAKA(this.attackDuration);
}
}
// Token: 0x06003DB4 RID: 15796 RVA: 0x00138C68 File Offset: 0x00136E68
private void NEADBPBOBNG()
{
if (base.BHCCHBHNHCG)
{
if (this.HEPCLEMEHBC.OAJDHNPMNCN() || !base.BKHECJODPHF.NKJPIHMAJGI() || base.BKHECJODPHF.JAHIBHNGMHE)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(0);
return;
}
if (base.LMDJJEGNOGM.AEAKFIBHEPE() && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(base.BKHECJODPHF.HAODGLCKEOF()));
}
}
}
// Token: 0x06003DB5 RID: 15797 RVA: 0x00138D00 File Offset: 0x00136F00
protected virtual void BJCNKOANMLE()
{
base.EKEGOFIPIPE();
if (base.IGIPCHFCFNN())
{
this.OIGGPMIJBIL.BKBFIGCPIMI(1);
}
}
// Token: 0x06003DB7 RID: 15799 RVA: 0x00138D30 File Offset: 0x00136F30
private void BKHMBCEGJJP(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
this.enemyAnimator.DABAHHNLMAB(true);
}
// Token: 0x06003DB8 RID: 15800 RVA: 0x00138D40 File Offset: 0x00136F40
private void AJNMCLLJAKJ(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.NHBOKDINFMG();
}
// Token: 0x06003DB9 RID: 15801 RVA: 0x00138D50 File Offset: 0x00136F50
private void NPDEGLHAIBO(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.BGJLOGIPKCH();
if (base.GANDPDNCOKF())
{
this.HEPCLEMEHBC.GMFIHNFPAFM(this.attackDuration);
}
}
// Token: 0x06003DBA RID: 15802 RVA: 0x00138D74 File Offset: 0x00136F74
private void BCPPGMJDEHN(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.StopPathing();
}
// Token: 0x06003DBB RID: 15803 RVA: 0x00138D84 File Offset: 0x00136F84
private void IIGAOJHLFNB()
{
if (base.DFJFKOLLEMK())
{
if (!base.LMDJJEGNOGM.AEAKFIBHEPE() || this.HEPCLEMEHBC.OAJDHNPMNCN())
{
this.OIGGPMIJBIL.BKBFIGCPIMI(2);
return;
}
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(base.BKHECJODPHF.HAODGLCKEOF()));
}
}
// Token: 0x06003DBC RID: 15804 RVA: 0x00138DEC File Offset: 0x00136FEC
protected virtual void FLIBGBGHKCG()
{
base.Start();
this.OIGGPMIJBIL.PGELJEHELFN(this, 20);
}
// Token: 0x06003DBD RID: 15805 RVA: 0x00138E08 File Offset: 0x00137008
protected override void DJDKGFBKIDN(bool BCKMKPCENOL)
{
base.DJDKGFBKIDN(BCKMKPCENOL);
if (base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.BOAKFKEHGHP = false;
}
}
// Token: 0x06003DBE RID: 15806 RVA: 0x00138E30 File Offset: 0x00137030
protected virtual void JLOMELEDCLK()
{
base.Awake();
this.enemyAudio.BMBFCDOIIMM = base.BKHECJODPHF.OGCGDMDPHBM;
this.EPOFAAICKOP = new LHLLJPPCDKA<Vector3>(this, "TakePictureButton", Vector3.zero, IKCAJLLAFML.AUTHORITY, null);
base.BKHECJODPHF.HAMIGCDKOKE = this.movementAngularSpeed;
this.HEPCLEMEHBC = new AONMNAEOJAL(this, "Quest Room ", IKCAJLLAFML.MASTER);
this.OIGGPMIJBIL = new PNONBEAIBHA("RpcShatter", IKCAJLLAFML.MASTER);
this.OIGGPMIJBIL.AGLMMKOFICI((ushort)(-84), null, null, null);
this.OIGGPMIJBIL.AGLMMKOFICI(1, new ANMJLCILKDJ.NCMAEMHOHDG(this.CPIECJFKNFB), new ANMJLCILKDJ.NCMAEMHOHDG(this.EPMNFNGPBBG), new ANMJLCILKDJ.PLBLFEEANOO(this.MDCELLMKGEH));
this.OIGGPMIJBIL.AGLMMKOFICI(1, new ANMJLCILKDJ.NCMAEMHOHDG(this.BKGHDECAGFJ), new ANMJLCILKDJ.NCMAEMHOHDG(this.BGAPMMICPIB), new ANMJLCILKDJ.PLBLFEEANOO(this.CBGGAGIGBDE));
this.OIGGPMIJBIL.AGLMMKOFICI(2, new ANMJLCILKDJ.NCMAEMHOHDG(this.IPCCPEDJMPK), null, new ANMJLCILKDJ.PLBLFEEANOO(this.MBJAANBJLGG));
this.OIGGPMIJBIL.AGLMMKOFICI(2, new ANMJLCILKDJ.NCMAEMHOHDG(this.MMBILNPCDCD), new ANMJLCILKDJ.NCMAEMHOHDG(this.OAACFLDDACI), new ANMJLCILKDJ.PLBLFEEANOO(this.OJMFOENMIOP));
}
// Token: 0x06003DBF RID: 15807 RVA: 0x00138F70 File Offset: 0x00137170
protected virtual void JHCLJIABPPJ()
{
base.Awake();
this.enemyAudio.FDHCPFKHIJK(base.BKHECJODPHF.OGCGDMDPHBM);
this.EPOFAAICKOP = new LHLLJPPCDKA<Vector3>(this, "I shouldn't exist. Kill me please. I'm for testing only.", Vector3.zero, IKCAJLLAFML.MASTER, null);
base.BKHECJODPHF.OOMPHKBPMIG(this.movementAngularSpeed);
this.HEPCLEMEHBC = new AONMNAEOJAL(this, "FIRST_TIME_IN_FLAGS", IKCAJLLAFML.MASTER);
this.OIGGPMIJBIL = new PNONBEAIBHA("<pre style=\"font-family:Consolas;font-size:13;color:black;background:silver;\"><span style=\"color:blue;\">using</span>&nbsp;System;\r\n<span style=\"color:blue;\">using</span>&nbsp;System.Collections.Generic;\r\n\r\n<span style=\"color:blue;\">using</span>&nbsp;UnityEngine;\r\n<span style=\"color:blue;\">using</span>&nbsp;BestHTTP.SignalR;\r\n<span style=\"color:blue;\">using</span>&nbsp;BestHTTP.SignalR.Hubs;\r\n<span style=\"color:blue;\">using</span>&nbsp;BestHTTP.SignalR.Messages;\r\n<span style=\"color:blue;\">using</span>&nbsp;BestHTTP.SignalR.Authentication;\r\n\r\n<span style=\"color:blue;\">class</span>&nbsp;<span style=\"color:#2b91af;\">AuthenticationSample</span>&nbsp;:&nbsp;<span style=\"color:#2b91af;\">MonoBehaviour</span>\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">readonly</span>&nbsp;<span style=\"color:#2b91af;\">Uri</span>&nbsp;URI&nbsp;=&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">Uri</span>(<span style=\"color:#a31515;\">&quot;https://besthttpsignalr.azurewebsites.net/signalr&quot;</span>);\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;Private&nbsp;Fields\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Reference&nbsp;to&nbsp;the&nbsp;SignalR&nbsp;Connection</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">Connection</span>&nbsp;signalRConnection;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">string</span>&nbsp;userName&nbsp;=&nbsp;<span style=\"color:blue;\">string</span>.Empty;\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">string</span>&nbsp;role&nbsp;=&nbsp;<span style=\"color:blue;\">string</span>.Empty;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">Vector2</span>&nbsp;scrollPos;\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span>\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;Unity&nbsp;Events\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;Start()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Create&nbsp;the&nbsp;SignalR&nbsp;connection,&nbsp;and&nbsp;pass&nbsp;the&nbsp;hubs&nbsp;that&nbsp;we&nbsp;want&nbsp;to&nbsp;connect&nbsp;to</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection&nbsp;=&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">Connection</span>(URI,&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;noauthhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&quot;</span>),\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;invokeauthhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&nbsp;Invoked&nbsp;By&nbsp;Admin&nbsp;or&nbsp;Invoker&quot;</span>),\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;authhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&nbsp;Requiring&nbsp;Authentication&nbsp;to&nbsp;Send&nbsp;or&nbsp;Receive&quot;</span>),\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;inheritauthhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&nbsp;Requiring&nbsp;Authentication&nbsp;to&nbsp;Send&nbsp;or&nbsp;Receive&nbsp;Because&nbsp;of&nbsp;Inheritance&quot;</span>),\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;incomingauthhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&nbsp;Requiring&nbsp;Authentication&nbsp;to&nbsp;Send&quot;</span>),\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;adminauthhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&nbsp;Requiring&nbsp;Admin&nbsp;Membership&nbsp;to&nbsp;Send&nbsp;or&nbsp;Receive&quot;</span>),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>(<span style=\"color:#a31515;\">&quot;userandroleauthhub&quot;</span>,&nbsp;<span style=\"color:#a31515;\">&quot;Messages&nbsp;Requiring&nbsp;Name&nbsp;to&nbsp;be&nbsp;\\&quot;User\\&quot;&nbsp;and&nbsp;Role&nbsp;to&nbsp;be&nbsp;\\&quot;Admin\\&quot;&nbsp;to&nbsp;Send&nbsp;or&nbsp;Receive&quot;</span>));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Set&nbsp;the&nbsp;authenticator&nbsp;if&nbsp;we&nbsp;have&nbsp;valid&nbsp;fields</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(!<span style=\"color:blue;\">string</span>.IsNullOrEmpty(userName)&nbsp;&amp;&amp;&nbsp;!<span style=\"color:blue;\">string</span>.IsNullOrEmpty(role))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection.AuthenticationProvider&nbsp;=&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">HeaderAuthenticator</span>(userName,&nbsp;role);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Set&nbsp;up&nbsp;event&nbsp;handler</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection.OnConnected&nbsp;+=&nbsp;signalRConnection_OnConnected;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Start&nbsp;to&nbsp;connect&nbsp;to&nbsp;the&nbsp;server.</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection.Open();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnDestroy()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Close&nbsp;the&nbsp;connection&nbsp;when&nbsp;we&nbsp;are&nbsp;closing&nbsp;the&nbsp;sample</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection.Close();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;OnGUI()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUIHelper</span>.DrawArea(<span style=\"color:#2b91af;\">GUIHelper</span>.ClientArea,&nbsp;<span style=\"color:blue;\">true</span>,&nbsp;()&nbsp;=&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollPos&nbsp;=&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.BeginScrollView(scrollPos,&nbsp;<span style=\"color:blue;\">false</span>,&nbsp;<span style=\"color:blue;\">false</span>);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.BeginVertical();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(signalRConnection.AuthenticationProvider&nbsp;==&nbsp;<span style=\"color:blue;\">null</span>)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.BeginHorizontal();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Label(<span style=\"color:#a31515;\">&quot;Username&nbsp;(Enter&nbsp;&#39;User&#39;):&quot;</span>);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userName&nbsp;=&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.TextField(userName,&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.MinWidth(100));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.EndHorizontal();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.BeginHorizontal();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.Label(<span style=\"color:#a31515;\">&quot;Roles&nbsp;(Enter&nbsp;&#39;Invoker&#39;&nbsp;or&nbsp;&#39;Admin&#39;):&quot;</span>);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role&nbsp;=&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.TextField(role,&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.MinWidth(100));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.EndHorizontal();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">if</span>&nbsp;(<span style=\"color:#2b91af;\">GUILayout</span>.Button(<span style=\"color:#a31515;\">&quot;Log&nbsp;in&quot;</span>))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restart();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">for</span>&nbsp;(<span style=\"color:blue;\">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;signalRConnection.Hubs.Length;&nbsp;++i)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(signalRConnection.Hubs[i]&nbsp;<span style=\"color:blue;\">as</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>).Draw();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.EndVertical();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">GUILayout</span>.EndScrollView();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span>\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Called&nbsp;when&nbsp;we&nbsp;successfully&nbsp;connected&nbsp;to&nbsp;the&nbsp;server.</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;signalRConnection_OnConnected(<span style=\"color:#2b91af;\">Connection</span>&nbsp;manager)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;call&nbsp;&#39;InvokedFromClient&#39;&nbsp;on&nbsp;all&nbsp;hubs</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">for</span>&nbsp;(<span style=\"color:blue;\">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;signalRConnection.Hubs.Length;&nbsp;++i)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(signalRConnection.Hubs[i]&nbsp;<span style=\"color:blue;\">as</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>).InvokedFromClient();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Helper&nbsp;function&nbsp;to&nbsp;do&nbsp;a&nbsp;hard-restart&nbsp;to&nbsp;the&nbsp;server.</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">void</span>&nbsp;Restart()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Clean&nbsp;up</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection.OnConnected&nbsp;-=&nbsp;signalRConnection_OnConnected;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Close&nbsp;current&nbsp;connection</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection.Close();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signalRConnection&nbsp;=&nbsp;<span style=\"color:blue;\">null</span>;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;start&nbsp;again,&nbsp;with&nbsp;authentication&nbsp;if&nbsp;we&nbsp;filled&nbsp;in&nbsp;all&nbsp;input&nbsp;fields</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\r\n<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Hub&nbsp;implementation&nbsp;for&nbsp;the&nbsp;authentication&nbsp;demo.&nbsp;All&nbsp;hubs&nbsp;that&nbsp;we&nbsp;connect&nbsp;to&nbsp;has&nbsp;the&nbsp;same&nbsp;server&nbsp;and&nbsp;client&nbsp;side&nbsp;functions.</span>\r\n<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n<span style=\"color:blue;\">class</span>&nbsp;<span style=\"color:#2b91af;\">BaseHub</span>&nbsp;:&nbsp;<span style=\"color:#2b91af;\">Hub</span>\r\n{\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;Private&nbsp;Fields\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Hub&nbsp;specific&nbsp;title</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">private</span>&nbsp;<span style=\"color:blue;\">string</span>&nbsp;Title;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">private</span>&nbsp;<span style=\"color:#2b91af;\">GUIMessageList</span>&nbsp;messages&nbsp;=&nbsp;<span style=\"color:blue;\">new</span>&nbsp;<span style=\"color:#2b91af;\">GUIMessageList</span>();\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</span>\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">public</span>&nbsp;BaseHub(<span style=\"color:blue;\">string</span>&nbsp;name,&nbsp;<span style=\"color:blue;\">string</span>&nbsp;title)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;<span style=\"color:blue;\">base</span>(name)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">this</span>.Title&nbsp;=&nbsp;title;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;Called&nbsp;by&nbsp;the&nbsp;Connection&nbsp;class&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;set&nbsp;up&nbsp;mappings.</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:gray;\">///</span><span style=\"color:green;\">&nbsp;</span><span style=\"color:gray;\">&lt;/summary&gt;</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">public</span>&nbsp;<span style=\"color:blue;\">override</span>&nbsp;<span style=\"color:blue;\">void</span>&nbsp;Setup()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:green;\">//&nbsp;Map&nbsp;the&nbsp;server-callable&nbsp;method&nbsp;names&nbsp;to&nbsp;the&nbsp;real&nbsp;functions.</span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On(<span style=\"color:#a31515;\">&quot;joined&quot;</span>,&nbsp;Joined);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On(<span style=\"color:#a31515;\">&quot;rejoined&quot;</span>,&nbsp;Rejoined);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On(<span style=\"color:#a31515;\">&quot;left&quot;</span>,&nbsp;Left);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On(<span style=\"color:#a31515;\">&quot;invoked&quot;</span>,&nbsp;Invoked);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n<span style=\"color:blue;\">&nbsp;&nbsp;&nbsp;&nbsp;#region</span>&nbsp;Server&nbsp;Called&nbsp;Functions\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:blue;\">private</span>&nbsp;<span style=\"color:blue;\">void</span>&nbsp;Joined(<span style=\"color:#2b91af;\">Hub</span>&nbsp;hub,&nbsp;<span style=\"color:#2b91af;\">MethodCallMessage</span>&nbsp;methodCall)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color:#2b91af;\">Dictionary</span>&lt;<span style=\"color:blue;\">string</span>,&nbsp;<span style=\"color:blue;\">object</span>&gt;&nbsp;AuthInfo&nbsp;=&nbsp;methodCall.Arguments[2]&nbsp;<span style=\"color:blue;\">as</span>&nbsp;<span style=\"color:#2b91af;\">Dictionary</span>&lt;<span style=\"color:blue;\">string</span>,&nbsp;<span style=\"color:blue;\">object</span>&gt;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;messages.Add(<span style=\"color:blue;\">string</span>.[...string is too long...]", IKCAJLLAFML.MASTER);
this.OIGGPMIJBIL.AGLMMKOFICI((ushort)(-177), null, null, null);
this.OIGGPMIJBIL.AGLMMKOFICI(0, new ANMJLCILKDJ.NCMAEMHOHDG(this.PGIIAIEHPLG), new ANMJLCILKDJ.NCMAEMHOHDG(this.EPMNFNGPBBG), new ANMJLCILKDJ.PLBLFEEANOO(this.MDCELLMKGEH));
this.OIGGPMIJBIL.AGLMMKOFICI(1, new ANMJLCILKDJ.NCMAEMHOHDG(this.BKGHDECAGFJ), new ANMJLCILKDJ.NCMAEMHOHDG(this.BKHMBCEGJJP), new ANMJLCILKDJ.PLBLFEEANOO(this.PMJLAAGPELD));
this.OIGGPMIJBIL.AGLMMKOFICI(6, new ANMJLCILKDJ.NCMAEMHOHDG(this.NPDEGLHAIBO), null, new ANMJLCILKDJ.PLBLFEEANOO(this.HMCAADIHCEO));
this.OIGGPMIJBIL.AGLMMKOFICI(3, new ANMJLCILKDJ.NCMAEMHOHDG(this.MMBILNPCDCD), new ANMJLCILKDJ.NCMAEMHOHDG(this.DMDLHLPCPFP), new ANMJLCILKDJ.PLBLFEEANOO(this.KFCEGODAOJC));
}
// Token: 0x06003DC0 RID: 15808 RVA: 0x001390B0 File Offset: 0x001372B0
private void MPCIOEOFIIA(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.StopPathing();
}
// Token: 0x06003DC1 RID: 15809 RVA: 0x001390C0 File Offset: 0x001372C0
protected virtual void IFHJEBINADO(bool BCKMKPCENOL)
{
base.DKCKOHPCOBL(BCKMKPCENOL);
if (BCKMKPCENOL && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.LFHAJAHHALO(true);
}
}
// Token: 0x06003DC2 RID: 15810 RVA: 0x001390EC File Offset: 0x001372EC
private void BGAPMMICPIB(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
this.enemyAnimator.OGIEPFOLDNO = false;
}
// Token: 0x06003DC3 RID: 15811 RVA: 0x001390FC File Offset: 0x001372FC
protected override EIDNMNCOAAJ IJCDBKLCFIE(bool GHGNJLIBGFA = false)
{
if (base.JNOJEJMFADM())
{
return base.GPBFOEHJJFO;
}
return base.KAHAFAHMEKP(GHGNJLIBGFA, true);
}
// Token: 0x06003DC4 RID: 15812 RVA: 0x00139118 File Offset: 0x00137318
private void HMCAADIHCEO()
{
if (base.DGLKKANNBPD())
{
if (!base.LMDJJEGNOGM.AEAKFIBHEPE() || this.HEPCLEMEHBC.HFOKKCOENOF())
{
this.OIGGPMIJBIL.BKBFIGCPIMI(2);
return;
}
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(!base.BKHECJODPHF.OGCGDMDPHBM));
}
}
// Token: 0x06003DC5 RID: 15813 RVA: 0x00139180 File Offset: 0x00137380
protected virtual void JAHPJNGKOAO()
{
base.LDEOLFDIEDE();
if (base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.LFHAJAHHALO(true);
}
}
// Token: 0x06003DC6 RID: 15814 RVA: 0x001391A4 File Offset: 0x001373A4
protected virtual void LJFJILFBKHF()
{
base.Update();
this.OIGGPMIJBIL.DLBPEOILIFL();
this.HEPCLEMEHBC.NIPOLMNBCFF();
}
// Token: 0x06003DC7 RID: 15815 RVA: 0x001391C4 File Offset: 0x001373C4
protected virtual void JHEOOPAJBMM()
{
base.CBAEJNFNPGJ();
if (base.GANDPDNCOKF())
{
this.OIGGPMIJBIL.BKBFIGCPIMI(99);
}
}
// Token: 0x06003DC8 RID: 15816 RVA: 0x001391E8 File Offset: 0x001373E8
private void BGJLOGIPKCH()
{
if (!base.LMDJJEGNOGM.AJFBOLHPEJC)
{
return;
}
this.enemyAudio.OnAttack();
if (base.BHCCHBHNHCG)
{
if (this.attackTarget == QuestGoblinRangedEnemy.OENEFNLOGAJ.PLAYER_HEAD)
{
base.LFHPCKLBHDE(false);
}
else if (this.attackTarget == QuestGoblinRangedEnemy.OENEFNLOGAJ.PLAYER_FEET)
{
base.ONHIFLIFKHP(false);
}
}
}
// Token: 0x06003DCA RID: 15818 RVA: 0x001392C0 File Offset: 0x001374C0
private void OAACFLDDACI(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
base.BKHECJODPHF.NHBOKDINFMG();
}
// Token: 0x06003DCB RID: 15819 RVA: 0x001392D0 File Offset: 0x001374D0
protected virtual void ADIOFMMMFNL()
{
base.Awake();
this.enemyAudio.BMBFCDOIIMM = !base.BKHECJODPHF.OGCGDMDPHBM;
this.EPOFAAICKOP = new LHLLJPPCDKA<Vector3>(this, "Room: '{0}' {1},{2} {4}/{3} players.\ncustomProps: {5}", Vector3.zero, IKCAJLLAFML.AUTHORITY, null);
base.BKHECJODPHF.HAMIGCDKOKE = this.movementAngularSpeed;
this.HEPCLEMEHBC = new AONMNAEOJAL(this, "position", IKCAJLLAFML.AUTHORITY);
this.OIGGPMIJBIL = new PNONBEAIBHA("looktarget", IKCAJLLAFML.MASTER);
this.OIGGPMIJBIL.AGLMMKOFICI((ushort)(-171), null, null, null);
this.OIGGPMIJBIL.AGLMMKOFICI(1, new ANMJLCILKDJ.NCMAEMHOHDG(this.GMDBMKECCEK), new ANMJLCILKDJ.NCMAEMHOHDG(this.EPMNFNGPBBG), new ANMJLCILKDJ.PLBLFEEANOO(this.MDCELLMKGEH));
this.OIGGPMIJBIL.AGLMMKOFICI(0, new ANMJLCILKDJ.NCMAEMHOHDG(this.JFLDFPABHLO), new ANMJLCILKDJ.NCMAEMHOHDG(this.BGAPMMICPIB), new ANMJLCILKDJ.PLBLFEEANOO(this.CBGGAGIGBDE));
this.OIGGPMIJBIL.AGLMMKOFICI(8, new ANMJLCILKDJ.NCMAEMHOHDG(this.NLDOBJMLIMD), null, new ANMJLCILKDJ.PLBLFEEANOO(this.MBJAANBJLGG));
this.OIGGPMIJBIL.AGLMMKOFICI(0, new ANMJLCILKDJ.NCMAEMHOHDG(this.MMBILNPCDCD), new ANMJLCILKDJ.NCMAEMHOHDG(this.OGLPHFEBONN), new ANMJLCILKDJ.PLBLFEEANOO(this.KFJAGMBPEFB));
}
// Token: 0x06003DCC RID: 15820 RVA: 0x00139410 File Offset: 0x00137610
protected virtual void FKFJAJPMDEN(bool BCKMKPCENOL)
{
base.DKCKOHPCOBL(BCKMKPCENOL);
if (BCKMKPCENOL && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.BOAKFKEHGHP = false;
}
}
// Token: 0x06003DCD RID: 15821 RVA: 0x0013943C File Offset: 0x0013763C
private void MDCELLMKGEH()
{
if (base.JNOCCMDBMIO())
{
EIDNMNCOAAJ eidnmncoaaj = this.IJCDBKLCFIE(false);
if (eidnmncoaaj.PBDDCCOAGOG())
{
base.LMDJJEGNOGM = eidnmncoaaj;
base.GPBFOEHJJFO = EIDNMNCOAAJ.CGNKKAKJIJL;
this.OIGGPMIJBIL.BKBFIGCPIMI(0);
}
else if (this.pathTowardsPlayerCentroidToFindTarget)
{
base.HCGGDDPJBHE(this.movementSlowdownDistance);
}
else
{
this.OIGGPMIJBIL.BKBFIGCPIMI(2);
}
}
}
// Token: 0x06003DCE RID: 15822 RVA: 0x001394B4 File Offset: 0x001376B4
protected override void Start()
{
base.Start();
this.OIGGPMIJBIL.FLHFCMCNLEK(this, ushort.MaxValue);
}
// Token: 0x06003DCF RID: 15823 RVA: 0x001394D0 File Offset: 0x001376D0
protected virtual void CJIBCBLNGGM()
{
base.Start();
this.OIGGPMIJBIL.PGELJEHELFN(this, 111);
}
// Token: 0x06003DD0 RID: 15824 RVA: 0x001394EC File Offset: 0x001376EC
protected override void DKCKOHPCOBL(bool BCKMKPCENOL)
{
base.DKCKOHPCOBL(BCKMKPCENOL);
if (BCKMKPCENOL && base.BKHECJODPHF.OGCGDMDPHBM)
{
base.BOLBONELAEF.BOAKFKEHGHP = true;
}
}
// Token: 0x06003DD1 RID: 15825 RVA: 0x00139518 File Offset: 0x00137718
private void ALPGBODHAHI(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.enemyAnimator.FMAFNHECOIH(false);
this.enemyAudio.OnChargeAttack();
if (base.BHCCHBHNHCG)
{
this.HEPCLEMEHBC.BJOJLPHBGMN(this.attackChargeDuration);
}
}
// Token: 0x06003DD2 RID: 15826 RVA: 0x00139550 File Offset: 0x00137750
protected virtual void BMNJOAAJHBK()
{
base.LDEOLFDIEDE();
if (base.BKHECJODPHF.HAODGLCKEOF())
{
base.BOLBONELAEF.BOAKFKEHGHP = true;
}
}
// Token: 0x06003DD3 RID: 15827 RVA: 0x00139574 File Offset: 0x00137774
private void LOAIBCEDGAF(Vector3 NOBAPCOKFIL)
{
this.EPOFAAICKOP.MEAINJPIECA(NOBAPCOKFIL);
}
// Token: 0x06003DD4 RID: 15828 RVA: 0x00139584 File Offset: 0x00137784
private void JFLDFPABHLO(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.enemyAnimator.DBEOAOEGGEK(true);
this.enemyAudio.DKPPAPIIFMM();
if (base.DGLKKANNBPD())
{
this.HEPCLEMEHBC.PBDGDJIFMOK(this.attackChargeDuration);
}
}
// Token: 0x06003DD5 RID: 15829 RVA: 0x001395BC File Offset: 0x001377BC
private void CBGGAGIGBDE()
{
if (base.DFJFKOLLEMK())
{
if (!base.LMDJJEGNOGM.PBDDCCOAGOG() || this.HEPCLEMEHBC.HFOKKCOENOF())
{
this.OIGGPMIJBIL.BKBFIGCPIMI(4);
return;
}
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(base.BKHECJODPHF.OGCGDMDPHBM));
}
}
// Token: 0x06003DD6 RID: 15830 RVA: 0x00139624 File Offset: 0x00137824
protected virtual void OLLOAPMOOHE()
{
base.Start();
this.OIGGPMIJBIL.FLHFCMCNLEK(this, (ushort)(-49));
}
// Token: 0x06003DD7 RID: 15831 RVA: 0x00139640 File Offset: 0x00137840
private void BNDMHFBEPHI(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
this.enemyAnimator.OGIEPFOLDNO = true;
this.enemyAudio.OnChargeAttack();
if (base.BHCCHBHNHCG)
{
this.HEPCLEMEHBC.BJOJLPHBGMN(this.attackChargeDuration);
}
}
// Token: 0x06003DD8 RID: 15832 RVA: 0x00139678 File Offset: 0x00137878
private void MBJAANBJLGG()
{
if (base.BHCCHBHNHCG)
{
if (!base.LMDJJEGNOGM.AJFBOLHPEJC || this.HEPCLEMEHBC.CGELFKLLMBA)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(3);
return;
}
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(!base.BKHECJODPHF.OGCGDMDPHBM));
}
}
// Token: 0x06003DD9 RID: 15833 RVA: 0x001396E0 File Offset: 0x001378E0
private void GMDBMKECCEK(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.StopLooking();
base.BKHECJODPHF.FMFCBADCFCK = this.movementSpeed;
}
// Token: 0x06003DDA RID: 15834 RVA: 0x00139700 File Offset: 0x00137900
protected virtual EIDNMNCOAAJ BGEBEOCGNEJ(bool GHGNJLIBGFA = false)
{
if (base.JNOJEJMFADM())
{
return base.GPBFOEHJJFO;
}
return base.KAHAFAHMEKP(GHGNJLIBGFA, true);
}
// Token: 0x06003DDB RID: 15835 RVA: 0x0013971C File Offset: 0x0013791C
private void JCLJLBEHMKN()
{
if (base.BHCCHBHNHCG)
{
if (!base.LMDJJEGNOGM.AJFBOLHPEJC || this.HEPCLEMEHBC.CGELFKLLMBA)
{
this.OIGGPMIJBIL.BKBFIGCPIMI(2);
return;
}
base.BKHECJODPHF.Look(base.HIAMIHBNAMJ(!base.BKHECJODPHF.OGCGDMDPHBM));
}
}
// Token: 0x06003DDC RID: 15836 RVA: 0x00139784 File Offset: 0x00137984
private void EPMNFNGPBBG(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
if (base.BHCCHBHNHCG)
{
this.ECFDNGMPNOB = base.BKHECJODPHF.GOCOODINDFC;
}
}
// Token: 0x06003DDD RID: 15837 RVA: 0x001397A4 File Offset: 0x001379A4
protected virtual void NBNPCIPPHAO()
{
base.CBAEJNFNPGJ();
if (base.DGLKKANNBPD())
{
this.OIGGPMIJBIL.BKBFIGCPIMI((ushort)(-119));
}
}
// Token: 0x06003DDE RID: 15838 RVA: 0x001397C8 File Offset: 0x001379C8
private void PGIIAIEHPLG(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
base.BKHECJODPHF.StopLooking();
base.BKHECJODPHF.FMFCBADCFCK = this.movementSpeed;
}
// Token: 0x0400079E RID: 1950
[SerializeField]
[Header("Target Selection")]
private bool pathTowardsPlayerCentroidToFindTarget = true;
// Token: 0x0400079F RID: 1951
[SerializeField]
[Header("Attacking")]
private float attackChargeDuration = 1f;
// Token: 0x040007A0 RID: 1952
[SerializeField]
private float attackDuration = 3f;
// Token: 0x040007A1 RID: 1953
[SerializeField]
private QuestGoblinRangedEnemy.OENEFNLOGAJ attackTarget;
// Token: 0x040007A2 RID: 1954
[SerializeField]
[Header("Dash")]
private float dashSpeed = 4f;
// Token: 0x040007A3 RID: 1955
[SerializeField]
private float maxDashForce = 67f;
// Token: 0x040007A4 RID: 1956
[SerializeField]
private float dashSlowdownDistance = 1f;
// Token: 0x040007A5 RID: 1957
[SerializeField]
private float minDashDistance = 2f;
// Token: 0x040007A6 RID: 1958
[SerializeField]
private float maxDashDistance = 4f;
// Token: 0x040007A7 RID: 1959
[SerializeField]
private float dashTimeout = 2.5f;
// Token: 0x040007A8 RID: 1960
private LHLLJPPCDKA<Vector3> EPOFAAICKOP;
// Token: 0x040007A9 RID: 1961
private PNONBEAIBHA OIGGPMIJBIL;
// Token: 0x040007AA RID: 1962
private AONMNAEOJAL HEPCLEMEHBC;
// Token: 0x02000127 RID: 295
private enum GJCLFGJEIJL
{
// Token: 0x040007AC RID: 1964
FIND_TARGET,
// Token: 0x040007AD RID: 1965
CHARGE_ATTACK,
// Token: 0x040007AE RID: 1966
ATTACK_TARGET,
// Token: 0x040007AF RID: 1967
DASH,
// Token: 0x040007B0 RID: 1968
INVALID = 65535
}
// Token: 0x02000128 RID: 296
private enum OENEFNLOGAJ
{
// Token: 0x040007B2 RID: 1970
PLAYER_HEAD,
// Token: 0x040007B3 RID: 1971
PLAYER_FEET
}
}
}