WORKING ARCHERS + test
big drip
This commit is contained in:
parent
ca7ce8e645
commit
95943c415c
6 changed files with 853 additions and 5 deletions
|
@ -1,3 +1,4 @@
|
|||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
|
@ -9,6 +10,7 @@ public class ArrowHandler : MonoBehaviour
|
|||
[SerializeField] private float baseDamage;
|
||||
[SerializeField] private float baseKnockback;
|
||||
private Rigidbody _rigidBody;
|
||||
private bool _fromTeamA;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
|
@ -21,9 +23,10 @@ public class ArrowHandler : MonoBehaviour
|
|||
if (_rigidBody.linearVelocity.magnitude >= 1f) transform.forward = _rigidBody.linearVelocity.normalized;
|
||||
}
|
||||
|
||||
public void LaunchArrow(Vector3 baseSpeed)
|
||||
public void LaunchArrow(Vector3 baseSpeed, bool fromTeamA)
|
||||
{
|
||||
_rigidBody.linearVelocity = baseSpeed;
|
||||
_fromTeamA = fromTeamA;
|
||||
}
|
||||
|
||||
void OnCollisionEnter(Collision collision)
|
||||
|
@ -31,7 +34,7 @@ public class ArrowHandler : MonoBehaviour
|
|||
// Can be optimized with tags, but it add dependance beetween teams
|
||||
if (collision.gameObject.TryGetComponent<AbstractUnit>(out AbstractUnit unit))
|
||||
{
|
||||
if (unit is MinecraftUnit)
|
||||
if (unit is MinecraftUnit && unit.IsTeamA != _fromTeamA) // No friendly fire
|
||||
{
|
||||
MinecraftUnit minecraftUnit = unit as MinecraftUnit;
|
||||
Vector3 knockback = _rigidBody.linearVelocity * baseKnockback;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue