132 lines
3.3 KiB
C#
132 lines
3.3 KiB
C#
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<Animator>();
|
|
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;
|
|
}
|