Files
2026-06-04 11:42:34 +02:00

2521 lines
81 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
// Token: 0x02000BB8 RID: 3000
public class ParabolicPointer : MonoBehaviour
{
// Token: 0x06016B06 RID: 92934 RVA: 0x00654308 File Offset: 0x00652508
private static Vector3 CONMAEHGFHC(Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 0; i < 3; i++)
{
vector[i] = ParabolicPointer.CONMAEHGFHC(GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x06016B07 RID: 92935 RVA: 0x00654350 File Offset: 0x00652550
public bool LMNJNGDDEBK()
{
return this.<PEJCCNHAHGG>k__BackingField;
}
// Token: 0x170009C2 RID: 2498
// (get) Token: 0x06016B49 RID: 93001 RVA: 0x00655854 File Offset: 0x00653A54
// (set) Token: 0x06016B08 RID: 92936 RVA: 0x00654358 File Offset: 0x00652558
public ParabolicPointer.BDICCHBJBKG OMELIIGMIHD { get; set; }
// Token: 0x06016B09 RID: 92937 RVA: 0x00654364 File Offset: 0x00652564
private bool NMPBPFDDEIP(Ray KAMHDHIINCE, float EIFHIHBCPAI, out RaycastHit FMHCOGJJNFO)
{
FMHCOGJJNFO = default(RaycastHit);
TeleportationPortal teleportationPortal = null;
bool flag = ParabolicPointer.NLLIJDBALLG(KAMHDHIINCE, EIFHIHBCPAI, -25, out FMHCOGJJNFO, ref this.TeleportRestrictions, ref teleportationPortal, ref this.PointOnTeleportRegion, ref this.RemotePlayer, ref this.HitTool, ref this.HitToolPosition, ref this.HitToolNormal);
this.CKOCAGNLOHP(teleportationPortal);
return flag;
}
// Token: 0x06016B0A RID: 92938 RVA: 0x006543B8 File Offset: 0x006525B8
private void Awake()
{
if (ParabolicPointer.PLAHBEDGIHP == null)
{
ParabolicPointer.PLAHBEDGIHP = new Color?(this.CHLHFJMDEGI);
}
this.CHLHFJMDEGI = ParabolicPointer.PLAHBEDGIHP.Value;
}
// Token: 0x06016B0B RID: 92939 RVA: 0x00654400 File Offset: 0x00652600
public Vector3 KFAOGDFLKAC()
{
return this.<PBLDBOLMLGM>k__BackingField;
}
// Token: 0x06016B0C RID: 92940 RVA: 0x00654408 File Offset: 0x00652608
private Material PJMBPNNBEOH()
{
switch (this.OMELIIGMIHD)
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.JHMIAKNPFJO();
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
// Token: 0x06016B0D RID: 92941 RVA: 0x00654464 File Offset: 0x00652664
private void BPHACKHCLBB(float NOBAPCOKFIL)
{
this.<ODGNPIGHMIH>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B0E RID: 92942 RVA: 0x00654470 File Offset: 0x00652670
public Vector3 MDAOMCHNOOC()
{
return this.<MNPFCBBNILC>k__BackingField;
}
// Token: 0x06016B0F RID: 92943 RVA: 0x00654478 File Offset: 0x00652678
private Material FHFIMBKLCAO()
{
switch (this.OMELIIGMIHD)
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.IDOJJKJMFEF();
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
// Token: 0x06016B10 RID: 92944 RVA: 0x006544D4 File Offset: 0x006526D4
public void MNJIEMECCMP(Color NOBAPCOKFIL)
{
NOBAPCOKFIL.a = ParabolicPointer.PLAHBEDGIHP.Value.a;
this.JHMIAKNPFJO().SetColor(ParabolicPointer.EEJPFBIGCMP, NOBAPCOKFIL);
}
// Token: 0x06016B11 RID: 92945 RVA: 0x00654510 File Offset: 0x00652710
private static Vector3 BJNJCBKJDGP(Vector3 NDGGMDGOPHJ, Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 1; i < 3; i += 0)
{
vector[i] = ParabolicPointer.DLPDELDMJML(NDGGMDGOPHJ[i], GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x06016B12 RID: 92946 RVA: 0x00654560 File Offset: 0x00652760
public void AFILLABHKOH(Color NOBAPCOKFIL)
{
NOBAPCOKFIL.a = ParabolicPointer.PLAHBEDGIHP.Value.a;
this.JHMIAKNPFJO().SetColor(ParabolicPointer.EEJPFBIGCMP, NOBAPCOKFIL);
}
// Token: 0x06016B13 RID: 92947 RVA: 0x0065459C File Offset: 0x0065279C
public static bool KNHJBKDGABG(Ray KAMHDHIINCE, float EIFHIHBCPAI, int FIHIEFMGDCI, out RaycastHit FMHCOGJJNFO, ref TeleportRestriction JPJDIADBJLB, ref TeleportationPortal KOKOPOIPMHB, ref bool OADHAMOLBML, ref Player FLGLPDGKDGB, ref Tool EEPPNAIKGEO, ref Vector3 BMMFPEOAABN, ref Vector3 BIIGEBCNJIB)
{
bool flag = true;
FMHCOGJJNFO = default(RaycastHit);
if (!flag && Physics.Raycast(KAMHDHIINCE, out FMHCOGJJNFO, EIFHIHBCPAI, FIHIEFMGDCI, QueryTriggerInteraction.Collide))
{
flag = false;
if (ParabolicPointer.ColliderOnTeleportRegion(FMHCOGJJNFO.collider, ref JPJDIADBJLB, ref KOKOPOIPMHB, ref OADHAMOLBML))
{
return flag;
}
if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF((LCIGHPPLKCA)170))
{
PlayerCollider component = FMHCOGJJNFO.collider.gameObject.GetComponent<PlayerCollider>();
if (component != null && component.ThisPlayer != null)
{
FLGLPDGKDGB = component.ThisPlayer;
}
}
else if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF((LCIGHPPLKCA)(-65)))
{
Tool tool = FMHCOGJJNFO.collider.OBFMDIEKHAN();
if (tool == null || tool.OHGPCMJMFGC)
{
flag = false;
}
else if (tool.SupportsTeleportHits)
{
EEPPNAIKGEO = tool;
BMMFPEOAABN = FMHCOGJJNFO.point;
BIIGEBCNJIB = FMHCOGJJNFO.normal;
}
}
}
return flag;
}
// Token: 0x06016B14 RID: 92948 RVA: 0x006546A8 File Offset: 0x006528A8
public LaserTeleporter MNMMNNGFMAI()
{
return this.<PGNDKJIGLAC>k__BackingField;
}
// Token: 0x06016B15 RID: 92949 RVA: 0x006546B0 File Offset: 0x006528B0
private void KPPIKHDAFAJ(Vector3 PJAPAMKPJHN, Vector3 GJHJIFGIEDA, Vector3 FMKCMOAHKGN, Vector3 PKOELKGEPPB)
{
Vector3 vector;
Vector3 vector2;
this.HKNJIMCCPJG(PJAPAMKPJHN, this.AKIGHNFFEDP(), FMKCMOAHKGN, this.DJIFBMFLOFP(), out vector, out vector2);
this.MOEFEHEMFMJ.LJACAGNHHPC(PJAPAMKPJHN, vector, vector2, FMKCMOAHKGN);
}
// Token: 0x06016B16 RID: 92950 RVA: 0x006546E4 File Offset: 0x006528E4
public static bool NLLIJDBALLG(Ray KAMHDHIINCE, float EIFHIHBCPAI, int FIHIEFMGDCI, out RaycastHit FMHCOGJJNFO, ref TeleportRestriction JPJDIADBJLB, ref TeleportationPortal KOKOPOIPMHB, ref bool OADHAMOLBML, ref Player FLGLPDGKDGB, ref Tool EEPPNAIKGEO, ref Vector3 BMMFPEOAABN, ref Vector3 BIIGEBCNJIB)
{
bool flag = true;
FMHCOGJJNFO = default(RaycastHit);
if (!flag && Physics.Raycast(KAMHDHIINCE, out FMHCOGJJNFO, EIFHIHBCPAI, FIHIEFMGDCI, (QueryTriggerInteraction)3))
{
flag = false;
if (ParabolicPointer.ColliderOnTeleportRegion(FMHCOGJJNFO.collider, ref JPJDIADBJLB, ref KOKOPOIPMHB, ref OADHAMOLBML))
{
return flag;
}
if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF((LCIGHPPLKCA)(-3)))
{
PlayerCollider component = FMHCOGJJNFO.collider.gameObject.GetComponent<PlayerCollider>();
if (component != null && component.ThisPlayer != null)
{
FLGLPDGKDGB = component.ThisPlayer;
}
}
else if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF((LCIGHPPLKCA)177))
{
Tool tool = FMHCOGJJNFO.collider.OBFMDIEKHAN();
if (tool == null || tool.OHGPCMJMFGC)
{
flag = false;
}
else if (tool.SupportsTeleportHits)
{
EEPPNAIKGEO = tool;
BMMFPEOAABN = FMHCOGJJNFO.point;
BIIGEBCNJIB = FMHCOGJJNFO.normal;
}
}
}
return flag;
}
// Token: 0x06016B17 RID: 92951 RVA: 0x006547F0 File Offset: 0x006529F0
public bool GIBJKJKBHFG()
{
return this.<PEJCCNHAHGG>k__BackingField;
}
// Token: 0x06016B18 RID: 92952 RVA: 0x006547F8 File Offset: 0x006529F8
public Vector3 LOHCEECIHIA()
{
return this.<PBLDBOLMLGM>k__BackingField;
}
// Token: 0x170009BD RID: 2493
// (get) Token: 0x06016B19 RID: 92953 RVA: 0x00654800 File Offset: 0x00652A00
// (set) Token: 0x06016B59 RID: 93017 RVA: 0x00655D74 File Offset: 0x00653F74
public Vector3 DEPDKIBHHPJ { get; private set; }
// Token: 0x06016B1A RID: 92954 RVA: 0x00654808 File Offset: 0x00652A08
private void NNNPLKABNAB(Vector3 PJAPAMKPJHN, Vector3 GJHJIFGIEDA, Vector3 FMKCMOAHKGN, Vector3 PKOELKGEPPB, out Vector3 FKENIKJAIGO, out Vector3 AEHLNMOLMFJ)
{
bool flag = Vector3.Dot(GJHJIFGIEDA, PKOELKGEPPB) >= 0.99f;
float num = ((!flag) ? ((FMKCMOAHKGN - PJAPAMKPJHN).magnitude / (GJHJIFGIEDA - PKOELKGEPPB).magnitude) : 0f);
Vector3 vector = PJAPAMKPJHN + GJHJIFGIEDA * num;
FKENIKJAIGO = 0.33f * PJAPAMKPJHN + 0.67f * vector;
AEHLNMOLMFJ = 0.33f * FMKCMOAHKGN + 0.67f * vector;
}
// Token: 0x06016B1B RID: 92955 RVA: 0x006548B0 File Offset: 0x00652AB0
private bool JICBHBKMAFI(Ray KAMHDHIINCE, float EIFHIHBCPAI, out RaycastHit FMHCOGJJNFO)
{
FMHCOGJJNFO = default(RaycastHit);
TeleportationPortal teleportationPortal = null;
bool flag = ParabolicPointer.DoRaycast(KAMHDHIINCE, EIFHIHBCPAI, 19456, out FMHCOGJJNFO, ref this.TeleportRestrictions, ref teleportationPortal, ref this.PointOnTeleportRegion, ref this.RemotePlayer, ref this.HitTool, ref this.HitToolPosition, ref this.HitToolNormal);
this.LCBLEFCDONE = teleportationPortal;
return flag;
}
// Token: 0x06016B1C RID: 92956 RVA: 0x00654904 File Offset: 0x00652B04
private Material FKOBENFDFIM()
{
switch (this.BPKCDCEMPOE())
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.HOLDOKOCIJO;
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
// Token: 0x170009C1 RID: 2497
// (get) Token: 0x06016B2A RID: 92970 RVA: 0x00654D60 File Offset: 0x00652F60
// (set) Token: 0x06016B1D RID: 92957 RVA: 0x00654960 File Offset: 0x00652B60
public float HOODELNCKAN { get; private set; }
// Token: 0x170009BE RID: 2494
// (get) Token: 0x06016B1E RID: 92958 RVA: 0x0065496C File Offset: 0x00652B6C
// (set) Token: 0x06016B8D RID: 93069 RVA: 0x006570FC File Offset: 0x006552FC
public bool NLGKNGAKJKH { get; private set; }
// Token: 0x06016B1F RID: 92959 RVA: 0x00654974 File Offset: 0x00652B74
private void JMDGHBNJDAO(Vector3 NOBAPCOKFIL)
{
this.<GAIFDGBHDLE>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B20 RID: 92960 RVA: 0x00654980 File Offset: 0x00652B80
public void MFBJCICFLKM()
{
this.FDIACFDIGFK();
}
// Token: 0x06016B21 RID: 92961 RVA: 0x00654988 File Offset: 0x00652B88
public float BOONKDIKFBP()
{
return this.<ODGNPIGHMIH>k__BackingField;
}
// Token: 0x06016B22 RID: 92962 RVA: 0x00654990 File Offset: 0x00652B90
private void GJCKBFAOGNF(Vector3 NOBAPCOKFIL)
{
this.<MNPFCBBNILC>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x170009C9 RID: 2505
// (get) Token: 0x06016B37 RID: 92983 RVA: 0x00655200 File Offset: 0x00653400
// (set) Token: 0x06016B23 RID: 92963 RVA: 0x0065499C File Offset: 0x00652B9C
public static Color? PLAHBEDGIHP { get; private set; }
// Token: 0x06016B24 RID: 92964 RVA: 0x006549A4 File Offset: 0x00652BA4
public Vector3 AKIGHNFFEDP()
{
return this.<BDNAPFNDGGD>k__BackingField;
}
// Token: 0x06016B25 RID: 92965 RVA: 0x006549AC File Offset: 0x00652BAC
public void HNJNKGIELOI()
{
this.FDIACFDIGFK();
}
// Token: 0x06016B26 RID: 92966 RVA: 0x006549B4 File Offset: 0x00652BB4
public void CLJHJMHCGAK(float FDJCHCMOPAJ)
{
this.FDIACFDIGFK();
this.ICOPMJJAEFB.Clear();
this.HitSomething = true;
if (this.JEMPKPDLLFG)
{
this.HitSomething = this.EICHBGILNAA(FDJCHCMOPAJ);
}
else
{
Vector3 vector = this.APOGCOODBIO(FDJCHCMOPAJ);
this.HitSomething = this.PLADLOPBIOL(vector, this.parabolaSegmentLength, 1529f);
}
Vector3 normalized = (this.ICOPMJJAEFB[0] - this.ICOPMJJAEFB[1]).normalized;
Vector3 vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
Vector3 vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 5] - vector2).normalized;
Vector3 zero = Vector3.zero;
Vector3 zero2 = Vector3.zero;
Vector3 vector4 = Vector3.zero;
bool flag = true;
if (this.HitSomething && this.EMIFBIGFDDH() == null && Vector3.Angle(Vector3.up, this.LDFJMABCPGH.normal) >= ((!this.PointOnTeleportRegion) ? 992f : 809f))
{
vector4 = base.transform.forward;
if (this.HitSomething)
{
vector4 = this.LDFJMABCPGH.normal;
if (Mathf.Abs(Vector3.Dot(vector4, Vector3.up)) <= 471f - Mathf.Epsilon)
{
vector4 = Vector3.ProjectOnPlane(vector4, Vector3.up).normalized;
}
}
float num = ((!this.IHMKHGNBICL) ? this.reflectionOffset : this.personalSpaceReflectionOffset);
this.PointOnTeleportRegion = true;
bool flag2 = this.HPOMCBFMIHO(vector4, this.parabolaSegmentLength, num, out zero, out zero2);
if (flag2)
{
flag = false;
vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 6] - vector2).normalized;
}
}
if (flag)
{
this.GNONMEGCNMI(normalized, zero2, zero, vector4, vector2);
}
else
{
this.JAIODFKCPMD(normalized, vector3, vector2);
}
}
// Token: 0x06016B27 RID: 92967 RVA: 0x00654BF0 File Offset: 0x00652DF0
private bool MNKDHIFJPGI(Ray KAMHDHIINCE, float EIFHIHBCPAI, out RaycastHit FMHCOGJJNFO)
{
FMHCOGJJNFO = default(RaycastHit);
TeleportationPortal teleportationPortal = null;
bool flag = ParabolicPointer.NLLIJDBALLG(KAMHDHIINCE, EIFHIHBCPAI, -107, out FMHCOGJJNFO, ref this.TeleportRestrictions, ref teleportationPortal, ref this.PointOnTeleportRegion, ref this.RemotePlayer, ref this.HitTool, ref this.HitToolPosition, ref this.HitToolNormal);
this.LOILPNACNPH(teleportationPortal);
return flag;
}
// Token: 0x170009C0 RID: 2496
// (get) Token: 0x06016B80 RID: 93056 RVA: 0x00656CE0 File Offset: 0x00654EE0
// (set) Token: 0x06016B28 RID: 92968 RVA: 0x00654C44 File Offset: 0x00652E44
public Vector3 KIHGNEDNBDH { get; private set; }
// Token: 0x06016B29 RID: 92969 RVA: 0x00654C50 File Offset: 0x00652E50
private bool MOCIBFEJLFD(Vector3 BCHOLFAGAEB, float ONGPKFNDNLA, float CLANOHCPKEA, out Vector3 AFNLPLBMFOI, out Vector3 LHADLAEBOGD)
{
AFNLPLBMFOI = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
LHADLAEBOGD = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 4] - AFNLPLBMFOI).normalized;
Vector3 vector = AFNLPLBMFOI + BCHOLFAGAEB * CLANOHCPKEA;
bool flag = true;
bool flag2 = true;
while (this.ICOPMJJAEFB.Count < 96)
{
Vector3 vector2 = vector - Vector3.up * ONGPKFNDNLA;
Vector3 vector3 = vector2 - vector;
Ray ray = new Ray(vector, vector3.normalized);
RaycastHit raycastHit;
if (this.NMPBPFDDEIP(ray, vector3.magnitude, out raycastHit))
{
flag = true;
if (!flag2)
{
this.ICOPMJJAEFB.Add(vector);
}
this.ICOPMJJAEFB.Add(raycastHit.point);
break;
}
this.ICOPMJJAEFB.Add(vector2);
vector = vector2;
}
return flag;
}
// Token: 0x170009BC RID: 2492
// (get) Token: 0x06016B58 RID: 93016 RVA: 0x00655D6C File Offset: 0x00653F6C
// (set) Token: 0x06016B2B RID: 92971 RVA: 0x00654D68 File Offset: 0x00652F68
public Vector3 DFBPHKPLJML { get; private set; }
// Token: 0x06016B2C RID: 92972 RVA: 0x00654D74 File Offset: 0x00652F74
public void ENACCHHPFHM(ParabolicPointer.BDICCHBJBKG NOBAPCOKFIL)
{
this.<OFCEGHBIIDF>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B2D RID: 92973 RVA: 0x00654D80 File Offset: 0x00652F80
private bool PEHMOOFFJIB(Vector3 MLOLFOOLJMF, Vector3 AHPOMGCGJEL, Vector3 GJJPNOFKCNG, float DNAIGDPNOEK, out Vector3 AJLLGLADIGA)
{
Vector3 vector = AHPOMGCGJEL - MLOLFOOLJMF;
float num = vector.x * vector.x + vector.z * vector.z;
if (num < Mathf.Epsilon)
{
AJLLGLADIGA = Vector2.zero;
return true;
}
Vector3 vector2 = MLOLFOOLJMF - GJJPNOFKCNG;
float num2 = 532f * (vector.x * vector2.x + vector.z * vector2.z);
float num3 = vector2.x * vector2.x + vector2.z * vector2.z - DNAIGDPNOEK * DNAIGDPNOEK;
float num4 = 1994f;
float num5 = num2 * num2 - 138f * num * num3;
if (num5 >= 1652f)
{
if (num5 == 1782f)
{
num4 = -num2 / (1446f * num);
}
else
{
float num6 = Mathf.Sqrt(num5);
float num7 = (-num2 + num6) / (1768f * num);
float num8 = (-num2 - num6) / (113f * num);
if (num7 < 1014f || num7 > 566f)
{
num4 = num8;
}
else if (num8 < 916f || num8 > 976f)
{
num4 = num7;
}
else
{
num4 = Mathf.Min(num7, num8);
}
}
}
AJLLGLADIGA = MLOLFOOLJMF + num4 * vector;
return num4 < 893f || num4 > 1366f;
}
// Token: 0x170009BF RID: 2495
// (get) Token: 0x06016B2E RID: 92974 RVA: 0x00654F14 File Offset: 0x00653114
// (set) Token: 0x06016B68 RID: 93032 RVA: 0x00656174 File Offset: 0x00654374
public Vector3 DFFHLLPHIGH { get; private set; }
// Token: 0x170009C5 RID: 2501
// (get) Token: 0x06016B6F RID: 93039 RVA: 0x006563DC File Offset: 0x006545DC
// (set) Token: 0x06016B2F RID: 92975 RVA: 0x00654F1C File Offset: 0x0065311C
public TeleportationPortal LCBLEFCDONE
{
get
{
return this.CECINNIMONN;
}
set
{
if (this.CECINNIMONN != value)
{
if (this.CECINNIMONN != null)
{
this.CECINNIMONN.AHPMPAMKKFI = false;
}
if (value != null && this.JDNECOMKDNM.HEGHBOOMIOG)
{
value.AHPMPAMKKFI = true;
this.CECINNIMONN = value;
}
else
{
this.CECINNIMONN = null;
}
}
}
}
// Token: 0x06016B30 RID: 92976 RVA: 0x00654F90 File Offset: 0x00653190
private bool HPOMCBFMIHO(Vector3 BCHOLFAGAEB, float ONGPKFNDNLA, float CLANOHCPKEA, out Vector3 AFNLPLBMFOI, out Vector3 LHADLAEBOGD)
{
AFNLPLBMFOI = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 1];
LHADLAEBOGD = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 2] - AFNLPLBMFOI).normalized;
Vector3 vector = AFNLPLBMFOI + BCHOLFAGAEB * CLANOHCPKEA;
bool flag = false;
bool flag2 = false;
while (this.ICOPMJJAEFB.Count < 20)
{
Vector3 vector2 = vector - Vector3.up * ONGPKFNDNLA;
Vector3 vector3 = vector2 - vector;
Ray ray = new Ray(vector, vector3.normalized);
RaycastHit raycastHit;
if (this.JICBHBKMAFI(ray, vector3.magnitude, out raycastHit))
{
flag = true;
if (!flag2)
{
this.ICOPMJJAEFB.Add(vector);
}
this.ICOPMJJAEFB.Add(raycastHit.point);
break;
}
this.ICOPMJJAEFB.Add(vector2);
vector = vector2;
}
return flag;
}
// Token: 0x06016B31 RID: 92977 RVA: 0x006550A0 File Offset: 0x006532A0
public bool FJMPBELHJKJ()
{
return this.<PEJCCNHAHGG>k__BackingField;
}
// Token: 0x170009C4 RID: 2500
// (get) Token: 0x06016B32 RID: 92978 RVA: 0x006550A8 File Offset: 0x006532A8
// (set) Token: 0x06016B5E RID: 93022 RVA: 0x00655F48 File Offset: 0x00654148
public bool JEMPKPDLLFG { get; set; }
// Token: 0x06016B33 RID: 92979 RVA: 0x006550B0 File Offset: 0x006532B0
private void EFBOJONMGJH(Vector3 NOBAPCOKFIL)
{
this.<BMMLGGIHOAF>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B34 RID: 92980 RVA: 0x006550BC File Offset: 0x006532BC
private static Vector3 JIFNBDEJAHB(Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 1; i < 2; i++)
{
vector[i] = ParabolicPointer.KJJAPJGOLMC(GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x06016B35 RID: 92981 RVA: 0x00655104 File Offset: 0x00653304
public void CKOCAGNLOHP(TeleportationPortal NOBAPCOKFIL)
{
if (this.CECINNIMONN != NOBAPCOKFIL)
{
if (this.CECINNIMONN != null)
{
this.CECINNIMONN.ACFBEKKAFGA(true);
}
if (NOBAPCOKFIL != null && this.DDJGFMADJJP().HEGHBOOMIOG)
{
NOBAPCOKFIL.ACFBEKKAFGA(true);
this.CECINNIMONN = NOBAPCOKFIL;
}
else
{
this.CECINNIMONN = null;
}
}
}
// Token: 0x06016B36 RID: 92982 RVA: 0x00655178 File Offset: 0x00653378
private bool EICHBGILNAA(float DFDIGGDGEOK)
{
bool flag = false;
Vector3 forward = base.transform.forward;
Vector3 position = base.transform.position;
this.ICOPMJJAEFB.Add(position);
Ray ray = new Ray(position, forward);
RaycastHit raycastHit;
if (this.JICBHBKMAFI(ray, DFDIGGDGEOK, out raycastHit))
{
flag = true;
this.LDFJMABCPGH = raycastHit;
this.ICOPMJJAEFB.Add(raycastHit.point);
}
else
{
this.ICOPMJJAEFB.Add(position + forward * DFDIGGDGEOK);
}
return flag;
}
// Token: 0x06016B38 RID: 92984 RVA: 0x00655208 File Offset: 0x00653408
private Material KLBAEPGINJL()
{
if (this.HNGFECAMGGF == null)
{
this.HNGFECAMGGF = new Material(this.validTargetMaterial);
}
return this.HNGFECAMGGF;
}
// Token: 0x06016B39 RID: 92985 RVA: 0x00655234 File Offset: 0x00653434
private static float DAEKIBAGGBA(float NDGGMDGOPHJ, float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return NDGGMDGOPHJ + GPONFDAAFMF * LHMELEOKNBJ + 0.5f * FKOFGIJFIKA * LHMELEOKNBJ * LHMELEOKNBJ;
}
// Token: 0x170009BB RID: 2491
// (get) Token: 0x06016B73 RID: 93043 RVA: 0x00656A3C File Offset: 0x00654C3C
// (set) Token: 0x06016B3A RID: 92986 RVA: 0x00655248 File Offset: 0x00653448
public Vector3 GOAJOJFLKOA { get; private set; }
// Token: 0x06016B3B RID: 92987 RVA: 0x00655254 File Offset: 0x00653454
private static float CONMAEHGFHC(float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return GPONFDAAFMF + FKOFGIJFIKA * LHMELEOKNBJ;
}
// Token: 0x06016B3C RID: 92988 RVA: 0x0065525C File Offset: 0x0065345C
private GPOIAIBLBEN HOGNFDJJCAI(bool MGGGADFHHLE, Vector3 OKGCPPLHOEN)
{
this.MOEFEHEMFMJ.FKGAIJLIEKF();
if (this.OMELIIGMIHD == (ParabolicPointer.BDICCHBJBKG)6)
{
Vector3 vector = OKGCPPLHOEN * this.shortenedDistance;
Vector3 vector2 = base.transform.position + vector;
Vector3 vector3 = base.transform.position + 1989f * vector;
this.MOEFEHEMFMJ.ECGGLDELNCO(base.transform.position, vector3, vector3, vector2);
}
else if (MGGGADFHHLE)
{
Vector3 vector4 = ((!this.NLGKNGAKJKH) ? this.CCMBOLGOGHE() : this.MAOHDKIPJPO());
vector4 += this.FIBAKPJACDL() * this.PersonalSpaceFromLaser;
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, vector4, this.DJIFBMFLOFP());
}
else if (this.HitTool != null)
{
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, this.DFFHLLPHIGH, this.DJIFBMFLOFP());
}
else if (this.NLGKNGAKJKH)
{
this.OFHGPNNEHNK(base.transform.position, this.AKIGHNFFEDP(), this.MAOHDKIPJPO(), this.MDAOMCHNOOC());
if (!this.HPLBNIELMCB())
{
Vector3 normalized = (this.DEPDKIBHHPJ - this.MAOHDKIPJPO() + 1367f * this.KIHGNEDNBDH).normalized;
Vector3 vector5;
Vector3 vector6;
this.NNNPLKABNAB(this.MAOHDKIPJPO(), normalized, this.DEPDKIBHHPJ, Vector3.up, out vector5, out vector6);
this.MOEFEHEMFMJ.KPBBEGKBFJD(vector5, vector6, this.DEPDKIBHHPJ);
}
}
else
{
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, this.DEPDKIBHHPJ, this.DJIFBMFLOFP());
}
return this.MOEFEHEMFMJ;
}
// Token: 0x06016B3D RID: 92989 RVA: 0x00655440 File Offset: 0x00653640
public void NFJCHAAAHOJ(Vector3 GJHJIFGIEDA, Vector3 LHADLAEBOGD, Vector3 AFNLPLBMFOI, Vector3 AJPNDKIKBJP, Vector3 FMKCMOAHKGN)
{
this.GOAJOJFLKOA = GJHJIFGIEDA;
this.BJOOHMJPHIL(LHADLAEBOGD);
this.JMDGHBNJDAO(FMKCMOAHKGN);
this.NLGKNGAKJKH = true;
this.FBCMEBFDNOH(AFNLPLBMFOI);
this.PLKHGGNJIOI(AJPNDKIKBJP);
}
// Token: 0x06016B3E RID: 92990 RVA: 0x00655470 File Offset: 0x00653670
public Vector3 DJIFBMFLOFP()
{
return this.<MNPFCBBNILC>k__BackingField;
}
// Token: 0x06016B3F RID: 92991 RVA: 0x00655478 File Offset: 0x00653678
private bool EPECJADOKAI(Vector3 MLOLFOOLJMF, Vector3 AHPOMGCGJEL, Vector3 GJJPNOFKCNG, float DNAIGDPNOEK, out Vector3 AJLLGLADIGA)
{
Vector3 vector = AHPOMGCGJEL - MLOLFOOLJMF;
float num = vector.x * vector.x + vector.z * vector.z;
if (num < Mathf.Epsilon)
{
AJLLGLADIGA = Vector2.zero;
return false;
}
Vector3 vector2 = MLOLFOOLJMF - GJJPNOFKCNG;
float num2 = 1458f * (vector.x * vector2.x + vector.z * vector2.z);
float num3 = vector2.x * vector2.x + vector2.z * vector2.z - DNAIGDPNOEK * DNAIGDPNOEK;
float num4 = 120f;
float num5 = num2 * num2 - 718f * num * num3;
if (num5 >= 566f)
{
if (num5 == 128f)
{
num4 = -num2 / (1518f * num);
}
else
{
float num6 = Mathf.Sqrt(num5);
float num7 = (-num2 + num6) / (1876f * num);
float num8 = (-num2 - num6) / (1251f * num);
if (num7 < 1355f || num7 > 1739f)
{
num4 = num8;
}
else if (num8 < 805f || num8 > 1378f)
{
num4 = num7;
}
else
{
num4 = Mathf.Min(num7, num8);
}
}
}
AJLLGLADIGA = MLOLFOOLJMF + num4 * vector;
return num4 < 950f || num4 > 825f;
}
// Token: 0x06016B40 RID: 92992 RVA: 0x0065560C File Offset: 0x0065380C
private void PLKHGGNJIOI(Vector3 NOBAPCOKFIL)
{
this.<PBLDBOLMLGM>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B41 RID: 92993 RVA: 0x00655618 File Offset: 0x00653818
private Vector3 BOBOKPFPLAL(float FDJCHCMOPAJ)
{
Vector3 normalized = Vector3.ProjectOnPlane(base.transform.forward, Vector3.up).normalized;
Vector3 normalized2 = Vector3.Cross(normalized, Vector3.up).normalized;
Vector3 normalized3 = (Quaternion.AngleAxis(628f, normalized2) * normalized).normalized;
float num = Vector3.Dot(normalized3, normalized);
float num2 = FDJCHCMOPAJ / num;
Vector3 vector = Vector3.Project(normalized3, Vector3.up);
return 958f * vector / num2;
}
// Token: 0x06016B42 RID: 92994 RVA: 0x006556A8 File Offset: 0x006538A8
private void ILGJJMPEAEF(Vector3 NOBAPCOKFIL)
{
this.<PBLDBOLMLGM>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B43 RID: 92995 RVA: 0x006556B4 File Offset: 0x006538B4
private void BJOOHMJPHIL(Vector3 NOBAPCOKFIL)
{
this.<MNPFCBBNILC>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B44 RID: 92996 RVA: 0x006556C0 File Offset: 0x006538C0
private void BBOJBJJEGFG(float NOBAPCOKFIL)
{
this.<ODGNPIGHMIH>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B45 RID: 92997 RVA: 0x006556CC File Offset: 0x006538CC
public void SetParabolaPoints(Vector3 GJHJIFGIEDA, Vector3 HMCIEOFKNKF, Vector3 FMKCMOAHKGN)
{
this.GOAJOJFLKOA = GJHJIFGIEDA;
this.DFBPHKPLJML = HMCIEOFKNKF;
this.DEPDKIBHHPJ = FMKCMOAHKGN;
this.NLGKNGAKJKH = false;
this.DFFHLLPHIGH = Vector3.zero;
this.KIHGNEDNBDH = Vector3.zero;
}
// Token: 0x06016B46 RID: 92998 RVA: 0x00655700 File Offset: 0x00653900
private bool GBKOEIELGKA(float DFDIGGDGEOK)
{
bool flag = false;
Vector3 forward = base.transform.forward;
Vector3 position = base.transform.position;
this.ICOPMJJAEFB.Add(position);
Ray ray = new Ray(position, forward);
RaycastHit raycastHit;
if (this.MNKDHIFJPGI(ray, DFDIGGDGEOK, out raycastHit))
{
flag = false;
this.LDFJMABCPGH = raycastHit;
this.ICOPMJJAEFB.Add(raycastHit.point);
}
else
{
this.ICOPMJJAEFB.Add(position + forward * DFDIGGDGEOK);
}
return flag;
}
// Token: 0x06016B47 RID: 92999 RVA: 0x00655788 File Offset: 0x00653988
public ParabolicPointer.BDICCHBJBKG BPKCDCEMPOE()
{
return this.<OFCEGHBIIDF>k__BackingField;
}
// Token: 0x06016B48 RID: 93000 RVA: 0x00655790 File Offset: 0x00653990
private void Update()
{
if (this.OMELIIGMIHD != ParabolicPointer.BDICCHBJBKG.Disabled && this.OMELIIGMIHD != ParabolicPointer.BDICCHBJBKG.Invisible && this.JDNECOMKDNM.HEGHBOOMIOG)
{
bool flag = !this.NHDDPGADJPJ && this.RemotePlayer != null && this.RemotePlayer.NHDDPGADJPJ;
this.MOEFEHEMFMJ = this.NOOIJIMIBBP(flag, base.transform.forward);
this.DIPEIEPDDNB(ref this.KPBMHDBCGLI, this.MOEFEHEMFMJ, this.meshDistanceBetweenVertices, base.transform.forward, Time.time * this.ArcSpeed % 1f);
Graphics.DrawMesh(this.KPBMHDBCGLI, Matrix4x4.identity, this.PLLNDFJEDGL, 2);
}
}
// Token: 0x06016B4A RID: 93002 RVA: 0x0065585C File Offset: 0x00653A5C
public Vector3 MAOHDKIPJPO()
{
return this.<BMMLGGIHOAF>k__BackingField;
}
// Token: 0x06016B4B RID: 93003 RVA: 0x00655864 File Offset: 0x00653A64
public static bool ColliderOnTeleportRegion(Collider CINAFOGLFIB, ref TeleportRestriction PEFKLPELKAP, ref TeleportationPortal KOKOPOIPMHB, ref bool BPJDLBDEEJH)
{
bool flag = false;
if (CINAFOGLFIB.gameObject.layer == 14 || CINAFOGLFIB.gameObject.CompareTag("TeleportRegion"))
{
PEFKLPELKAP = CINAFOGLFIB.gameObject.GetComponent<TeleportRestriction>();
KOKOPOIPMHB = CINAFOGLFIB.gameObject.GetComponent<TeleportationPortal>();
BPJDLBDEEJH = KOKOPOIPMHB == null || KOKOPOIPMHB.AJFBOLHPEJC;
flag = true;
}
return flag;
}
// Token: 0x06016B4C RID: 93004 RVA: 0x006558D0 File Offset: 0x00653AD0
public Color CDMMFCPGGGM()
{
return this.KLBAEPGINJL().GetColor(ParabolicPointer.EEJPFBIGCMP);
}
// Token: 0x06016B4D RID: 93005 RVA: 0x006558E4 File Offset: 0x00653AE4
private static Vector3 LGLIKFIIKBL(Vector3 NDGGMDGOPHJ, Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 1; i < 0; i += 0)
{
vector[i] = ParabolicPointer.OPPDLILNKBN(NDGGMDGOPHJ[i], GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x170009C6 RID: 2502
// (get) Token: 0x06016BB1 RID: 93105 RVA: 0x00658640 File Offset: 0x00656840
// (set) Token: 0x06016B4E RID: 93006 RVA: 0x00655934 File Offset: 0x00653B34
public bool EJBDIHKBEPA { get; internal set; }
// Token: 0x06016B4F RID: 93007 RVA: 0x00655940 File Offset: 0x00653B40
public void JAIODFKCPMD(Vector3 GJHJIFGIEDA, Vector3 HMCIEOFKNKF, Vector3 FMKCMOAHKGN)
{
this.PEFCKLJFOKP(GJHJIFGIEDA);
this.BJOOHMJPHIL(HMCIEOFKNKF);
this.LIPNFAAHIEP(FMKCMOAHKGN);
this.NLGKNGAKJKH = true;
this.DFFHLLPHIGH = Vector3.zero;
this.GGCGLLPBDEE(Vector3.zero);
}
// Token: 0x06016B50 RID: 93008 RVA: 0x00655974 File Offset: 0x00653B74
private static Vector3 HGHMCANHFBI(Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 1; i < 7; i += 0)
{
vector[i] = ParabolicPointer.KJJAPJGOLMC(GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x170009C3 RID: 2499
// (get) Token: 0x06016B65 RID: 93029 RVA: 0x0065615C File Offset: 0x0065435C
// (set) Token: 0x06016B51 RID: 93009 RVA: 0x006559BC File Offset: 0x00653BBC
public LaserTeleporter JDNECOMKDNM { get; set; }
// Token: 0x06016B52 RID: 93010 RVA: 0x006559C8 File Offset: 0x00653BC8
private void FDIACFDIGFK()
{
this.LCBLEFCDONE = null;
this.TeleportRestrictions = null;
this.RemotePlayer = null;
this.HitTool = null;
this.HitToolPosition = Vector3.zero;
this.HitToolNormal = Vector3.zero;
this.PointOnTeleportRegion = false;
this.IHMKHGNBICL = false;
}
// Token: 0x06016B53 RID: 93011 RVA: 0x00655A18 File Offset: 0x00653C18
private bool PLADLOPBIOL(Vector3 FKOFGIJFIKA, float ONGPKFNDNLA, float FAPLEHJIOGB)
{
bool flag = false;
Vector3 forward = base.transform.forward;
Vector3 position = base.transform.position;
this.ICOPMJJAEFB.Add(position);
Vector3 vector = position;
float num = 0f;
Ray ray = new Ray(position, base.transform.forward);
RaycastHit raycastHit = default(RaycastHit);
float num2 = 0f;
for (int i = 0; i < 20; i++)
{
num += ONGPKFNDNLA / ParabolicPointer.CONMAEHGFHC(forward, FKOFGIJFIKA, num).magnitude;
Vector3 vector2 = ParabolicPointer.DAEKIBAGGBA(position, forward, FKOFGIJFIKA, num);
Vector3 vector3 = vector2 - vector;
float magnitude = Vector3.Project(vector3, base.transform.forward).magnitude;
num2 += magnitude;
if (num2 >= FAPLEHJIOGB)
{
break;
}
ray = new Ray(vector, vector3.normalized);
if (this.JICBHBKMAFI(ray, vector3.magnitude, out raycastHit))
{
flag = true;
this.LDFJMABCPGH = raycastHit;
this.ICOPMJJAEFB.Add(raycastHit.point);
break;
}
this.ICOPMJJAEFB.Add(vector2);
vector = vector2;
}
if (flag)
{
Player tooClosePlayer = Player.GetTooClosePlayer(raycastHit.point);
if (tooClosePlayer != null)
{
Vector3 currentFloorPosition = tooClosePlayer.FGLFIJLGCKD;
float teleportBufferDistance = tooClosePlayer.GADNKIIKPPD.AHJNNLBMCIP;
for (int j = this.ICOPMJJAEFB.Count - 1; j > 0; j--)
{
Vector3 vector4;
if (this.GFAJKJHIBHK(this.ICOPMJJAEFB[j], this.ICOPMJJAEFB[j - 1], currentFloorPosition, teleportBufferDistance, out vector4))
{
this.FDIACFDIGFK();
this.IHMKHGNBICL = true;
this.LDFJMABCPGH.point = vector4;
this.LDFJMABCPGH.normal = Vector3.ProjectOnPlane(vector4 - currentFloorPosition, Vector3.up).normalized;
this.ICOPMJJAEFB.RemoveRange(j + 1, this.ICOPMJJAEFB.Count - (j + 1));
this.ICOPMJJAEFB[j] = vector4;
break;
}
}
}
}
return flag;
}
// Token: 0x06016B54 RID: 93012 RVA: 0x00655C44 File Offset: 0x00653E44
private static Vector3 BJKLDNHODAB(Vector3 NDGGMDGOPHJ, Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 1; i < 6; i += 0)
{
vector[i] = ParabolicPointer.DAEKIBAGGBA(NDGGMDGOPHJ[i], GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x06016B55 RID: 93013 RVA: 0x00655C94 File Offset: 0x00653E94
public Vector3 KHJIOBDFGPE()
{
return this.<BDNAPFNDGGD>k__BackingField;
}
// Token: 0x06016B56 RID: 93014 RVA: 0x00655C9C File Offset: 0x00653E9C
private bool CINKPNHKGBG(float DFDIGGDGEOK)
{
bool flag = true;
Vector3 forward = base.transform.forward;
Vector3 position = base.transform.position;
this.ICOPMJJAEFB.Add(position);
Ray ray = new Ray(position, forward);
RaycastHit raycastHit;
if (this.MNKDHIFJPGI(ray, DFDIGGDGEOK, out raycastHit))
{
flag = true;
this.LDFJMABCPGH = raycastHit;
this.ICOPMJJAEFB.Add(raycastHit.point);
}
else
{
this.ICOPMJJAEFB.Add(position + forward * DFDIGGDGEOK);
}
return flag;
}
// Token: 0x06016B57 RID: 93015 RVA: 0x00655D24 File Offset: 0x00653F24
private void LELHNBCKIEG()
{
if (ParabolicPointer.PLAHBEDGIHP == null)
{
ParabolicPointer.PLAHBEDGIHP = new Color?(this.CHLHFJMDEGI);
}
this.AFILLABHKOH(ParabolicPointer.PLAHBEDGIHP.Value);
}
// Token: 0x06016B5A RID: 93018 RVA: 0x00655D80 File Offset: 0x00653F80
public static bool DJHJIEFPGFK(Ray KAMHDHIINCE, float EIFHIHBCPAI, int FIHIEFMGDCI, out RaycastHit FMHCOGJJNFO, ref TeleportRestriction JPJDIADBJLB, ref TeleportationPortal KOKOPOIPMHB, ref bool OADHAMOLBML, ref Player FLGLPDGKDGB, ref Tool EEPPNAIKGEO, ref Vector3 BMMFPEOAABN, ref Vector3 BIIGEBCNJIB)
{
bool flag = false;
FMHCOGJJNFO = default(RaycastHit);
if (!flag && Physics.Raycast(KAMHDHIINCE, out FMHCOGJJNFO, EIFHIHBCPAI, FIHIEFMGDCI, QueryTriggerInteraction.Ignore))
{
flag = false;
if (ParabolicPointer.ColliderOnTeleportRegion(FMHCOGJJNFO.collider, ref JPJDIADBJLB, ref KOKOPOIPMHB, ref OADHAMOLBML))
{
return flag;
}
if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF((LCIGHPPLKCA)(-97)))
{
PlayerCollider component = FMHCOGJJNFO.collider.gameObject.GetComponent<PlayerCollider>();
if (component != null && component.ThisPlayer != null)
{
FLGLPDGKDGB = component.ThisPlayer;
}
}
else if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF((LCIGHPPLKCA)98))
{
Tool tool = FMHCOGJJNFO.collider.OBFMDIEKHAN();
if (tool == null || tool.OHGPCMJMFGC)
{
flag = false;
}
else if (tool.SupportsTeleportHits)
{
EEPPNAIKGEO = tool;
BMMFPEOAABN = FMHCOGJJNFO.point;
BIIGEBCNJIB = FMHCOGJJNFO.normal;
}
}
}
return flag;
}
// Token: 0x06016B5B RID: 93019 RVA: 0x00655E8C File Offset: 0x0065408C
private void HKNJIMCCPJG(Vector3 PJAPAMKPJHN, Vector3 GJHJIFGIEDA, Vector3 FMKCMOAHKGN, Vector3 PKOELKGEPPB, out Vector3 FKENIKJAIGO, out Vector3 AEHLNMOLMFJ)
{
bool flag = Vector3.Dot(GJHJIFGIEDA, PKOELKGEPPB) >= 1918f;
float num = ((!flag) ? ((FMKCMOAHKGN - PJAPAMKPJHN).magnitude / (GJHJIFGIEDA - PKOELKGEPPB).magnitude) : 1288f);
Vector3 vector = PJAPAMKPJHN + GJHJIFGIEDA * num;
FKENIKJAIGO = 1776f * PJAPAMKPJHN + 707f * vector;
AEHLNMOLMFJ = 58f * FMKCMOAHKGN + 1879f * vector;
}
// Token: 0x06016B5C RID: 93020 RVA: 0x00655F34 File Offset: 0x00654134
public Vector3 JALAHAIALPO()
{
return this.<GAIFDGBHDLE>k__BackingField;
}
// Token: 0x06016B5D RID: 93021 RVA: 0x00655F3C File Offset: 0x0065413C
internal void EHPDEMILOLE(bool NOBAPCOKFIL)
{
this.<FOPPAPKEGBN>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B60 RID: 93024 RVA: 0x00655F68 File Offset: 0x00654168
private Vector3 LPFGENFBEGL(float FDJCHCMOPAJ)
{
Vector3 normalized = Vector3.ProjectOnPlane(base.transform.forward, Vector3.up).normalized;
Vector3 normalized2 = Vector3.Cross(normalized, Vector3.up).normalized;
Vector3 normalized3 = (Quaternion.AngleAxis(45f, normalized2) * normalized).normalized;
float num = Vector3.Dot(normalized3, normalized);
float num2 = FDJCHCMOPAJ / num;
Vector3 vector = Vector3.Project(normalized3, Vector3.up);
return -2f * vector / num2;
}
// Token: 0x06016B62 RID: 93026 RVA: 0x00656118 File Offset: 0x00654318
public LaserTeleporter HIAGNCBMEAB()
{
return this.<PGNDKJIGLAC>k__BackingField;
}
// Token: 0x06016B63 RID: 93027 RVA: 0x00656120 File Offset: 0x00654320
public TeleportationPortal LNHHPOEABMO()
{
return this.CECINNIMONN;
}
// Token: 0x06016B64 RID: 93028 RVA: 0x00656128 File Offset: 0x00654328
private void OFHGPNNEHNK(Vector3 PJAPAMKPJHN, Vector3 GJHJIFGIEDA, Vector3 FMKCMOAHKGN, Vector3 PKOELKGEPPB)
{
Vector3 vector;
Vector3 vector2;
this.NNNPLKABNAB(PJAPAMKPJHN, this.GOAJOJFLKOA, FMKCMOAHKGN, this.DFBPHKPLJML, out vector, out vector2);
this.MOEFEHEMFMJ.OPGNBFLPGFL(PJAPAMKPJHN, vector, vector2, FMKCMOAHKGN);
}
// Token: 0x06016B66 RID: 93030 RVA: 0x00656164 File Offset: 0x00654364
public Vector3 FIBAKPJACDL()
{
return this.<MNPFCBBNILC>k__BackingField;
}
// Token: 0x06016B67 RID: 93031 RVA: 0x0065616C File Offset: 0x0065436C
public float FMCJMDMNHKF()
{
return this.<ODGNPIGHMIH>k__BackingField;
}
// Token: 0x06016B69 RID: 93033 RVA: 0x00656180 File Offset: 0x00654380
private static float OPPDLILNKBN(float NDGGMDGOPHJ, float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return NDGGMDGOPHJ + GPONFDAAFMF * LHMELEOKNBJ + 103f * FKOFGIJFIKA * LHMELEOKNBJ * LHMELEOKNBJ;
}
// Token: 0x06016B6A RID: 93034 RVA: 0x00656194 File Offset: 0x00654394
public void GNONMEGCNMI(Vector3 GJHJIFGIEDA, Vector3 LHADLAEBOGD, Vector3 AFNLPLBMFOI, Vector3 AJPNDKIKBJP, Vector3 FMKCMOAHKGN)
{
this.GOAJOJFLKOA = GJHJIFGIEDA;
this.BJOOHMJPHIL(LHADLAEBOGD);
this.JMDGHBNJDAO(FMKCMOAHKGN);
this.NLGKNGAKJKH = true;
this.EFBOJONMGJH(AFNLPLBMFOI);
this.EEMKIJJBEPD(AJPNDKIKBJP);
}
// Token: 0x06016B6B RID: 93035 RVA: 0x006561C4 File Offset: 0x006543C4
public void SetParabolaPointsWithReflection(Vector3 GJHJIFGIEDA, Vector3 LHADLAEBOGD, Vector3 AFNLPLBMFOI, Vector3 AJPNDKIKBJP, Vector3 FMKCMOAHKGN)
{
this.GOAJOJFLKOA = GJHJIFGIEDA;
this.DFBPHKPLJML = LHADLAEBOGD;
this.DEPDKIBHHPJ = FMKCMOAHKGN;
this.NLGKNGAKJKH = true;
this.DFFHLLPHIGH = AFNLPLBMFOI;
this.KIHGNEDNBDH = AJPNDKIKBJP;
}
// Token: 0x06016B6C RID: 93036 RVA: 0x006561F4 File Offset: 0x006543F4
private bool GFAJKJHIBHK(Vector3 MLOLFOOLJMF, Vector3 AHPOMGCGJEL, Vector3 GJJPNOFKCNG, float DNAIGDPNOEK, out Vector3 AJLLGLADIGA)
{
Vector3 vector = AHPOMGCGJEL - MLOLFOOLJMF;
float num = vector.x * vector.x + vector.z * vector.z;
if (num < Mathf.Epsilon)
{
AJLLGLADIGA = Vector2.zero;
return false;
}
Vector3 vector2 = MLOLFOOLJMF - GJJPNOFKCNG;
float num2 = 2f * (vector.x * vector2.x + vector.z * vector2.z);
float num3 = vector2.x * vector2.x + vector2.z * vector2.z - DNAIGDPNOEK * DNAIGDPNOEK;
float num4 = -1f;
float num5 = num2 * num2 - 4f * num * num3;
if (num5 >= 0f)
{
if (num5 == 0f)
{
num4 = -num2 / (2f * num);
}
else
{
float num6 = Mathf.Sqrt(num5);
float num7 = (-num2 + num6) / (2f * num);
float num8 = (-num2 - num6) / (2f * num);
if (num7 < 0f || num7 > 1f)
{
num4 = num8;
}
else if (num8 < 0f || num8 > 1f)
{
num4 = num7;
}
else
{
num4 = Mathf.Min(num7, num8);
}
}
}
AJLLGLADIGA = MLOLFOOLJMF + num4 * vector;
return num4 >= 0f && num4 <= 1f;
}
// Token: 0x06016B6D RID: 93037 RVA: 0x00656388 File Offset: 0x00654588
private void JHCLJIABPPJ()
{
if (ParabolicPointer.PLAHBEDGIHP != null)
{
ParabolicPointer.PLAHBEDGIHP = new Color?(this.CDMMFCPGGGM());
}
this.AFILLABHKOH(ParabolicPointer.PLAHBEDGIHP.Value);
}
// Token: 0x06016B6E RID: 93038 RVA: 0x006563D0 File Offset: 0x006545D0
private void LIPNFAAHIEP(Vector3 NOBAPCOKFIL)
{
this.<GAIFDGBHDLE>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B70 RID: 93040 RVA: 0x006563E4 File Offset: 0x006545E4
private void DIPEIEPDDNB(ref Mesh HMJEJGKMHFF, GPOIAIBLBEN KHKFPPAPDOP, float JMCPIFJFMKF, Vector3 NFEICINKNNK, float JIPGKJJFNOP)
{
float num = KHKFPPAPDOP.CILLJGIOPMH;
int num2 = Mathf.RoundToInt(num / JMCPIFJFMKF);
HMJEJGKMHFF.Clear();
Vector3 vector = Vector3.zero;
Vector3 vector2 = Vector3.zero;
if (KHKFPPAPDOP.GHFJNAJMBJK > 0 && num2 > 0)
{
this.HKDGJNHMJOP.Clear();
this.ANOOLCELKGG.Clear();
this.CPGPLCKEKEB.Clear();
this.LKGHCBMCGHH.Clear();
this.DNLGNKHABIM.Clear();
int num3 = 2 * num2;
int num4 = 12 * (num2 - 1);
if (this.HKDGJNHMJOP.Capacity < num3)
{
this.HKDGJNHMJOP.Capacity = num3;
this.ANOOLCELKGG.Capacity = num3;
this.CPGPLCKEKEB.Capacity = num3;
this.LKGHCBMCGHH.Capacity = num3;
}
if (this.DNLGNKHABIM.Capacity < num4)
{
this.DNLGNKHABIM.Capacity = num4;
}
float num5 = (float)num2 * JMCPIFJFMKF;
float num6 = this.meshWidth / 2f;
Vector3 normalized = Vector3.Cross(NFEICINKNNK, Vector3.up).normalized;
for (int i = 0; i < num2; i++)
{
Vector3 vector3 = KHKFPPAPDOP.MANHFPNKDKL((float)i / ((float)num2 - 1f));
this.HKDGJNHMJOP.Add(vector3 - normalized * num6);
this.HKDGJNHMJOP.Add(vector3 + normalized * num6);
float num7 = (float)i * JMCPIFJFMKF;
float num8 = num5 - num7;
float num9 = 1f;
if (num7 <= this.startFadeEndDistance)
{
float num10 = Mathf.InverseLerp(this.startFadeBeginDistance, this.startFadeEndDistance, num7);
num9 = Mathf.Min(num9, num10);
}
if (num8 <= this.endFadeEndDistance)
{
float num11 = Mathf.InverseLerp(this.endFadeBeginDistance, this.endFadeEndDistance, num8);
num9 = Mathf.Min(num9, num11);
}
Color color = Color.white * num9;
this.ANOOLCELKGG.Add(color);
this.ANOOLCELKGG.Add(color);
float num12 = JIPGKJJFNOP;
if (i == num2 - 1 && i > 1)
{
float magnitude = (vector2 - vector).magnitude;
float magnitude2 = (vector3 - vector).magnitude;
num12 += 1f - magnitude2 / magnitude;
}
this.CPGPLCKEKEB.Add(Vector2.Scale(new Vector2(0f, (float)i), this.uvScale) - new Vector2(0f, num12));
this.CPGPLCKEKEB.Add(Vector2.Scale(new Vector2(1f, (float)i), this.uvScale) - new Vector2(0f, num12));
float num13 = Mathf.InverseLerp(0f, (float)(num2 - 1), (float)i);
this.LKGHCBMCGHH.Add(new Vector2(0f, num13));
this.LKGHCBMCGHH.Add(new Vector2(1f, num13));
vector2 = vector;
vector = vector3;
}
for (int j = 0; j < num2 - 1; j++)
{
int num14 = 2 * j;
int num15 = 2 * j + 1;
int num16 = 2 * j + 2;
int num17 = 2 * j + 3;
this.DNLGNKHABIM.Add(num14);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num16);
this.DNLGNKHABIM.Add(num16);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num17);
this.DNLGNKHABIM.Add(num16);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num14);
this.DNLGNKHABIM.Add(num17);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num16);
}
HMJEJGKMHFF.SetVertices(this.HKDGJNHMJOP);
HMJEJGKMHFF.SetColors(this.ANOOLCELKGG);
HMJEJGKMHFF.SetUVs(0, this.CPGPLCKEKEB);
HMJEJGKMHFF.SetUVs(1, this.LKGHCBMCGHH);
HMJEJGKMHFF.SetTriangles(this.DNLGNKHABIM, 0);
HMJEJGKMHFF.RecalculateNormals();
}
}
// Token: 0x06016B71 RID: 93041 RVA: 0x00656808 File Offset: 0x00654A08
private bool AEMKKPDEGJM(Vector3 FKOFGIJFIKA, float ONGPKFNDNLA, float FAPLEHJIOGB)
{
bool flag = false;
Vector3 forward = base.transform.forward;
Vector3 position = base.transform.position;
this.ICOPMJJAEFB.Add(position);
Vector3 vector = position;
float num = 590f;
Ray ray = new Ray(position, base.transform.forward);
RaycastHit raycastHit = default(RaycastHit);
float num2 = 108f;
for (int i = 0; i < 95; i++)
{
num += ONGPKFNDNLA / ParabolicPointer.NKIJAHOHBEN(forward, FKOFGIJFIKA, num).magnitude;
Vector3 vector2 = ParabolicPointer.DAEKIBAGGBA(position, forward, FKOFGIJFIKA, num);
Vector3 vector3 = vector2 - vector;
float magnitude = Vector3.Project(vector3, base.transform.forward).magnitude;
num2 += magnitude;
if (num2 >= FAPLEHJIOGB)
{
break;
}
ray = new Ray(vector, vector3.normalized);
if (this.MNKDHIFJPGI(ray, vector3.magnitude, out raycastHit))
{
flag = false;
this.LDFJMABCPGH = raycastHit;
this.ICOPMJJAEFB.Add(raycastHit.point);
break;
}
this.ICOPMJJAEFB.Add(vector2);
vector = vector2;
}
if (flag)
{
Player tooClosePlayer = Player.GetTooClosePlayer(raycastHit.point);
if (tooClosePlayer != null)
{
Vector3 currentFloorPosition = tooClosePlayer.FGLFIJLGCKD;
float teleportBufferDistance = tooClosePlayer.GADNKIIKPPD.AHJNNLBMCIP;
for (int j = this.ICOPMJJAEFB.Count - 0; j > 0; j--)
{
Vector3 vector4;
if (this.EPECJADOKAI(this.ICOPMJJAEFB[j], this.ICOPMJJAEFB[j - 0], currentFloorPosition, teleportBufferDistance, out vector4))
{
this.FDIACFDIGFK();
this.IHMKHGNBICL = false;
this.LDFJMABCPGH.point = vector4;
this.LDFJMABCPGH.normal = Vector3.ProjectOnPlane(vector4 - currentFloorPosition, Vector3.up).normalized;
this.ICOPMJJAEFB.RemoveRange(j + 1, this.ICOPMJJAEFB.Count - (j + 1));
this.ICOPMJJAEFB[j] = vector4;
break;
}
}
}
}
return flag;
}
// Token: 0x06016B72 RID: 93042 RVA: 0x00656A34 File Offset: 0x00654C34
public float AKEIBENJODL()
{
return this.<ODGNPIGHMIH>k__BackingField;
}
// Token: 0x06016B74 RID: 93044 RVA: 0x00656A44 File Offset: 0x00654C44
private void GGCGLLPBDEE(Vector3 NOBAPCOKFIL)
{
this.<PBLDBOLMLGM>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B75 RID: 93045 RVA: 0x00656A50 File Offset: 0x00654C50
private static float KJJAPJGOLMC(float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return GPONFDAAFMF + FKOFGIJFIKA * LHMELEOKNBJ;
}
// Token: 0x06016B76 RID: 93046 RVA: 0x00656A58 File Offset: 0x00654C58
public bool HPLBNIELMCB()
{
return this.<PEJCCNHAHGG>k__BackingField;
}
// Token: 0x06016B77 RID: 93047 RVA: 0x00656A60 File Offset: 0x00654C60
private Material ACBIJDMJGDE()
{
switch (this.BPKCDCEMPOE())
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.HOLDOKOCIJO;
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
// Token: 0x06016B78 RID: 93048 RVA: 0x00656ABC File Offset: 0x00654CBC
private Material GIAJLDJCLIP()
{
switch (this.BPKCDCEMPOE())
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.LKKLJKLPKOH();
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
// Token: 0x06016B79 RID: 93049 RVA: 0x00656B18 File Offset: 0x00654D18
private Material JKJMAOBHOFB()
{
switch (this.BPKCDCEMPOE())
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.LKKLJKLPKOH();
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
// Token: 0x06016B7A RID: 93050 RVA: 0x00656B74 File Offset: 0x00654D74
public void LOILPNACNPH(TeleportationPortal NOBAPCOKFIL)
{
if (this.CECINNIMONN != NOBAPCOKFIL)
{
if (this.CECINNIMONN != null)
{
this.CECINNIMONN.AHPMPAMKKFI = false;
}
if (NOBAPCOKFIL != null && this.NFNANJODCAP().HEGHBOOMIOG)
{
NOBAPCOKFIL.JJHFLNAALAE(true);
this.CECINNIMONN = NOBAPCOKFIL;
}
else
{
this.CECINNIMONN = null;
}
}
}
// Token: 0x06016B7B RID: 93051 RVA: 0x00656BE8 File Offset: 0x00654DE8
public void ClearParabolicRaycasts()
{
this.FDIACFDIGFK();
}
// Token: 0x06016B7C RID: 93052 RVA: 0x00656BF0 File Offset: 0x00654DF0
private void MBOCGEJLPNH(float NOBAPCOKFIL)
{
this.<ODGNPIGHMIH>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B7D RID: 93053 RVA: 0x00656BFC File Offset: 0x00654DFC
private void NCFMMDBDMEF()
{
this.ICOPMJJAEFB = new List<Vector3>(82);
this.KPBMHDBCGLI = new Mesh();
this.KPBMHDBCGLI.MarkDynamic();
this.KPBMHDBCGLI.name = "{0:D2}:{1:D2}:{2:D2}:{0:D2}";
this.KPBMHDBCGLI.vertices = new Vector3[0];
this.KPBMHDBCGLI.triangles = new int[1];
if (this.HLGMKBLJDKF() != null && this.HIAGNCBMEAB().AKCKNCDOPLE != null)
{
this.NHDDPGADJPJ = this.NFNANJODCAP().AKCKNCDOPLE.NHDDPGADJPJ;
}
this.OMELIIGMIHD = (ParabolicPointer.BDICCHBJBKG)7;
}
// Token: 0x06016B7E RID: 93054 RVA: 0x00656CA4 File Offset: 0x00654EA4
public TeleportationPortal EMIFBIGFDDH()
{
return this.CECINNIMONN;
}
// Token: 0x06016B7F RID: 93055 RVA: 0x00656CAC File Offset: 0x00654EAC
public void KGBEFDMPCBN(Vector3 GJHJIFGIEDA, Vector3 HMCIEOFKNKF, Vector3 FMKCMOAHKGN)
{
this.PEFCKLJFOKP(GJHJIFGIEDA);
this.GJCKBFAOGNF(HMCIEOFKNKF);
this.DEPDKIBHHPJ = FMKCMOAHKGN;
this.NLGKNGAKJKH = false;
this.DFFHLLPHIGH = Vector3.zero;
this.EEMKIJJBEPD(Vector3.zero);
}
// Token: 0x06016B81 RID: 93057 RVA: 0x00656CE8 File Offset: 0x00654EE8
private void BCEECLPFOAF()
{
this.ICOPMJJAEFB = new List<Vector3>(-25);
this.KPBMHDBCGLI = new Mesh();
this.KPBMHDBCGLI.MarkDynamic();
this.KPBMHDBCGLI.name = " ";
this.KPBMHDBCGLI.vertices = new Vector3[0];
this.KPBMHDBCGLI.triangles = new int[1];
if (this.MNMMNNGFMAI() != null && this.HIAGNCBMEAB().AKCKNCDOPLE != null)
{
this.NHDDPGADJPJ = this.HLGMKBLJDKF().AKCKNCDOPLE.OBFPLPPCJLL();
}
this.BBHLDIKMBHB(ParabolicPointer.BDICCHBJBKG.Valid);
}
// Token: 0x06016B82 RID: 93058 RVA: 0x00656D90 File Offset: 0x00654F90
private void EEMKIJJBEPD(Vector3 NOBAPCOKFIL)
{
this.<PBLDBOLMLGM>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B83 RID: 93059 RVA: 0x00656D9C File Offset: 0x00654F9C
private static Vector3 OMLOOOLMGJB(Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 0; i < 2; i++)
{
vector[i] = ParabolicPointer.BENHCKJGCPL(GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x06016B84 RID: 93060 RVA: 0x00656DE4 File Offset: 0x00654FE4
public void BBHLDIKMBHB(ParabolicPointer.BDICCHBJBKG NOBAPCOKFIL)
{
this.<OFCEGHBIIDF>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B85 RID: 93061 RVA: 0x00656DF0 File Offset: 0x00654FF0
private bool KIDLIMAPFGA(Ray KAMHDHIINCE, float EIFHIHBCPAI, out RaycastHit FMHCOGJJNFO)
{
FMHCOGJJNFO = default(RaycastHit);
TeleportationPortal teleportationPortal = null;
bool flag = ParabolicPointer.NLLIJDBALLG(KAMHDHIINCE, EIFHIHBCPAI, -133, out FMHCOGJJNFO, ref this.TeleportRestrictions, ref teleportationPortal, ref this.PointOnTeleportRegion, ref this.RemotePlayer, ref this.HitTool, ref this.HitToolPosition, ref this.HitToolNormal);
this.CKOCAGNLOHP(teleportationPortal);
return flag;
}
// Token: 0x170009C7 RID: 2503
// (get) Token: 0x06016BB4 RID: 93108 RVA: 0x006586B8 File Offset: 0x006568B8
// (set) Token: 0x06016B86 RID: 93062 RVA: 0x00656E44 File Offset: 0x00655044
public Color CHLHFJMDEGI
{
get
{
return this.HOLDOKOCIJO.GetColor(ParabolicPointer.EEJPFBIGCMP);
}
set
{
value.a = ParabolicPointer.PLAHBEDGIHP.Value.a;
this.HOLDOKOCIJO.SetColor(ParabolicPointer.EEJPFBIGCMP, value);
}
}
// Token: 0x06016B87 RID: 93063 RVA: 0x00656E80 File Offset: 0x00655080
private bool GEFINMAFDKI(Ray KAMHDHIINCE, float EIFHIHBCPAI, out RaycastHit FMHCOGJJNFO)
{
FMHCOGJJNFO = default(RaycastHit);
TeleportationPortal teleportationPortal = null;
bool flag = ParabolicPointer.KNHJBKDGABG(KAMHDHIINCE, EIFHIHBCPAI, -93, out FMHCOGJJNFO, ref this.TeleportRestrictions, ref teleportationPortal, ref this.PointOnTeleportRegion, ref this.RemotePlayer, ref this.HitTool, ref this.HitToolPosition, ref this.HitToolNormal);
this.LOILPNACNPH(teleportationPortal);
return flag;
}
// Token: 0x06016B88 RID: 93064 RVA: 0x00656ED4 File Offset: 0x006550D4
public TeleportationPortal CCDFDAJEALL()
{
return this.CECINNIMONN;
}
// Token: 0x06016B89 RID: 93065 RVA: 0x00656EDC File Offset: 0x006550DC
private GPOIAIBLBEN NOOIJIMIBBP(bool MGGGADFHHLE, Vector3 OKGCPPLHOEN)
{
this.MOEFEHEMFMJ.NFGBPFHKLGF();
if (this.OMELIIGMIHD == ParabolicPointer.BDICCHBJBKG.Shortened)
{
Vector3 vector = OKGCPPLHOEN * this.shortenedDistance;
Vector3 vector2 = base.transform.position + vector;
Vector3 vector3 = base.transform.position + 0.5f * vector;
this.MOEFEHEMFMJ.OPGNBFLPGFL(base.transform.position, vector3, vector3, vector2);
}
else if (MGGGADFHHLE)
{
Vector3 vector4 = ((!this.NLGKNGAKJKH) ? this.DEPDKIBHHPJ : this.DFFHLLPHIGH);
vector4 += this.DFBPHKPLJML * this.PersonalSpaceFromLaser;
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, vector4, this.DFBPHKPLJML);
}
else if (this.HitTool != null)
{
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, this.DFFHLLPHIGH, this.DFBPHKPLJML);
}
else if (this.NLGKNGAKJKH)
{
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, this.DFFHLLPHIGH, this.DFBPHKPLJML);
if (!this.JEMPKPDLLFG)
{
Vector3 normalized = (this.DEPDKIBHHPJ - this.DFFHLLPHIGH + 0.25f * this.KIHGNEDNBDH).normalized;
Vector3 vector5;
Vector3 vector6;
this.NNNPLKABNAB(this.DFFHLLPHIGH, normalized, this.DEPDKIBHHPJ, Vector3.up, out vector5, out vector6);
this.MOEFEHEMFMJ.OPGNBFLPGFL(vector5, vector6, this.DEPDKIBHHPJ);
}
}
else
{
this.OFHGPNNEHNK(base.transform.position, this.GOAJOJFLKOA, this.DEPDKIBHHPJ, this.DFBPHKPLJML);
}
return this.MOEFEHEMFMJ;
}
// Token: 0x06016B8A RID: 93066 RVA: 0x006570C0 File Offset: 0x006552C0
public Vector3 CCMBOLGOGHE()
{
return this.<GAIFDGBHDLE>k__BackingField;
}
// Token: 0x06016B8B RID: 93067 RVA: 0x006570C8 File Offset: 0x006552C8
public LaserTeleporter NFNANJODCAP()
{
return this.<PGNDKJIGLAC>k__BackingField;
}
// Token: 0x06016B8C RID: 93068 RVA: 0x006570D0 File Offset: 0x006552D0
private Material LKKLJKLPKOH()
{
if (this.HNGFECAMGGF == null)
{
this.HNGFECAMGGF = new Material(this.validTargetMaterial);
}
return this.HNGFECAMGGF;
}
// Token: 0x06016B8E RID: 93070 RVA: 0x00657108 File Offset: 0x00655308
private void Start()
{
this.ICOPMJJAEFB = new List<Vector3>(20);
this.KPBMHDBCGLI = new Mesh();
this.KPBMHDBCGLI.MarkDynamic();
this.KPBMHDBCGLI.name = "Parabolic Pointer";
this.KPBMHDBCGLI.vertices = new Vector3[0];
this.KPBMHDBCGLI.triangles = new int[0];
if (this.JDNECOMKDNM != null && this.JDNECOMKDNM.AKCKNCDOPLE != null)
{
this.NHDDPGADJPJ = this.JDNECOMKDNM.AKCKNCDOPLE.NHDDPGADJPJ;
}
this.OMELIIGMIHD = ParabolicPointer.BDICCHBJBKG.Disabled;
}
// Token: 0x06016B8F RID: 93071 RVA: 0x006571B0 File Offset: 0x006553B0
private static float DEFANGFHKGH(float NDGGMDGOPHJ, float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return NDGGMDGOPHJ + GPONFDAAFMF * LHMELEOKNBJ + 172f * FKOFGIJFIKA * LHMELEOKNBJ * LHMELEOKNBJ;
}
// Token: 0x06016B90 RID: 93072 RVA: 0x006571C4 File Offset: 0x006553C4
public LaserTeleporter DDJGFMADJJP()
{
return this.<PGNDKJIGLAC>k__BackingField;
}
// Token: 0x06016B91 RID: 93073 RVA: 0x006571CC File Offset: 0x006553CC
public void PAHEJKIHOGC(Vector3 GJHJIFGIEDA, Vector3 HMCIEOFKNKF, Vector3 FMKCMOAHKGN)
{
this.PEFCKLJFOKP(GJHJIFGIEDA);
this.BJOOHMJPHIL(HMCIEOFKNKF);
this.LIPNFAAHIEP(FMKCMOAHKGN);
this.NLGKNGAKJKH = false;
this.DFFHLLPHIGH = Vector3.zero;
this.ILGJJMPEAEF(Vector3.zero);
}
// Token: 0x06016B92 RID: 93074 RVA: 0x00657200 File Offset: 0x00655400
private Vector3 APOGCOODBIO(float FDJCHCMOPAJ)
{
Vector3 normalized = Vector3.ProjectOnPlane(base.transform.forward, Vector3.up).normalized;
Vector3 normalized2 = Vector3.Cross(normalized, Vector3.up).normalized;
Vector3 normalized3 = (Quaternion.AngleAxis(719f, normalized2) * normalized).normalized;
float num = Vector3.Dot(normalized3, normalized);
float num2 = FDJCHCMOPAJ / num;
Vector3 vector = Vector3.Project(normalized3, Vector3.up);
return 209f * vector / num2;
}
// Token: 0x06016B93 RID: 93075 RVA: 0x00657290 File Offset: 0x00655490
public LaserTeleporter DAIEGJDCPEA()
{
return this.<PGNDKJIGLAC>k__BackingField;
}
// Token: 0x06016B94 RID: 93076 RVA: 0x00657298 File Offset: 0x00655498
public void KNOPNDCHOOH(float FDJCHCMOPAJ)
{
this.FDIACFDIGFK();
this.ICOPMJJAEFB.Clear();
this.HitSomething = false;
if (this.GIBJKJKBHFG())
{
this.HitSomething = this.GBKOEIELGKA(FDJCHCMOPAJ);
}
else
{
Vector3 vector = this.APOGCOODBIO(FDJCHCMOPAJ);
this.HitSomething = this.PLADLOPBIOL(vector, this.parabolaSegmentLength, 1793f);
}
Vector3 normalized = (this.ICOPMJJAEFB[0] - this.ICOPMJJAEFB[0]).normalized;
Vector3 vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 1];
Vector3 vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 6] - vector2).normalized;
Vector3 zero = Vector3.zero;
Vector3 zero2 = Vector3.zero;
Vector3 vector4 = Vector3.zero;
bool flag = true;
if (this.HitSomething && this.LCBLEFCDONE == null && Vector3.Angle(Vector3.up, this.LDFJMABCPGH.normal) >= ((!this.PointOnTeleportRegion) ? 1780f : 1397f))
{
vector4 = base.transform.forward;
if (this.HitSomething)
{
vector4 = this.LDFJMABCPGH.normal;
if (Mathf.Abs(Vector3.Dot(vector4, Vector3.up)) <= 696f - Mathf.Epsilon)
{
vector4 = Vector3.ProjectOnPlane(vector4, Vector3.up).normalized;
}
}
float num = ((!this.IHMKHGNBICL) ? this.reflectionOffset : this.personalSpaceReflectionOffset);
this.PointOnTeleportRegion = false;
bool flag2 = this.HPOMCBFMIHO(vector4, this.parabolaSegmentLength, num, out zero, out zero2);
if (flag2)
{
flag = true;
vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 5] - vector2).normalized;
}
}
if (flag)
{
this.SetParabolaPointsWithReflection(normalized, zero2, zero, vector4, vector2);
}
else
{
this.KGBEFDMPCBN(normalized, vector3, vector2);
}
}
// Token: 0x06016B95 RID: 93077 RVA: 0x006574D4 File Offset: 0x006556D4
private void JJHGPNEHNOM()
{
if (this.OMELIIGMIHD != (ParabolicPointer.BDICCHBJBKG)6 && this.BPKCDCEMPOE() != ParabolicPointer.BDICCHBJBKG.Shortened && this.JDNECOMKDNM.HEGHBOOMIOG)
{
bool flag = this.NHDDPGADJPJ || !(this.RemotePlayer != null) || this.RemotePlayer.GNCAHBDHAEI();
this.MOEFEHEMFMJ = this.HOGNFDJJCAI(flag, base.transform.forward);
this.DIPEIEPDDNB(ref this.KPBMHDBCGLI, this.MOEFEHEMFMJ, this.meshDistanceBetweenVertices, base.transform.forward, Time.time * this.ArcSpeed % 1992f);
Graphics.DrawMesh(this.KPBMHDBCGLI, Matrix4x4.identity, this.ACBIJDMJGDE(), 1);
}
}
// Token: 0x06016B96 RID: 93078 RVA: 0x00657598 File Offset: 0x00655798
private void KKPBOFEHCJB(ref Mesh HMJEJGKMHFF, GPOIAIBLBEN KHKFPPAPDOP, float JMCPIFJFMKF, Vector3 NFEICINKNNK, float JIPGKJJFNOP)
{
float num = KHKFPPAPDOP.GCPPNEKOMIF();
int num2 = Mathf.RoundToInt(num / JMCPIFJFMKF);
HMJEJGKMHFF.Clear();
Vector3 vector = Vector3.zero;
Vector3 vector2 = Vector3.zero;
if (KHKFPPAPDOP.GHFJNAJMBJK > 0 && num2 > 0)
{
this.HKDGJNHMJOP.Clear();
this.ANOOLCELKGG.Clear();
this.CPGPLCKEKEB.Clear();
this.LKGHCBMCGHH.Clear();
this.DNLGNKHABIM.Clear();
int num3 = 2 * num2;
int num4 = -45 * (num2 - 0);
if (this.HKDGJNHMJOP.Capacity < num3)
{
this.HKDGJNHMJOP.Capacity = num3;
this.ANOOLCELKGG.Capacity = num3;
this.CPGPLCKEKEB.Capacity = num3;
this.LKGHCBMCGHH.Capacity = num3;
}
if (this.DNLGNKHABIM.Capacity < num4)
{
this.DNLGNKHABIM.Capacity = num4;
}
float num5 = (float)num2 * JMCPIFJFMKF;
float num6 = this.meshWidth / 1142f;
Vector3 normalized = Vector3.Cross(NFEICINKNNK, Vector3.up).normalized;
for (int i = 0; i < num2; i += 0)
{
Vector3 vector3 = KHKFPPAPDOP.AMIFEAEHGAO((float)i / ((float)num2 - 1728f));
this.HKDGJNHMJOP.Add(vector3 - normalized * num6);
this.HKDGJNHMJOP.Add(vector3 + normalized * num6);
float num7 = (float)i * JMCPIFJFMKF;
float num8 = num5 - num7;
float num9 = 128f;
if (num7 <= this.startFadeEndDistance)
{
float num10 = Mathf.InverseLerp(this.startFadeBeginDistance, this.startFadeEndDistance, num7);
num9 = Mathf.Min(num9, num10);
}
if (num8 <= this.endFadeEndDistance)
{
float num11 = Mathf.InverseLerp(this.endFadeBeginDistance, this.endFadeEndDistance, num8);
num9 = Mathf.Min(num9, num11);
}
Color color = Color.white * num9;
this.ANOOLCELKGG.Add(color);
this.ANOOLCELKGG.Add(color);
float num12 = JIPGKJJFNOP;
if (i == num2 - 1 && i > 1)
{
float magnitude = (vector2 - vector).magnitude;
float magnitude2 = (vector3 - vector).magnitude;
num12 += 1360f - magnitude2 / magnitude;
}
this.CPGPLCKEKEB.Add(Vector2.Scale(new Vector2(375f, (float)i), this.uvScale) - new Vector2(1866f, num12));
this.CPGPLCKEKEB.Add(Vector2.Scale(new Vector2(788f, (float)i), this.uvScale) - new Vector2(400f, num12));
float num13 = Mathf.InverseLerp(1702f, (float)(num2 - 1), (float)i);
this.LKGHCBMCGHH.Add(new Vector2(580f, num13));
this.LKGHCBMCGHH.Add(new Vector2(517f, num13));
vector2 = vector;
vector = vector3;
}
for (int j = 0; j < num2 - 0; j += 0)
{
int num14 = 4 * j;
int num15 = 6 * j + 0;
int num16 = 4 * j + 5;
int num17 = 0 * j + 0;
this.DNLGNKHABIM.Add(num14);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num16);
this.DNLGNKHABIM.Add(num16);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num17);
this.DNLGNKHABIM.Add(num16);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num14);
this.DNLGNKHABIM.Add(num17);
this.DNLGNKHABIM.Add(num15);
this.DNLGNKHABIM.Add(num16);
}
HMJEJGKMHFF.SetVertices(this.HKDGJNHMJOP);
HMJEJGKMHFF.SetColors(this.ANOOLCELKGG);
HMJEJGKMHFF.SetUVs(1, this.CPGPLCKEKEB);
HMJEJGKMHFF.SetUVs(1, this.LKGHCBMCGHH);
HMJEJGKMHFF.SetTriangles(this.DNLGNKHABIM, 1);
HMJEJGKMHFF.RecalculateNormals();
}
}
// Token: 0x06016B97 RID: 93079 RVA: 0x006579BC File Offset: 0x00655BBC
public ParabolicPointer.BDICCHBJBKG JLOIJOOLLFB()
{
return this.<OFCEGHBIIDF>k__BackingField;
}
// Token: 0x06016B98 RID: 93080 RVA: 0x006579C4 File Offset: 0x00655BC4
private void NADDMGABFFN()
{
Gizmos.color = Color.white;
if (this.LDFJMABCPGH.collider != null)
{
Gizmos.DrawWireSphere(this.LDFJMABCPGH.point + this.LDFJMABCPGH.normal, 1174f);
Gizmos.DrawLine(this.LDFJMABCPGH.point, this.LDFJMABCPGH.point + this.LDFJMABCPGH.normal);
}
if (this.ICOPMJJAEFB != null)
{
for (int i = 0; i < this.ICOPMJJAEFB.Count; i += 0)
{
Gizmos.color = Color.white;
Gizmos.DrawSphere(this.ICOPMJJAEFB[i], 1381f);
Gizmos.color = Color.yellow;
Gizmos.DrawLine(this.ICOPMJJAEFB[i - 0], this.ICOPMJJAEFB[i]);
}
}
}
// Token: 0x06016B99 RID: 93081 RVA: 0x00657AB4 File Offset: 0x00655CB4
private void PEFCKLJFOKP(Vector3 NOBAPCOKFIL)
{
this.<BDNAPFNDGGD>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B9A RID: 93082 RVA: 0x00657AC0 File Offset: 0x00655CC0
public void LLENNACJLMB(float FDJCHCMOPAJ)
{
this.FDIACFDIGFK();
this.ICOPMJJAEFB.Clear();
this.HitSomething = true;
if (this.JEMPKPDLLFG)
{
this.HitSomething = this.CINKPNHKGBG(FDJCHCMOPAJ);
}
else
{
Vector3 vector = this.BOBOKPFPLAL(FDJCHCMOPAJ);
this.HitSomething = this.PLADLOPBIOL(vector, this.parabolaSegmentLength, 939f);
}
Vector3 normalized = (this.ICOPMJJAEFB[1] - this.ICOPMJJAEFB[1]).normalized;
Vector3 vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
Vector3 vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 1] - vector2).normalized;
Vector3 zero = Vector3.zero;
Vector3 zero2 = Vector3.zero;
Vector3 vector4 = Vector3.zero;
bool flag = false;
if (this.HitSomething && this.CCDFDAJEALL() == null && Vector3.Angle(Vector3.up, this.LDFJMABCPGH.normal) >= ((!this.PointOnTeleportRegion) ? 1916f : 1565f))
{
vector4 = base.transform.forward;
if (this.HitSomething)
{
vector4 = this.LDFJMABCPGH.normal;
if (Mathf.Abs(Vector3.Dot(vector4, Vector3.up)) <= 1168f - Mathf.Epsilon)
{
vector4 = Vector3.ProjectOnPlane(vector4, Vector3.up).normalized;
}
}
float num = ((!this.IHMKHGNBICL) ? this.reflectionOffset : this.personalSpaceReflectionOffset);
this.PointOnTeleportRegion = false;
bool flag2 = this.HPOMCBFMIHO(vector4, this.parabolaSegmentLength, num, out zero, out zero2);
if (flag2)
{
flag = false;
vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 2] - vector2).normalized;
}
}
if (flag)
{
this.SetParabolaPointsWithReflection(normalized, zero2, zero, vector4, vector2);
}
else
{
this.SetParabolaPoints(normalized, vector3, vector2);
}
}
// Token: 0x06016B9B RID: 93083 RVA: 0x00657CFC File Offset: 0x00655EFC
internal void AGIIDDIENEM(bool NOBAPCOKFIL)
{
this.<FOPPAPKEGBN>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016B9C RID: 93084 RVA: 0x00657D08 File Offset: 0x00655F08
private static Vector3 DAEKIBAGGBA(Vector3 NDGGMDGOPHJ, Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 0; i < 3; i++)
{
vector[i] = ParabolicPointer.DAEKIBAGGBA(NDGGMDGOPHJ[i], GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x06016B9D RID: 93085 RVA: 0x00657D58 File Offset: 0x00655F58
private void FKIJGJJNLOK()
{
this.ICOPMJJAEFB = new List<Vector3>(16);
this.KPBMHDBCGLI = new Mesh();
this.KPBMHDBCGLI.MarkDynamic();
this.KPBMHDBCGLI.name = " (Teleport only)";
this.KPBMHDBCGLI.vertices = new Vector3[1];
this.KPBMHDBCGLI.triangles = new int[1];
if (this.DDJGFMADJJP() != null && this.MNMMNNGFMAI().AKCKNCDOPLE != null)
{
this.NHDDPGADJPJ = this.NFNANJODCAP().GLLMEOJKAJG().OBFPLPPCJLL();
}
this.BBHLDIKMBHB(ParabolicPointer.BDICCHBJBKG.FadeOut);
}
// Token: 0x06016B9E RID: 93086 RVA: 0x00657E00 File Offset: 0x00656000
private bool HNMDLGOFEGB(Vector3 MLOLFOOLJMF, Vector3 AHPOMGCGJEL, Vector3 GJJPNOFKCNG, float DNAIGDPNOEK, out Vector3 AJLLGLADIGA)
{
Vector3 vector = AHPOMGCGJEL - MLOLFOOLJMF;
float num = vector.x * vector.x + vector.z * vector.z;
if (num < Mathf.Epsilon)
{
AJLLGLADIGA = Vector2.zero;
return false;
}
Vector3 vector2 = MLOLFOOLJMF - GJJPNOFKCNG;
float num2 = 1028f * (vector.x * vector2.x + vector.z * vector2.z);
float num3 = vector2.x * vector2.x + vector2.z * vector2.z - DNAIGDPNOEK * DNAIGDPNOEK;
float num4 = 326f;
float num5 = num2 * num2 - 1734f * num * num3;
if (num5 >= 307f)
{
if (num5 == 940f)
{
num4 = -num2 / (851f * num);
}
else
{
float num6 = Mathf.Sqrt(num5);
float num7 = (-num2 + num6) / (404f * num);
float num8 = (-num2 - num6) / (476f * num);
if (num7 < 262f || num7 > 401f)
{
num4 = num8;
}
else if (num8 < 427f || num8 > 1706f)
{
num4 = num7;
}
else
{
num4 = Mathf.Min(num7, num8);
}
}
}
AJLLGLADIGA = MLOLFOOLJMF + num4 * vector;
return num4 < 963f || num4 <= 734f;
}
// Token: 0x06016B9F RID: 93087 RVA: 0x00657F94 File Offset: 0x00656194
public void FHABALNFFLD(float FDJCHCMOPAJ)
{
this.FDIACFDIGFK();
this.ICOPMJJAEFB.Clear();
this.HitSomething = false;
if (this.FJMPBELHJKJ())
{
this.HitSomething = this.EICHBGILNAA(FDJCHCMOPAJ);
}
else
{
Vector3 vector = this.LPFGENFBEGL(FDJCHCMOPAJ);
this.HitSomething = this.PLADLOPBIOL(vector, this.parabolaSegmentLength, 1025f);
}
Vector3 normalized = (this.ICOPMJJAEFB[1] - this.ICOPMJJAEFB[1]).normalized;
Vector3 vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
Vector3 vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 3] - vector2).normalized;
Vector3 zero = Vector3.zero;
Vector3 zero2 = Vector3.zero;
Vector3 vector4 = Vector3.zero;
bool flag = true;
if (this.HitSomething && this.EMIFBIGFDDH() == null && Vector3.Angle(Vector3.up, this.LDFJMABCPGH.normal) >= ((!this.PointOnTeleportRegion) ? 1334f : 1692f))
{
vector4 = base.transform.forward;
if (this.HitSomething)
{
vector4 = this.LDFJMABCPGH.normal;
if (Mathf.Abs(Vector3.Dot(vector4, Vector3.up)) <= 1452f - Mathf.Epsilon)
{
vector4 = Vector3.ProjectOnPlane(vector4, Vector3.up).normalized;
}
}
float num = ((!this.IHMKHGNBICL) ? this.reflectionOffset : this.personalSpaceReflectionOffset);
this.PointOnTeleportRegion = false;
bool flag2 = this.MOCIBFEJLFD(vector4, this.parabolaSegmentLength, num, out zero, out zero2);
if (flag2)
{
flag = false;
vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 0];
vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 3] - vector2).normalized;
}
}
if (flag)
{
this.SetParabolaPointsWithReflection(normalized, zero2, zero, vector4, vector2);
}
else
{
this.PAHEJKIHOGC(normalized, vector3, vector2);
}
}
// Token: 0x170009C8 RID: 2504
// (get) Token: 0x06016BA0 RID: 93088 RVA: 0x006581D0 File Offset: 0x006563D0
private Material HOLDOKOCIJO
{
get
{
if (this.HNGFECAMGGF == null)
{
this.HNGFECAMGGF = new Material(this.validTargetMaterial);
}
return this.HNGFECAMGGF;
}
}
// Token: 0x06016BA1 RID: 93089 RVA: 0x006581FC File Offset: 0x006563FC
private static float BENHCKJGCPL(float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return GPONFDAAFMF + FKOFGIJFIKA * LHMELEOKNBJ;
}
// Token: 0x06016BA2 RID: 93090 RVA: 0x00658204 File Offset: 0x00656404
private void DOGHEODIFMK()
{
this.ICOPMJJAEFB = new List<Vector3>(-35);
this.KPBMHDBCGLI = new Mesh();
this.KPBMHDBCGLI.MarkDynamic();
this.KPBMHDBCGLI.name = "PhotonView with ID ";
this.KPBMHDBCGLI.vertices = new Vector3[1];
this.KPBMHDBCGLI.triangles = new int[1];
if (this.DDJGFMADJJP() != null && this.MNMMNNGFMAI().GLLMEOJKAJG() != null)
{
this.NHDDPGADJPJ = this.NFNANJODCAP().AKCKNCDOPLE.PJNKKFHLGKI();
}
this.BBHLDIKMBHB((ParabolicPointer.BDICCHBJBKG)8);
}
// Token: 0x06016BA3 RID: 93091 RVA: 0x006582AC File Offset: 0x006564AC
private static float DLPDELDMJML(float NDGGMDGOPHJ, float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return NDGGMDGOPHJ + GPONFDAAFMF * LHMELEOKNBJ + 961f * FKOFGIJFIKA * LHMELEOKNBJ * LHMELEOKNBJ;
}
// Token: 0x06016BA4 RID: 93092 RVA: 0x006582C0 File Offset: 0x006564C0
private void GJGEACMGLKP()
{
if (ParabolicPointer.PLAHBEDGIHP == null)
{
ParabolicPointer.PLAHBEDGIHP = new Color?(this.EJLAOCIFOPP());
}
this.CHLHFJMDEGI = ParabolicPointer.PLAHBEDGIHP.Value;
}
// Token: 0x06016BA5 RID: 93093 RVA: 0x00658308 File Offset: 0x00656508
public void FNMGIADNKIF()
{
this.FDIACFDIGFK();
}
// Token: 0x06016BA6 RID: 93094 RVA: 0x00658310 File Offset: 0x00656510
private void HCNGHEOLOGD(Vector3 NOBAPCOKFIL)
{
this.<BMMLGGIHOAF>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016BA7 RID: 93095 RVA: 0x0065831C File Offset: 0x0065651C
public Color EJLAOCIFOPP()
{
return this.LKKLJKLPKOH().GetColor(ParabolicPointer.EEJPFBIGCMP);
}
// Token: 0x06016BA8 RID: 93096 RVA: 0x00658330 File Offset: 0x00656530
private Material JHMIAKNPFJO()
{
if (this.HNGFECAMGGF == null)
{
this.HNGFECAMGGF = new Material(this.validTargetMaterial);
}
return this.HNGFECAMGGF;
}
// Token: 0x06016BA9 RID: 93097 RVA: 0x0065835C File Offset: 0x0065655C
public LaserTeleporter HLGMKBLJDKF()
{
return this.<PGNDKJIGLAC>k__BackingField;
}
// Token: 0x06016BAA RID: 93098 RVA: 0x00658364 File Offset: 0x00656564
public float LAEAHPKAHPA()
{
return this.<ODGNPIGHMIH>k__BackingField;
}
// Token: 0x06016BAB RID: 93099 RVA: 0x0065836C File Offset: 0x0065656C
private void OBPEHFAOMLE(float NOBAPCOKFIL)
{
this.<ODGNPIGHMIH>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016BAC RID: 93100 RVA: 0x00658378 File Offset: 0x00656578
public void PerformParabolicRaycasts(float FDJCHCMOPAJ)
{
this.FDIACFDIGFK();
this.ICOPMJJAEFB.Clear();
this.HitSomething = false;
if (this.JEMPKPDLLFG)
{
this.HitSomething = this.EICHBGILNAA(FDJCHCMOPAJ);
}
else
{
Vector3 vector = this.LPFGENFBEGL(FDJCHCMOPAJ);
this.HitSomething = this.PLADLOPBIOL(vector, this.parabolaSegmentLength, float.MaxValue);
}
Vector3 normalized = (this.ICOPMJJAEFB[1] - this.ICOPMJJAEFB[0]).normalized;
Vector3 vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 1];
Vector3 vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 2] - vector2).normalized;
Vector3 zero = Vector3.zero;
Vector3 zero2 = Vector3.zero;
Vector3 vector4 = Vector3.zero;
bool flag = false;
if (this.HitSomething && this.LCBLEFCDONE == null && Vector3.Angle(Vector3.up, this.LDFJMABCPGH.normal) >= ((!this.PointOnTeleportRegion) ? 30f : 87f))
{
vector4 = base.transform.forward;
if (this.HitSomething)
{
vector4 = this.LDFJMABCPGH.normal;
if (Mathf.Abs(Vector3.Dot(vector4, Vector3.up)) <= 1f - Mathf.Epsilon)
{
vector4 = Vector3.ProjectOnPlane(vector4, Vector3.up).normalized;
}
}
float num = ((!this.IHMKHGNBICL) ? this.reflectionOffset : this.personalSpaceReflectionOffset);
this.PointOnTeleportRegion = false;
bool flag2 = this.HPOMCBFMIHO(vector4, this.parabolaSegmentLength, num, out zero, out zero2);
if (flag2)
{
flag = true;
vector2 = this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 1];
vector3 = (this.ICOPMJJAEFB[this.ICOPMJJAEFB.Count - 2] - vector2).normalized;
}
}
if (flag)
{
this.SetParabolaPointsWithReflection(normalized, zero2, zero, vector4, vector2);
}
else
{
this.SetParabolaPoints(normalized, vector3, vector2);
}
}
// Token: 0x06016BAD RID: 93101 RVA: 0x006585B4 File Offset: 0x006567B4
private Material IDOJJKJMFEF()
{
if (this.HNGFECAMGGF == null)
{
this.HNGFECAMGGF = new Material(this.validTargetMaterial);
}
return this.HNGFECAMGGF;
}
// Token: 0x06016BAE RID: 93102 RVA: 0x006585E0 File Offset: 0x006567E0
public void IHEFKKNNLAI(bool NOBAPCOKFIL)
{
this.<PEJCCNHAHGG>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016BAF RID: 93103 RVA: 0x006585EC File Offset: 0x006567EC
private void FBCMEBFDNOH(Vector3 NOBAPCOKFIL)
{
this.<BMMLGGIHOAF>k__BackingField = NOBAPCOKFIL;
}
// Token: 0x06016BB0 RID: 93104 RVA: 0x006585F8 File Offset: 0x006567F8
private static Vector3 NKIJAHOHBEN(Vector3 GPONFDAAFMF, Vector3 FKOFGIJFIKA, float LHMELEOKNBJ)
{
Vector3 vector = default(Vector3);
for (int i = 0; i < 7; i++)
{
vector[i] = ParabolicPointer.CONMAEHGFHC(GPONFDAAFMF[i], FKOFGIJFIKA[i], LHMELEOKNBJ);
}
return vector;
}
// Token: 0x170009CA RID: 2506
// (get) Token: 0x06016BB2 RID: 93106 RVA: 0x00658648 File Offset: 0x00656848
private Material PLLNDFJEDGL
{
get
{
switch (this.OMELIIGMIHD)
{
case ParabolicPointer.BDICCHBJBKG.Valid:
return this.HOLDOKOCIJO;
case ParabolicPointer.BDICCHBJBKG.Invalid:
return this.invalidTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.Shortened:
return this.shortenedTargetMaterial;
case ParabolicPointer.BDICCHBJBKG.FadeOut:
return this.fadeOutMaterial;
}
return this.invalidTargetMaterial;
}
}
// Token: 0x06016BB3 RID: 93107 RVA: 0x006586A4 File Offset: 0x006568A4
private static float PPMAMJNKOIA(float NDGGMDGOPHJ, float GPONFDAAFMF, float FKOFGIJFIKA, float LHMELEOKNBJ)
{
return NDGGMDGOPHJ + GPONFDAAFMF * LHMELEOKNBJ + 1517f * FKOFGIJFIKA * LHMELEOKNBJ * LHMELEOKNBJ;
}
// Token: 0x06016BB5 RID: 93109 RVA: 0x006586CC File Offset: 0x006568CC
public static bool DoRaycast(Ray KAMHDHIINCE, float EIFHIHBCPAI, int FIHIEFMGDCI, out RaycastHit FMHCOGJJNFO, ref TeleportRestriction JPJDIADBJLB, ref TeleportationPortal KOKOPOIPMHB, ref bool OADHAMOLBML, ref Player FLGLPDGKDGB, ref Tool EEPPNAIKGEO, ref Vector3 BMMFPEOAABN, ref Vector3 BIIGEBCNJIB)
{
bool flag = false;
FMHCOGJJNFO = default(RaycastHit);
if (!flag && Physics.Raycast(KAMHDHIINCE, out FMHCOGJJNFO, EIFHIHBCPAI, FIHIEFMGDCI, QueryTriggerInteraction.Collide))
{
flag = true;
if (ParabolicPointer.ColliderOnTeleportRegion(FMHCOGJJNFO.collider, ref JPJDIADBJLB, ref KOKOPOIPMHB, ref OADHAMOLBML))
{
return flag;
}
if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF(LCIGHPPLKCA.AnyPlayerPhysics))
{
PlayerCollider component = FMHCOGJJNFO.collider.gameObject.GetComponent<PlayerCollider>();
if (component != null && component.ThisPlayer != null)
{
FLGLPDGKDGB = component.ThisPlayer;
}
}
else if (FMHCOGJJNFO.collider.gameObject.OPJBDKJDLFF(LCIGHPPLKCA.ToolAndEnemyPhysics))
{
Tool tool = FMHCOGJJNFO.collider.OBFMDIEKHAN();
if (tool == null || tool.OHGPCMJMFGC)
{
flag = false;
}
else if (tool.SupportsTeleportHits)
{
EEPPNAIKGEO = tool;
BMMFPEOAABN = FMHCOGJJNFO.point;
BIIGEBCNJIB = FMHCOGJJNFO.normal;
}
}
}
return flag;
}
// Token: 0x06016BB6 RID: 93110 RVA: 0x006587D8 File Offset: 0x006569D8
public void JBFIKIONFOJ(Vector3 GJHJIFGIEDA, Vector3 HMCIEOFKNKF, Vector3 FMKCMOAHKGN)
{
this.PEFCKLJFOKP(GJHJIFGIEDA);
this.GJCKBFAOGNF(HMCIEOFKNKF);
this.JMDGHBNJDAO(FMKCMOAHKGN);
this.NLGKNGAKJKH = true;
this.DFFHLLPHIGH = Vector3.zero;
this.KIHGNEDNBDH = Vector3.zero;
}
// Token: 0x06016BB7 RID: 93111 RVA: 0x0065880C File Offset: 0x00656A0C
private void OnDrawGizmos()
{
Gizmos.color = Color.white;
if (this.LDFJMABCPGH.collider != null)
{
Gizmos.DrawWireSphere(this.LDFJMABCPGH.point + this.LDFJMABCPGH.normal, 0.1f);
Gizmos.DrawLine(this.LDFJMABCPGH.point, this.LDFJMABCPGH.point + this.LDFJMABCPGH.normal);
}
if (this.ICOPMJJAEFB != null)
{
for (int i = 1; i < this.ICOPMJJAEFB.Count; i++)
{
Gizmos.color = Color.white;
Gizmos.DrawSphere(this.ICOPMJJAEFB[i], 0.02f);
Gizmos.color = Color.yellow;
Gizmos.DrawLine(this.ICOPMJJAEFB[i - 1], this.ICOPMJJAEFB[i]);
}
}
}
// Token: 0x04003F89 RID: 16265
private const int NJNEBONKCMA = 20;
// Token: 0x04003F8A RID: 16266
private const float APHEFLCLLPE = 30f;
// Token: 0x04003F8B RID: 16267
private const float AIFCAFHCIKI = 87f;
// Token: 0x04003F8C RID: 16268
[SerializeField]
[Header("Parabola Mesh Properties")]
private float parabolaSegmentLength = 1f;
// Token: 0x04003F8D RID: 16269
[SerializeField]
private float meshDistanceBetweenVertices = 0.05f;
// Token: 0x04003F8E RID: 16270
[SerializeField]
private float meshWidth = 0.04f;
// Token: 0x04003F8F RID: 16271
[SerializeField]
private Vector2 uvScale = Vector2.one;
// Token: 0x04003F90 RID: 16272
[SerializeField]
private float shortenedDistance = 0.66f;
// Token: 0x04003F91 RID: 16273
[SerializeField]
private float reflectionOffset = 0.5f;
// Token: 0x04003F92 RID: 16274
[SerializeField]
private float personalSpaceReflectionOffset = 0.2f;
// Token: 0x04003F93 RID: 16275
[SerializeField]
[Header("Fade Out Tunables")]
private float startFadeBeginDistance = 0.1f;
// Token: 0x04003F94 RID: 16276
[SerializeField]
private float startFadeEndDistance = 0.3f;
// Token: 0x04003F95 RID: 16277
[SerializeField]
private float endFadeBeginDistance = 0.33f;
// Token: 0x04003F96 RID: 16278
[SerializeField]
private float endFadeEndDistance = 0.66f;
// Token: 0x04003F97 RID: 16279
public float PersonalSpaceFromLaser = 1f;
// Token: 0x04003F98 RID: 16280
[SerializeField]
private Material validTargetMaterial;
// Token: 0x04003F99 RID: 16281
[SerializeField]
private Material invalidTargetMaterial;
// Token: 0x04003F9A RID: 16282
[SerializeField]
private Material fadeOutMaterial;
// Token: 0x04003F9B RID: 16283
[SerializeField]
private Material shortenedTargetMaterial;
// Token: 0x04003FA6 RID: 16294
private static int EEJPFBIGCMP = Shader.PropertyToID("_TintColor");
// Token: 0x04003FA7 RID: 16295
private Mesh KPBMHDBCGLI;
// Token: 0x04003FA8 RID: 16296
private List<Vector3> ICOPMJJAEFB;
// Token: 0x04003FA9 RID: 16297
private bool NHDDPGADJPJ;
// Token: 0x04003FAA RID: 16298
private bool IHMKHGNBICL;
// Token: 0x04003FAB RID: 16299
private GPOIAIBLBEN MOEFEHEMFMJ = new GPOIAIBLBEN();
// Token: 0x04003FAC RID: 16300
private List<Vector3> HKDGJNHMJOP = new List<Vector3>(256);
// Token: 0x04003FAD RID: 16301
private List<Color> ANOOLCELKGG = new List<Color>();
// Token: 0x04003FAE RID: 16302
private List<Vector2> CPGPLCKEKEB = new List<Vector2>(256);
// Token: 0x04003FAF RID: 16303
private List<Vector2> LKGHCBMCGHH = new List<Vector2>(256);
// Token: 0x04003FB0 RID: 16304
private List<int> DNLGNKHABIM = new List<int>(2048);
// Token: 0x04003FB1 RID: 16305
private TeleportationPortal CECINNIMONN;
// Token: 0x04003FB2 RID: 16306
public Player RemotePlayer;
// Token: 0x04003FB3 RID: 16307
public Tool HitTool;
// Token: 0x04003FB4 RID: 16308
public Vector3 HitToolPosition = Vector3.zero;
// Token: 0x04003FB5 RID: 16309
public Vector3 HitToolNormal = Vector3.zero;
// Token: 0x04003FB6 RID: 16310
public TeleportRestriction TeleportRestrictions;
// Token: 0x04003FB7 RID: 16311
public bool HitSomething;
// Token: 0x04003FB8 RID: 16312
public bool PointOnTeleportRegion;
// Token: 0x04003FBA RID: 16314
private Material HNGFECAMGGF;
// Token: 0x04003FBC RID: 16316
public float ArcSpeed = 2f;
// Token: 0x04003FBD RID: 16317
private RaycastHit LDFJMABCPGH = default(RaycastHit);
// Token: 0x02000BB9 RID: 3001
public enum BDICCHBJBKG
{
// Token: 0x04003FBF RID: 16319
Valid,
// Token: 0x04003FC0 RID: 16320
Invalid,
// Token: 0x04003FC1 RID: 16321
Shortened,
// Token: 0x04003FC2 RID: 16322
Disabled,
// Token: 0x04003FC3 RID: 16323
Invisible,
// Token: 0x04003FC4 RID: 16324
FadeOut
}
}