WORKING ARCHERS + test

big drip
This commit is contained in:
Crizomb 2025-01-15 01:46:16 +01:00
parent ca7ce8e645
commit 95943c415c
6 changed files with 853 additions and 5 deletions

View file

@ -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;