public void Damage(TPSCharacterCoordinator owner, Vector3 position, float damageMultiplier)
        {
            Debug.Log("Damaged by " + owner.name);
            var finalDamage = damageMultiplier * receiverDamageMultiplier;

            if (Coordinator.AvatarAnimator)
            {
                Coordinator.AvatarAnimator.Hit(position);
            }


            owner.OnDamaged(Coordinator, finalDamage);

            var health = Coordinator.Health;

            if (Coordinator.Health)
            {
                Coordinator.Health.OnDamaged(finalDamage);;
                if (!Coordinator.Health.IsAlive)
                {
                    owner.OnKilled(Coordinator);
                }
            }

            onDamageReceived.Invoke(owner, position, finalDamage);
        }
Пример #2
0
 public void OnItemUnequipped(TPSCharacterCoordinator owner, Slot slot, Item item)
 {
     if (owner && owner.AvatarAnimator)
     {
         owner.AvatarAnimator.OnAttackStarted.RemoveListener(EnableHitboxes);
         owner.AvatarAnimator.OnAttackStopped.RemoveListener(DisableHitboxes);
     }
     DisableHitboxes();
 }
Пример #3
0
        public void EnableHitbox(TPSCharacterCoordinator owner)
        {
            this.owner = owner;
            for (int i = 0; i < colliders.Length; i++)
            {
                colliders[i].enabled = true;
            }

            lastPosition = transform.position;
        }
Пример #4
0
 public void OnItemEquipped(TPSCharacterCoordinator owner, Slot slot, Item item)
 {
     if (owner && owner.AvatarAnimator)
     {
         owner.AvatarAnimator.OnAttackStarted.AddListener(EnableHitboxes);
         owner.AvatarAnimator.OnAttackStopped.AddListener(DisableHitboxes);
     }
     else
     {
         Debug.Log(name + " does not have an animated parent. Hitboxes are enabled by default.");
         EnableHitboxes();
     }
 }