Files
BABA_YAGA/Assets/Scripts/Player/Generic/Interactables/vPunchingBag.cs
2026-06-04 10:42:23 +07:00

44 lines
1.4 KiB
C#

using UnityEngine;
namespace Invector.vCharacterController
{
public class vPunchingBag : MonoBehaviour
{
public Rigidbody _rigidbody;
public float forceMultipler = 0.5f;
public SpringJoint joint;
public vHealthController character;
public bool removeComponentsAfterDie;
void Start()
{
_rigidbody = GetComponent<Rigidbody>();
character = GetComponent<vHealthController>();
character.onReceiveDamage.AddListener(TakeDamage);
}
public void TakeDamage(vDamage damage)
{
var point = damage.hitPosition;
var relativePoint = transform.position;
relativePoint.y = point.y;
var forceForward = relativePoint - point;
if (character != null && joint != null && character.currentHealth < 0)
{
joint.connectedBody = null;
if (removeComponentsAfterDie)
{
foreach (MonoBehaviour mono in character.gameObject.GetComponentsInChildren<MonoBehaviour>())
if (mono != this)
Destroy(mono);
}
}
if (_rigidbody != null)
{
_rigidbody.AddForce(forceForward * (damage.damageValue * forceMultipler), ForceMode.Impulse);
}
}
}
}