Найти тему

История разработки "калькулятора" для игры. Часть 2

Для начала нужно место хранения общих сведений о больницы

Класс Hospital
Класс Hospital

Чтобы хранить сведения о больнице описываю класс со всей логикой, которая будет относится к нашей больнице. Пока что только основные сведения, в дальнейшем буду пополнять остальными данными:

  • id (чтобы была возможность добавлять много больниц)
  • name - имя больницы чтобы отличать одну больницы от другой визуально в web)
  • level - уровень больницы
  • teamLevel - уровень союза больницы (чем выше уровень тем больше будут доп очки квалификации персонала)
  • конструктор - чтобы инициализировать значениями по умолчанию, которые нам нужны обязательно
  • get метод team, который вычисляет сколько процентов дает союз. Тут вычисление по условию. Первые 2 уровня не дают никакого прироста квалификации, а с третьего уровня повышается на 1 процент, то есть если союз уровня 10, то прирост квалификации будет 8%

Обращаю внимание, что это продолжение истории разработки веб-сайта помощника для игры Fun Hospital. Начало можно прочитать тут:

  • Истоки проекта тут
  • Часть 1

Дальше нужно место для хранения описания базовых кабинетов.

TBaseCabinet
TBaseCabinet

При описании больницы я использовала класс, а здесь тип. Почему именно тип? Мне нужны были только описание типов полей, никакой логики, вычислений тут не будет. А вот для описания кабинетов больницы уже будет класс, но об этом позже.

Базовые характеристики кабинета:

  • type - тип кабинета, есть ограниченное количество кабинетов, по этому полю мы будем определять что это за кабинет
  • name - название кабинета, нужно для веба
  • levels - у кабинета есть 20 уровней и каждый уровень открывается на определенном уровне больницы, тут храним на каком уровне больницы откроется уровень кабинета. По этому параметру буду вычислять максимально улучшен кабинет или нужно улучшать его. Для чего еще полезен? Можем поменять уровень на следующий и посмотреть сколько кабинетов надо будет улучшать на следующем уровне.
  • time - время лечения в кабинете по уровням. По этому параметру и параметру эффективности врача можно посчитать сколько времени будет проводить пациент в кабинете. Например если время лечения 20 секунд, а эффективность 50%, то пациент будет в кабинете 10 секунд
  • qualification - дополнительная квалификация, которую дает кабинет при лечении пациента по уровням
  • diagnose - в больнице есть 2 типа кабинетов: true это диагноз и false это лечение (финальный кабинет для пациента)
  • nurse - в больнице есть медсестры и доктора. Этот флаг означает true - в кабинете может работать только медсестра, false - в кабинете может работать только доктора.

При описании я использовала еще 2 типа - TTwelveArray и ECabinet

ECabinet
ECabinet

В описаниях типов я использую префикс E для описания перечислений. Лучше использовать строковые значения, вместо дефолтных числовых. Иначе не сработает проверка типов и там где требуется значение из enum мы сможем передать любое число и TS не выдаст ошибки.

TTwelveArray
TTwelveArray

В описаниях типов я использую префикс T. TTwelveArray означает что у нас будет массив из 20 числовых элементов

На этом пока все, продолжение читайте в следующих частях...