summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/PlayerParticle.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assembly-CSharp/PlayerParticle.cs')
-rw-r--r--Client/Assembly-CSharp/PlayerParticle.cs39
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);
+ }
+}