Пример #1
0
    private void UpdateAttackCoolDown()
    {
        if (attackState != EAttackBuildingState.COOLING_DOWN)
        {
            return;
        }

        if (Time.time - attackCoolDownStartTime >= attackCoolDownSeconds)
        {
            attackState = EAttackBuildingState.IDLE;
        }
    }
Пример #2
0
    protected virtual bool TryAttackEnemy()
    {
        if (!CanAttackEnemy())
        {
            attackingEnemy = null;
            return(false);
        }
        firingPosition = new Vector3(transform.position.x, transform.position.y + (float)(GetComponent <BoxCollider>().size.y * 0.8), transform.position.z);
        GameObject bullet = Instantiate(bulletPrefab, firingPosition, Quaternion.LookRotation(attackingEnemy.gameObject.transform.position));

        bullet.GetComponent <Bullet>().Initialize(attackingEnemy.gameObject, bulletSpeed, GetAttackDamage());
        Destroy(bullet, 10.0f);

        attackState             = EAttackBuildingState.COOLING_DOWN;
        attackCoolDownStartTime = Time.time;

        return(true);
    }