714 lines
19 KiB
C#
714 lines
19 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using DarkTonic.MasterAudio;
|
|
using Pathfinding;
|
|
using UnityEngine;
|
|
|
|
// Token: 0x02000042 RID: 66
|
|
public class Projectile : MonoBehaviour
|
|
{
|
|
// Token: 0x06000844 RID: 2116 RVA: 0x000B3A4B File Offset: 0x000B1C4B
|
|
private void Start()
|
|
{
|
|
}
|
|
|
|
// Token: 0x06000845 RID: 2117 RVA: 0x000B3A50 File Offset: 0x000B1C50
|
|
private void FixedUpdate()
|
|
{
|
|
if (this.hasInfo)
|
|
{
|
|
bool flag = false;
|
|
if (!Records.x.pocketPause || (Records.x.pocketPause && (this.startedinRally || this.mainCharacter || flag) && !Records.x.paused && !this.pocketProjectile))
|
|
{
|
|
if ((Links.x.combat.inRally || Links.x.combat.inPocketAttack) && !this.startedinRally)
|
|
{
|
|
if (this.meshRenderers == null)
|
|
{
|
|
this.meshRenderers = this.item.gameObject.GetComponentsInChildren<MeshRenderer>(false);
|
|
}
|
|
MeshRenderer[] array = this.meshRenderers;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
array[i].enabled = false;
|
|
}
|
|
this.turnedOffForSynergy = true;
|
|
}
|
|
if (this.turnedOffForSynergy && !Links.x.combat.inRally && !Links.x.combat.inPocketAttack)
|
|
{
|
|
this.turnedOffForSynergy = false;
|
|
MeshRenderer[] array = this.meshRenderers;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
array[i].enabled = true;
|
|
}
|
|
}
|
|
if (this.hasPowerDraw || this.type == 3 || this.type == 2)
|
|
{
|
|
if ((this.item.position - this.b).sqrMagnitude < 0.040000003f || this.currentIndex == -1)
|
|
{
|
|
if (this.currentIndex + 1 > this.arcPoints.Count - 1)
|
|
{
|
|
this.Explode(this.item.position);
|
|
bool flag2 = false;
|
|
if (this.target)
|
|
{
|
|
Vector3 vector = this.arcPoints[this.arcPoints.Count - 1];
|
|
vector.y = this.target.tr.position.y;
|
|
float num = 1f;
|
|
if (this.inventoryRow._Name.Contains("Vial"))
|
|
{
|
|
num = 3f;
|
|
}
|
|
if ((vector - this.target.currentPosition).sqrMagnitude < num * num)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
}
|
|
else if (this.targetInteractive)
|
|
{
|
|
Vector3 vector2 = this.arcPoints[this.arcPoints.Count - 1];
|
|
vector2.y = this.targetPosition.y;
|
|
float num2 = 1f;
|
|
if (this.inventoryRow._Name.Contains("Vial"))
|
|
{
|
|
num2 = 3f;
|
|
}
|
|
if ((vector2 - this.targetPosition).sqrMagnitude < num2 * num2)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
}
|
|
if (this.done)
|
|
{
|
|
flag2 = false;
|
|
}
|
|
this.End(flag2);
|
|
return;
|
|
}
|
|
this.currentIndex++;
|
|
this.startPosition = this.previousPosition;
|
|
this.t = 0f;
|
|
this.a = this.item.position;
|
|
this.b = this.arcPoints[this.currentIndex];
|
|
this.previousPosition = this.b;
|
|
}
|
|
this.t += Time.fixedDeltaTime * 5f;
|
|
this.item.position = Vector3.MoveTowards(this.item.position, this.b, 20f * Time.fixedDeltaTime);
|
|
if (this.b != this.a)
|
|
{
|
|
if (this.type == 1 || this.type == 0)
|
|
{
|
|
this.item.rotation = Quaternion.Slerp(this.item.rotation, Quaternion.LookRotation(this.b - this.a), Time.fixedDeltaTime * 10f);
|
|
return;
|
|
}
|
|
this.item.Rotate(this.turn);
|
|
return;
|
|
}
|
|
}
|
|
else if (Links.x.combat.inRally)
|
|
{
|
|
this.t += Time.deltaTime / 0.5f;
|
|
this.item.position = Vector3.Lerp(this.startPosition, this.targetPosition, this.t);
|
|
if (this.t >= 1f)
|
|
{
|
|
this.End(true);
|
|
return;
|
|
}
|
|
if (this.type == 1 || this.type == 0)
|
|
{
|
|
this.item.rotation = Quaternion.Slerp(this.item.rotation, Quaternion.LookRotation(this.targetPosition - this.startPosition), Time.fixedDeltaTime * 20f);
|
|
return;
|
|
}
|
|
this.item.Rotate(this.turn);
|
|
return;
|
|
}
|
|
else if (!this.findingNodes)
|
|
{
|
|
if ((this.startPosition - this.item.position).sqrMagnitude > (this.item.position - this.outOfSightPosition).sqrMagnitude)
|
|
{
|
|
this.End(false);
|
|
return;
|
|
}
|
|
this.item.position = Vector3.MoveTowards(this.item.position, this.outOfSightPosition, this.speed * Time.fixedDeltaTime);
|
|
if (this.type == 1 || this.type == 0)
|
|
{
|
|
this.item.rotation = Quaternion.Slerp(this.item.rotation, Quaternion.LookRotation(this.targetPosition - this.startPosition), Time.fixedDeltaTime * 10f);
|
|
}
|
|
else
|
|
{
|
|
this.item.Rotate(this.turn);
|
|
}
|
|
this.previousItemPosition = this.item.position;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000846 RID: 2118 RVA: 0x000B3FDC File Offset: 0x000B21DC
|
|
private void Explode(Vector3 pt)
|
|
{
|
|
if (this.type == 2)
|
|
{
|
|
GameObject pooledGameObject = Links.x.cellar.GetPooledGameObject(38);
|
|
pooledGameObject.transform.position = pt - new Vector3(0f, 1.5f, 0f);
|
|
pooledGameObject.SetActive(true);
|
|
MasterAudio.PlaySound3DAtVector3AndForget("Elixir", base.gameObject.transform.position, Random.Range(0.5f, 0.6f), new float?(1f), 0f, "", null);
|
|
}
|
|
if (this.inventoryRow._Name.Contains("Rock"))
|
|
{
|
|
GameObject pooledGameObject2 = Links.x.cellar.GetPooledGameObject(60);
|
|
pooledGameObject2.transform.position = this.item.position;
|
|
pooledGameObject2.SetActive(true);
|
|
MasterAudio.PlaySound3DAtVector3AndForget("Interactives", base.gameObject.transform.position, 0.5f, new float?(1f), 0f, "Chest Break", null);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000847 RID: 2119 RVA: 0x000B40FC File Offset: 0x000B22FC
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
if (this.done || !this.action || this.pocketProjectile)
|
|
{
|
|
return;
|
|
}
|
|
if (!this.action.ai)
|
|
{
|
|
return;
|
|
}
|
|
GameObject gameObject = other.gameObject;
|
|
if (gameObject)
|
|
{
|
|
if (gameObject.layer == 31 && !this.targetInteractive)
|
|
{
|
|
SelectionCircle component = gameObject.GetComponent<SelectionCircle>();
|
|
if (component)
|
|
{
|
|
Character character = component.character;
|
|
this.Hit(character);
|
|
}
|
|
}
|
|
if (gameObject.layer == 6 && !this.targetInteractive)
|
|
{
|
|
Character component2 = gameObject.GetComponent<Character>();
|
|
if (component2)
|
|
{
|
|
this.Hit(component2);
|
|
}
|
|
}
|
|
if (gameObject.layer == 16 && gameObject == this.targetInteractive)
|
|
{
|
|
if (this.type >= 2)
|
|
{
|
|
this.Explode(this.targetPosition);
|
|
}
|
|
this.done = true;
|
|
this.End(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000848 RID: 2120 RVA: 0x000B41E8 File Offset: 0x000B23E8
|
|
public void Hit(Character c)
|
|
{
|
|
if (this.done)
|
|
{
|
|
return;
|
|
}
|
|
bool flag = true;
|
|
if (this.startedInPocket || Links.x.combat.miniEvent || this.pocketProjectile)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (this.hit != 4f && this.hit != 1f)
|
|
{
|
|
if (c == this.target)
|
|
{
|
|
if (this.type >= 2)
|
|
{
|
|
this.Explode(this.target.tr.position);
|
|
}
|
|
this.done = true;
|
|
this.End(true);
|
|
}
|
|
else if (flag && this.action.ai.CanAttack(c))
|
|
{
|
|
if (!this.action.quickAttack)
|
|
{
|
|
this.action.firstAttack = false;
|
|
}
|
|
this.target = c;
|
|
this.action.actionTargets.Add(this.target);
|
|
this.action.ActionRolls(false, true, this.target, null);
|
|
if (this.action.HasListTarget(this.target))
|
|
{
|
|
this.action.GetListSet(this.target, out this.hit, out this.damage, out this.attackTotal, out this.defenseTotal, out this.hitText);
|
|
}
|
|
if (this.type >= 2 && this.target)
|
|
{
|
|
this.Explode(this.target.tr.position);
|
|
}
|
|
this.done = true;
|
|
if (this.damage > 0f)
|
|
{
|
|
this.End(true);
|
|
}
|
|
else
|
|
{
|
|
this.SendEvent(false);
|
|
}
|
|
}
|
|
}
|
|
if (this.hit == 1f)
|
|
{
|
|
if (c == this.target)
|
|
{
|
|
this.done = true;
|
|
this.SendEvent(false);
|
|
}
|
|
else if (this.action.ai.CanAttack(c) && flag)
|
|
{
|
|
this.target = c;
|
|
if (!this.action.quickAttack)
|
|
{
|
|
this.action.firstAttack = false;
|
|
}
|
|
Character character = this.action.character;
|
|
Debug.Log(((character != null) ? character.ToString() : null) + "'s projectile found new target");
|
|
this.action.actionTargets.Add(this.target);
|
|
this.action.ActionRolls(false, true, this.target, null);
|
|
if (this.action.HasListTarget(this.target))
|
|
{
|
|
this.action.GetListSet(this.target, out this.hit, out this.damage, out this.attackTotal, out this.defenseTotal, out this.hitText);
|
|
}
|
|
this.done = true;
|
|
if (this.damage > 0f)
|
|
{
|
|
this.End(true);
|
|
}
|
|
else
|
|
{
|
|
this.SendEvent(false);
|
|
}
|
|
}
|
|
if (this.type >= 2 && c)
|
|
{
|
|
this.Explode(c.tr.position);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000849 RID: 2121 RVA: 0x000B44BC File Offset: 0x000B26BC
|
|
public void SetInfo(Character target1, GameObject targetInteractive1, float hit1, float damage1, string attackTotal1, string defenseTotal1, string hitText1, bool powerDraw)
|
|
{
|
|
this.hit = hit1;
|
|
this.target = target1;
|
|
this.actionCharacter = this.action.character;
|
|
this.targetInteractive = targetInteractive1;
|
|
this.originalTargetPosition = this.targetPosition;
|
|
this.startedInPocket = Records.x.pocketPause;
|
|
if (Links.x.combat.inRally || Links.x.combat.inPocketAttack || Links.x.combat.bubbleEvent)
|
|
{
|
|
this.startedinRally = true;
|
|
}
|
|
Vector3 vector = Quaternion.LookRotation(this.targetPosition - this.item.position) * Vector3.forward;
|
|
this.outOfSightPosition = this.item.position + vector * 50f;
|
|
if (targetInteractive1)
|
|
{
|
|
this.outOfSightPosition = this.originalTargetPosition;
|
|
}
|
|
this.damage = damage1;
|
|
this.attackTotal = attackTotal1;
|
|
this.defenseTotal = defenseTotal1;
|
|
this.hitText = hitText1;
|
|
this.mainCharacter = false;
|
|
if (this.action.character.mainSelected)
|
|
{
|
|
this.mainCharacter = true;
|
|
}
|
|
this.hasPowerDraw = powerDraw;
|
|
this.startPosition = this.item.position;
|
|
this.previousItemPosition = this.startPosition;
|
|
this.turn = new Vector3(Random.Range(-10f, 10f), Random.Range(-10f, 10f), Random.Range(-10f, 10f));
|
|
this.t = 0f;
|
|
if (this.actionCharacter.stats.animal && this.type == 1)
|
|
{
|
|
this.speed = 15f;
|
|
}
|
|
else if (this.type == 0 || this.type == 1)
|
|
{
|
|
this.speed = 50f;
|
|
}
|
|
else
|
|
{
|
|
this.speed = 60f;
|
|
}
|
|
if (powerDraw || this.type == 3 || this.type == 2)
|
|
{
|
|
if (this.type == 3 && this.target)
|
|
{
|
|
this.targetPosition = this.target.tr.position;
|
|
}
|
|
this.DrawArc();
|
|
this.currentIndex = -1;
|
|
}
|
|
this.hasInfo = true;
|
|
this.distance = Vector3.Distance(this.action.character.torsoPosition, this.outOfSightPosition);
|
|
Links.x.combat.Projectile(this, true);
|
|
this.box = base.gameObject.AddComponent<BoxCollider>();
|
|
if (!this.box)
|
|
{
|
|
this.box = base.gameObject.AddComponent<BoxCollider>();
|
|
}
|
|
this.box.isTrigger = true;
|
|
Bounds bounds = this.box.bounds;
|
|
if (this.type == 1 && !this.actionCharacter.stats.animal)
|
|
{
|
|
bounds.Expand(0.5f);
|
|
}
|
|
else
|
|
{
|
|
bounds.Expand(0.2f);
|
|
}
|
|
this.box.size = bounds.size;
|
|
this.box.isTrigger = true;
|
|
this.rb = base.gameObject.GetComponent<Rigidbody>();
|
|
if (!this.rb)
|
|
{
|
|
this.rb = base.gameObject.AddComponent<Rigidbody>();
|
|
}
|
|
this.rb.isKinematic = true;
|
|
base.gameObject.layer = 23;
|
|
if (Links.x.rallyStage.playing)
|
|
{
|
|
this.pocketProjectile = true;
|
|
Links.x.rallyStage.projectile = this;
|
|
Debug.Log("Pocket projectile");
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600084A RID: 2122 RVA: 0x000B4838 File Offset: 0x000B2A38
|
|
public void SendEvent(bool didHit)
|
|
{
|
|
this.sentEvent = true;
|
|
this.action.rangeIndex = this.index;
|
|
if (!didHit && this.hit == 0f)
|
|
{
|
|
if (!this.action.character.mainSelected)
|
|
{
|
|
this.hit = 4f;
|
|
}
|
|
else
|
|
{
|
|
this.hit = 1f;
|
|
}
|
|
}
|
|
this.action.OnAttackComplete(this.target, this.targetInteractive, this.hit, this.damage, this.attackTotal, this.defenseTotal, this.hitText, true, this.inventoryRow, this.index, false);
|
|
}
|
|
|
|
// Token: 0x0600084B RID: 2123 RVA: 0x000B48DC File Offset: 0x000B2ADC
|
|
public void End(bool didHit)
|
|
{
|
|
if (this.inventoryRow._DmgMax <= 0 && this.inventoryRow._Effect != "" && this.actionCharacter)
|
|
{
|
|
Library.Abilities abilityRow = Links.x.library.GetAbilityRow(this.inventoryRow._Effect);
|
|
GraphNode graphNode;
|
|
if (this.type >= 2)
|
|
{
|
|
graphNode = this.targetNode;
|
|
if (graphNode == null)
|
|
{
|
|
graphNode = this.actionCharacter.NearNode(this.item.position, false, 0, -1, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
graphNode = this.actionCharacter.NearNode(this.item.position, false, 0, -1, 0);
|
|
}
|
|
if (graphNode != null && abilityRow != null)
|
|
{
|
|
TileEffects tileEffects = Links.x.tileEffects.AddComponent<TileEffects>();
|
|
tileEffects.spellIndex = this.action.character.stats.SpellIndex(this.inventoryRow._Effect);
|
|
tileEffects.paganRow = Links.x.library.GetPaganRow(this.inventoryRow._Effect);
|
|
tileEffects.mainSkill = abilityRow._MainSkill;
|
|
tileEffects.sourceLevel = this.inventoryRow._Level;
|
|
tileEffects.source = this.action.character;
|
|
if (abilityRow._RadiusCenter != "Mouse" && this.target)
|
|
{
|
|
tileEffects.singleTarget = this.target;
|
|
}
|
|
tileEffects.startNode = graphNode;
|
|
tileEffects.Setup(abilityRow, null, null, null, null, this.actionCharacter);
|
|
}
|
|
}
|
|
string text = this.inventoryRow._CharacterModel + "_projectile";
|
|
Links.x.archives.RecycleItemBody(this.item.gameObject, text);
|
|
if (!this.action)
|
|
{
|
|
Links.x.combat.Projectile(this, false);
|
|
Object.Destroy(this);
|
|
return;
|
|
}
|
|
if (this.inventoryRow._Name.Contains("Poison"))
|
|
{
|
|
GameObject pooledGameObject = Links.x.cellar.GetPooledGameObject(106);
|
|
pooledGameObject.transform.position = this.item.position + new Vector3(0f, 0.5f, 0f);
|
|
pooledGameObject.SetActive(true);
|
|
MasterAudio.PlaySound3DAtVector3AndForget("WetPunch", base.gameObject.transform.position, 0.5f, new float?(1f), 0f, "", null);
|
|
}
|
|
if (!this.sentEvent && this.targetInteractive)
|
|
{
|
|
didHit = true;
|
|
}
|
|
if (!didHit && !this.sentEvent)
|
|
{
|
|
this.hit = 4f;
|
|
}
|
|
if (!this.sentEvent)
|
|
{
|
|
this.action.rangeIndex = this.index;
|
|
this.action.OnAttackComplete(this.target, this.targetInteractive, this.hit, this.damage, this.attackTotal, this.defenseTotal, this.hitText, true, this.inventoryRow, this.index, false);
|
|
}
|
|
this.sentEvent = true;
|
|
if (this.lineRendererToDrawTrajectory)
|
|
{
|
|
Object.Destroy(this.lineRendererToDrawTrajectory);
|
|
}
|
|
Links.x.combat.Projectile(this, false);
|
|
this.action.RemoveProjectile(this);
|
|
Object.Destroy(this.box);
|
|
Object.Destroy(this.rb);
|
|
Object.Destroy(this);
|
|
}
|
|
|
|
// Token: 0x0600084C RID: 2124 RVA: 0x000B4C3C File Offset: 0x000B2E3C
|
|
public void DrawArc()
|
|
{
|
|
Vector3 position = this.item.position;
|
|
this.trajectoryModifier = 1;
|
|
this.initialVelocity = 6f;
|
|
Quaternion quaternion = this.GetBearing(position, this.targetPosition);
|
|
this.item.rotation = quaternion;
|
|
this.CalculateTrajectory();
|
|
}
|
|
|
|
// Token: 0x0600084D RID: 2125 RVA: 0x000B4C88 File Offset: 0x000B2E88
|
|
public Quaternion GetBearing(Vector3 start, Vector3 targetPt)
|
|
{
|
|
this.bearing = Quaternion.Euler(Vector3.zero);
|
|
Vector3 vector = targetPt - start;
|
|
float num = Mathf.Sqrt(Mathf.Pow(vector.x, 2f) + Mathf.Pow(vector.z, 2f));
|
|
float num2 = -vector.y;
|
|
float num3 = this.gravity * (this.gravity * Mathf.Pow(num, 2f) + 2f * num2 * Mathf.Pow(this.initialVelocity, 2f));
|
|
float num4 = Mathf.Sqrt(Mathf.Pow(this.initialVelocity, 4f) - num3);
|
|
bool flag = float.IsNaN(num4);
|
|
if (!flag)
|
|
{
|
|
float num5 = (Mathf.Pow(this.initialVelocity, 2f) + (float)this.trajectoryModifier * num4) / (this.gravity * num);
|
|
float num6 = 57.29578f * Mathf.Atan(num5);
|
|
this.bearing = Quaternion.LookRotation(vector);
|
|
Vector3 eulerAngles = this.bearing.eulerAngles;
|
|
eulerAngles.x = num6;
|
|
this.bearing.eulerAngles = eulerAngles;
|
|
}
|
|
if (flag)
|
|
{
|
|
this.initialVelocity += 1f;
|
|
this.GetBearing(start, targetPt);
|
|
}
|
|
return this.bearing;
|
|
}
|
|
|
|
// Token: 0x0600084E RID: 2126 RVA: 0x000B4DBC File Offset: 0x000B2FBC
|
|
public RaycastHit CalculateTrajectory()
|
|
{
|
|
RaycastHit raycastHit = default(RaycastHit);
|
|
Vector3 position = this.item.position;
|
|
float num = -(1f / this.trajectoryPrecision);
|
|
bool flag = false;
|
|
for (int i = 0; i < this.maximumIterations; i++)
|
|
{
|
|
if (!flag)
|
|
{
|
|
num += 1f / this.trajectoryPrecision;
|
|
Vector3 vector = position + this.item.forward * this.initialVelocity * num + 0.5f * this.gravity2 * Mathf.Pow(num, 2f);
|
|
if ((vector - this.targetPosition).sqrMagnitude < 0.25f)
|
|
{
|
|
if (Physics.Linecast(this.prevPos, vector, out raycastHit, Links.x.sightBlockers))
|
|
{
|
|
flag = true;
|
|
}
|
|
this.prevPos = vector;
|
|
}
|
|
this.arcPoints.Add(vector);
|
|
}
|
|
}
|
|
return raycastHit;
|
|
}
|
|
|
|
// Token: 0x04000CF2 RID: 3314
|
|
[Header("INFO")]
|
|
public Transform item;
|
|
|
|
// Token: 0x04000CF3 RID: 3315
|
|
public bool hasEffect;
|
|
|
|
// Token: 0x04000CF4 RID: 3316
|
|
private Vector3 startPosition;
|
|
|
|
// Token: 0x04000CF5 RID: 3317
|
|
public Vector3 targetPosition;
|
|
|
|
// Token: 0x04000CF6 RID: 3318
|
|
public Vector3 outOfSightPosition;
|
|
|
|
// Token: 0x04000CF7 RID: 3319
|
|
public Actions action;
|
|
|
|
// Token: 0x04000CF8 RID: 3320
|
|
public Library.Inventory inventoryRow;
|
|
|
|
// Token: 0x04000CF9 RID: 3321
|
|
public int index;
|
|
|
|
// Token: 0x04000CFA RID: 3322
|
|
private float t;
|
|
|
|
// Token: 0x04000CFB RID: 3323
|
|
public Character target;
|
|
|
|
// Token: 0x04000CFC RID: 3324
|
|
private Character actionCharacter;
|
|
|
|
// Token: 0x04000CFD RID: 3325
|
|
private float hit;
|
|
|
|
// Token: 0x04000CFE RID: 3326
|
|
private float damage;
|
|
|
|
// Token: 0x04000CFF RID: 3327
|
|
private string attackTotal;
|
|
|
|
// Token: 0x04000D00 RID: 3328
|
|
private string defenseTotal;
|
|
|
|
// Token: 0x04000D01 RID: 3329
|
|
private string hitText;
|
|
|
|
// Token: 0x04000D02 RID: 3330
|
|
private bool hasInfo;
|
|
|
|
// Token: 0x04000D03 RID: 3331
|
|
public int type;
|
|
|
|
// Token: 0x04000D04 RID: 3332
|
|
private Transform savedParent;
|
|
|
|
// Token: 0x04000D05 RID: 3333
|
|
private Vector3 originalTargetPosition;
|
|
|
|
// Token: 0x04000D06 RID: 3334
|
|
private bool findingNodes;
|
|
|
|
// Token: 0x04000D07 RID: 3335
|
|
private Vector3 previousItemPosition;
|
|
|
|
// Token: 0x04000D08 RID: 3336
|
|
private GameObject targetInteractive;
|
|
|
|
// Token: 0x04000D09 RID: 3337
|
|
private BoxCollider box;
|
|
|
|
// Token: 0x04000D0A RID: 3338
|
|
private Rigidbody rb;
|
|
|
|
// Token: 0x04000D0B RID: 3339
|
|
private bool sentEvent;
|
|
|
|
// Token: 0x04000D0C RID: 3340
|
|
private bool done;
|
|
|
|
// Token: 0x04000D0D RID: 3341
|
|
private bool startedInPocket;
|
|
|
|
// Token: 0x04000D0E RID: 3342
|
|
private MeshRenderer[] meshRenderers;
|
|
|
|
// Token: 0x04000D0F RID: 3343
|
|
public GraphNode targetNode;
|
|
|
|
// Token: 0x04000D10 RID: 3344
|
|
private float speed = 60f;
|
|
|
|
// Token: 0x04000D11 RID: 3345
|
|
[Header("ARC")]
|
|
public bool hasPowerDraw;
|
|
|
|
// Token: 0x04000D12 RID: 3346
|
|
private float gravity = -9.81f;
|
|
|
|
// Token: 0x04000D13 RID: 3347
|
|
private float initialVelocity = 3f;
|
|
|
|
// Token: 0x04000D14 RID: 3348
|
|
private Quaternion bearing;
|
|
|
|
// Token: 0x04000D15 RID: 3349
|
|
private int trajectoryModifier = 1;
|
|
|
|
// Token: 0x04000D16 RID: 3350
|
|
private Vector3 projectileVelocity;
|
|
|
|
// Token: 0x04000D17 RID: 3351
|
|
private float trajectoryPrecision = 20f;
|
|
|
|
// Token: 0x04000D18 RID: 3352
|
|
private int maximumIterations = 300;
|
|
|
|
// Token: 0x04000D19 RID: 3353
|
|
private Vector3 gravity2 = new Vector3(0f, -9.81f, 0f);
|
|
|
|
// Token: 0x04000D1A RID: 3354
|
|
public LineRenderer lineRendererToDrawTrajectory;
|
|
|
|
// Token: 0x04000D1B RID: 3355
|
|
private Vector3 prevPos;
|
|
|
|
// Token: 0x04000D1C RID: 3356
|
|
private List<Vector3> arcPoints = new List<Vector3>();
|
|
|
|
// Token: 0x04000D1D RID: 3357
|
|
public int currentIndex;
|
|
|
|
// Token: 0x04000D1E RID: 3358
|
|
private Vector3 a;
|
|
|
|
// Token: 0x04000D1F RID: 3359
|
|
private Vector3 b;
|
|
|
|
// Token: 0x04000D20 RID: 3360
|
|
private Vector3 previousPosition;
|
|
|
|
// Token: 0x04000D21 RID: 3361
|
|
private bool mainCharacter;
|
|
|
|
// Token: 0x04000D22 RID: 3362
|
|
private float distance;
|
|
|
|
// Token: 0x04000D23 RID: 3363
|
|
private float wait;
|
|
|
|
// Token: 0x04000D24 RID: 3364
|
|
private float slow;
|
|
|
|
// Token: 0x04000D25 RID: 3365
|
|
private Vector3 turn;
|
|
|
|
// Token: 0x04000D26 RID: 3366
|
|
public bool startedinRally;
|
|
|
|
// Token: 0x04000D27 RID: 3367
|
|
public bool turnedOffForSynergy;
|
|
|
|
// Token: 0x04000D28 RID: 3368
|
|
public bool pocketProjectile;
|
|
}
|