From 766cdff5ffa72b65d7f106658d1603f47739b2ba Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 27 Oct 2023 11:05:14 +0800 Subject: + init --- GameCode/LineRangeEffect.cs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 GameCode/LineRangeEffect.cs (limited to 'GameCode/LineRangeEffect.cs') diff --git a/GameCode/LineRangeEffect.cs b/GameCode/LineRangeEffect.cs new file mode 100644 index 0000000..6671fcc --- /dev/null +++ b/GameCode/LineRangeEffect.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +public class LineRangeEffect : MonoBehaviour +{ + public float dmg; + + public float knockback; + + private LineEffect lineEffect; + + private Player owner; + + private SpawnedAttack spawned; + + private bool done; + + private void Start() + { + spawned = GetComponent(); + owner = GetComponent().spawner; + lineEffect = GetComponentInChildren(); + } + + private void Update() + { + if (done || !spawned.IsMine()) + { + return; + } + Player closestPlayerInTeam = PlayerManager.instance.GetClosestPlayerInTeam(base.transform.position, PlayerManager.instance.GetOtherTeam(owner.teamID), needVision: true); + if ((bool)closestPlayerInTeam) + { + float num = 2f; + float radius = lineEffect.GetRadius(); + float num2 = Vector2.Distance(base.transform.position, closestPlayerInTeam.transform.position); + if (num2 < radius + num && num2 > radius - num) + { + done = true; + closestPlayerInTeam.data.healthHandler.CallTakeDamage(dmg * base.transform.localScale.x * (closestPlayerInTeam.transform.position - base.transform.position).normalized, closestPlayerInTeam.transform.position, null, owner); + closestPlayerInTeam.data.healthHandler.CallTakeForce(knockback * base.transform.localScale.x * (closestPlayerInTeam.transform.position - base.transform.position).normalized); + } + } + } +} -- cgit v1.1-26-g67d0