public void TakeDamage(AbstractCharacter invoker) { ICommand cmd = new AttackDamageCommand(invoker, _owner, _damage); cmd.Execute(); DestroyProjectile(); }
protected override void MeleeAttack() { base.MeleeAttack(); float hitDistance = (enemy.transform.position - enemy.targetTransform.position).magnitude; if (hitDistance <= enemy.attackDistance) { var attackCMD = new AttackDamageCommand(enemy.currentTarget, enemy, 25);// 25 - test attackCMD.Execute(); } }
//TO DO это нужно менять на что-то поинтереснее protected override void MeleeAttack() { base.MeleeAttack(); var attackResult = Physics.SphereCastAll(combatController.attackPoint.position, _attackRadius, combatController.attackPoint.forward, 1f); var result = Physics.OverlapSphere(combatController.attackPoint.position, _attackRadius); for (int i = 0; i < attackResult.Length; ++i) { if (attackResult[i].collider.CompareTag("Enemy")) { var enemy = attackResult[i].collider.GetComponent <EnemyCharacter>(); ICommand attackCMD = new AttackDamageCommand(enemy, player, 25);//25 - test attackCMD.Execute(); } } }