#pragma once
#include "../plr.hpp"
class Ship_info;
class Dark_info: public Ship_info {
public:
  Dark_info() = default;
  virtual ~Dark_info() = default;
  float DEFAULT_SPEED = 0; ///< обычная скорость
  float JOLT_RATIO = 0; ///< усиление тряски камеры при высокой скорости
  float JOLTING_THRESOLD = 0; ///< скорость, после которой начинается тряска
  float LINES_SPEED = 0; ///< скорость старта отрисовки полосок позади игрока
  float JOLT_DECREASE = 0; ///< скорость спада тряски
  float JOLT_POWER = 0; ///< сила тряски
  float accel_add = 0; ///< прибавка к ускорению при движение вперёд
  float accel_max = 0; ///< максимальное ускорение
  float accel_rot = 0; ///< скорость поворота
  float accel_rot_focus = 0; ///< скорость поворота при фокусировке огня
  float spd_min = 0, spd_max = 0;
  float main_cost = 0; ///< цена осн. выстрела
  float side_cost = 0; ///< цена выстрела в стороны
  float back_cost = 0; ///< цена сфер
  float shield_cost = 0; ///< цена за использование щита
  float shield_hit_cost = 0; ///< цена от дамага по щиту
  float en_ext = 0; ///< позиция на полоске с коротой начинаются мощные выстрелы
  float en_reg = 0; ///< восстановление энергии
  float en = 0; ///< макс-е знач-е энерг-и
  float SHOOT_CLDWN = 0; ///< задержка мейн-пуль
  float SHOOT_SIDE_CLDWN = 0; ///< задержка мощных пуль
  float SHOOT_BACK_CLDWN = 0; ///< задержка выстрелов назад
  uint smoke_hp = 0; ///< ниже этого уровня жизней идёт дым
  #ifdef DEBUG
  a83::Str dbg_info() const override {
    using namespace a83;
    return Ship_info::dbg_info()
      + "    DEFAULT_SPEED: " + n2s(DEFAULT_SPEED, 2) + '\n'
      + "    JOLT_RATIO: " + n2s(JOLT_RATIO, 2) + '\n'
      + "    JOLTING_THRESOLD: " + n2s(JOLTING_THRESOLD, 2) + '\n'
      + "    LINES_SPEED: " + n2s(LINES_SPEED, 2) + '\n'
      + "    JOLT_DECREASE: " + n2s(JOLT_DECREASE, 2) + '\n'
      + "    JOLT_POWER: " + n2s(JOLT_POWER, 2) + '\n'
      + "    accel_add: " + n2s(accel_add, 2) + '\n'
      + "    accel_max: " + n2s(accel_max, 2) + '\n'
      + "    accel_rot: " + n2s(accel_rot, 2) + '\n'
      + "    accel_rot_focus: " + n2s(accel_rot_focus, 2) + '\n'
      + "    spd_min: " + n2s(spd_min, 2) + '\n'
      + "    main_cost: " + n2s(main_cost, 2) + '\n'
      + "    side_cost: " + n2s(side_cost, 2) + '\n'
      + "    back_cost: " + n2s(back_cost, 2) + '\n'
      + "    shield_cost: " + n2s(shield_cost, 2) + '\n'
      + "    shield_hit_cost: " + n2s(shield_hit_cost, 2) + '\n'
      + "    en_ext: " + n2s(en_ext, 2) + '\n'
      + "    en_reg: " + n2s(en_reg, 2) + '\n'
      + "    en: " + n2s(en, 2) + '\n'
      + "    smoke_hp: " + n2s(smoke_hp) + '\n'
      + "    SHOOT_CLDWN: " + n2s(SHOOT_CLDWN) + '\n';
      + "    SHOOT_SIDE_CLDWN: " + n2s(SHOOT_SIDE_CLDWN) + '\n';
      + "    SHOOT_BACK_CLDWN: " + n2s(SHOOT_BACK_CLDWN) + '\n';
  }
  #endif
}; // Dark_info