diff options
author | chai <215380520@qq.com> | 2023-11-26 23:54:38 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2023-11-26 23:54:38 +0800 |
commit | b45e22c164fa364263b00ce82842999f8e5976b2 (patch) | |
tree | bbc996364325c820d215572e4b16ae0e776c5f04 /Assembly_CSharp/GamePlay/MorterShell.cs | |
parent | 626381f061cde0c78564f6336e3131835cf20a5b (diff) |
*move
Diffstat (limited to 'Assembly_CSharp/GamePlay/MorterShell.cs')
-rw-r--r-- | Assembly_CSharp/GamePlay/MorterShell.cs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/Assembly_CSharp/GamePlay/MorterShell.cs b/Assembly_CSharp/GamePlay/MorterShell.cs deleted file mode 100644 index ce93441..0000000 --- a/Assembly_CSharp/GamePlay/MorterShell.cs +++ /dev/null @@ -1,81 +0,0 @@ -using UnityEngine; - -public class MorterShell : Projectile -{ - [SerializeField] - private GameObject artObject; - - [SerializeField] - private LayerMask layersAffectedByBlast; - - public float blastRadius = 1f; - - private Vector3 destination; - - private float timeOfFlight; - - [SerializeField] - private float vSpeed; - - [SerializeField] - private float hSpeed; - - [SerializeField] - private float gravity = 5f; - - [SerializeField] - private GameObject explosion; - - private float lookAhead; - - private Vector3 previousPos; - - public void SetMorterPhysics(Vector3 pos) - { - destination = pos; - timeOfFlight = speed; - vSpeed = gravity * timeOfFlight / 2f; - hSpeed = Vector3.Magnitude(base.transform.position - destination) / timeOfFlight; - lookAhead = vSpeed + hSpeed; - } - - protected override void MoveProjectile() - { - previousPos = base.transform.position; - base.transform.Translate(Vector3.forward * hSpeed * Time.fixedDeltaTime); - base.transform.Translate(Vector3.up * vSpeed * Time.fixedDeltaTime); - vSpeed -= gravity * Time.fixedDeltaTime; - artObject.transform.rotation = Quaternion.LookRotation(base.transform.position - previousPos, Vector3.up); - } - - protected override void CheckForHits() - { - if (!(vSpeed > 0f) && Physics.Raycast(artObject.transform.position, artObject.transform.forward, out var hitInfo, lookAhead * Time.fixedDeltaTime, layermask, QueryTriggerInteraction.Collide)) - { - OnHit(hitInfo); - } - } - - protected override void OnHit(RaycastHit hit) - { - Collider[] array = Physics.OverlapSphere(base.transform.position, blastRadius, layersAffectedByBlast, QueryTriggerInteraction.Collide); - for (int i = 0; i < array.Length; i++) - { - IDamageable component = array[i].GetComponent<IDamageable>(); - if (component != null) - { - DealDamage(component); - } - } - if (detachOnDestruction != null) - { - detachOnDestruction.transform.parent = null; - } - if (extraFX != null) - { - extraFX.OnDetach(); - } - Object.Instantiate(explosion, base.transform.position, Quaternion.identity); - Object.Destroy(base.gameObject); - } -} |