private void UpdateAttackCoolDown() { if (attackState != EAttackBuildingState.COOLING_DOWN) { return; } if (Time.time - attackCoolDownStartTime >= attackCoolDownSeconds) { attackState = EAttackBuildingState.IDLE; } }
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); }