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); }
public void OnItemUnequipped(TPSCharacterCoordinator owner, Slot slot, Item item) { if (owner && owner.AvatarAnimator) { owner.AvatarAnimator.OnAttackStarted.RemoveListener(EnableHitboxes); owner.AvatarAnimator.OnAttackStopped.RemoveListener(DisableHitboxes); } DisableHitboxes(); }
public void EnableHitbox(TPSCharacterCoordinator owner) { this.owner = owner; for (int i = 0; i < colliders.Length; i++) { colliders[i].enabled = true; } lastPosition = transform.position; }
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(); } }