diff options
Diffstat (limited to 'Client/Assembly-CSharp/PlayerParticle.cs')
-rw-r--r-- | Client/Assembly-CSharp/PlayerParticle.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/PlayerParticle.cs b/Client/Assembly-CSharp/PlayerParticle.cs new file mode 100644 index 0000000..41fa495 --- /dev/null +++ b/Client/Assembly-CSharp/PlayerParticle.cs @@ -0,0 +1,39 @@ +using System; +using UnityEngine; + +public class PlayerParticle : PoolableBehavior +{ + public Camera FollowCamera { get; set; } + + public SpriteRenderer myRend; + + public float maxDistance = 6f; + + public Vector2 velocity; + + public float angularVelocity; + + private Vector3 lastCamera; + + public void Update() + { + Vector3 vector = base.transform.localPosition; + float sqrMagnitude = vector.sqrMagnitude; + if (this.FollowCamera) + { + Vector3 position = this.FollowCamera.transform.position; + position.z = 0f; + vector += (position - this.lastCamera) * (1f - base.transform.localScale.x); + this.lastCamera = position; + sqrMagnitude = (vector - position).sqrMagnitude; + } + if (sqrMagnitude > this.maxDistance * this.maxDistance) + { + this.OwnerPool.Reclaim(this); + return; + } + vector += this.velocity * Time.deltaTime; + base.transform.localPosition = vector; + base.transform.Rotate(0f, 0f, Time.deltaTime * this.angularVelocity); + } +} |