コード例 #1
0
    public void TakeDamage(AbstractCharacter invoker)
    {
        ICommand cmd = new AttackDamageCommand(invoker, _owner, _damage);

        cmd.Execute();
        DestroyProjectile();
    }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        //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();
                }
            }
        }