using System; using DarkTonic.MasterAudio; using UnityEngine; // Token: 0x0200004F RID: 79 public class SpellVine : MonoBehaviour { // Token: 0x0600090B RID: 2315 RVA: 0x000C23FC File Offset: 0x000C05FC private void Start() { this.startPosition = base.gameObject.transform.position; this.t = 0f; this.action.vineComplete = false; if (this.target) { this.hasTarget = true; } this.fx = null; this.fx = Links.x.cellar.GetPooledGameObject(24); if (this.hasTarget) { this.targetPosition = this.target.tr.position; } this.fx.transform.rotation = Quaternion.LookRotation(this.startPosition - this.targetPosition); this.distance = Vector3.Distance(this.startPosition, this.targetPosition); this.fx.transform.position = this.startPosition + new Vector3(0f, 0.1f, 0f); this.fx.SetActive(true); this.animator = this.fx.GetComponent(); this.animator.Play("Vines_Spell"); this.currentPosition = this.startPosition; this.moveTime = 0f; } // Token: 0x0600090C RID: 2316 RVA: 0x000C2538 File Offset: 0x000C0738 private void Update() { if (!this.action && this.targetPosition != Vector3.zero) { this.End(); } if (!Records.x.pocketPause || (Records.x.pocketPause && this.action.character.mainSelected)) { if (this.hasTarget) { this.targetPosition = this.target.tr.position; } if ((this.currentPosition - this.targetPosition).sqrMagnitude < 0.1f) { this.End(); return; } this.t += Time.deltaTime; if (this.animator.GetCurrentAnimatorStateInfo(0).IsName("Vines_Spell_Loop")) { this.moveTime = this.t; MasterAudio.PlaySound3DAtVector3AndForget("Vine", this.currentPosition, 0.5f, new float?(1f), 0f, "", null); this.fx.transform.position = this.currentPosition + new Vector3(0f, 0.1f, 0f); this.animator.Play("Vines_Spell", 0, 0f); } this.currentPosition = Vector3.Lerp(this.startPosition, this.targetPosition, this.t / this.desiredSpeed); } } // Token: 0x0600090D RID: 2317 RVA: 0x000C26B7 File Offset: 0x000C08B7 public void End() { if (this.fx) { Links.x.cellar.ReturnPooledGameObject(24, this.fx); } this.action.vineComplete = true; Object.Destroy(this); } // Token: 0x04000E28 RID: 3624 private Vector3 startPosition; // Token: 0x04000E29 RID: 3625 public Vector3 targetPosition; // Token: 0x04000E2A RID: 3626 public Actions action; // Token: 0x04000E2B RID: 3627 public int index; // Token: 0x04000E2C RID: 3628 private float t; // Token: 0x04000E2D RID: 3629 private GameObject fx; // Token: 0x04000E2E RID: 3630 private float moveTime; // Token: 0x04000E2F RID: 3631 private Vector3 currentPosition; // Token: 0x04000E30 RID: 3632 private Animator animator; // Token: 0x04000E31 RID: 3633 private float distance; // Token: 0x04000E32 RID: 3634 public Library.Abilities vineSpell; // Token: 0x04000E33 RID: 3635 private bool mainCaster; // Token: 0x04000E34 RID: 3636 public float severity; // Token: 0x04000E35 RID: 3637 public float tether; // Token: 0x04000E36 RID: 3638 private float desiredSpeed = 1f; // Token: 0x04000E37 RID: 3639 public Character character; // Token: 0x04000E38 RID: 3640 public Character target; // Token: 0x04000E39 RID: 3641 public GameObject targetInteractive; // Token: 0x04000E3A RID: 3642 private bool hasTarget; }