summaryrefslogtreecommitdiff
path: root/GameCode/Implosion.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/Implosion.cs')
-rw-r--r--GameCode/Implosion.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/GameCode/Implosion.cs b/GameCode/Implosion.cs
new file mode 100644
index 0000000..080936a
--- /dev/null
+++ b/GameCode/Implosion.cs
@@ -0,0 +1,39 @@
+using System;
+using Photon.Pun;
+using UnityEngine;
+
+public class Implosion : MonoBehaviour
+{
+ public float force;
+
+ public float drag;
+
+ public float time;
+
+ public float clampDist;
+
+ private void Start()
+ {
+ Explosion component = GetComponent<Explosion>();
+ component.HitTargetAction = (Action<Damagable, float>)Delegate.Combine(component.HitTargetAction, new Action<Damagable, float>(HitTarget));
+ clampDist *= base.transform.localScale.x;
+ force *= base.transform.localScale.x;
+ }
+
+ public void HitTarget(Damagable damageble, float distance)
+ {
+ DoPull(damageble, distance);
+ }
+
+ private void DoPull(Damagable damageble, float distance)
+ {
+ bool num = GetComponent<SpawnedAttack>().IsMine();
+ HealthHandler component = damageble.GetComponent<HealthHandler>();
+ CharacterData component2 = damageble.GetComponent<CharacterData>();
+ _ = (Vector2)((base.transform.position - component.transform.position) * 0.25f);
+ if (num)
+ {
+ component2.view.RPC("RPCA_SendForceTowardsPointOverTime", RpcTarget.All, force, drag, clampDist, (Vector2)base.transform.position, time, 0, false, false);
+ }
+ }
+}