emergency
16:17 11-08-2009 Ещё одна математическая высчитывалка игрового баланса
Итак. У игрока есть уборщики. Эти уборщики убирают мусор.
Цель 1) Определить много уборщиков или мало, достаточно они прокачаны или нет.
Цель 2) Показать игроку, что уборщиков у него достаточно/не достаточно.

Выполнить вторую цель проще простого - если уборщиков недостаточно, мусора нужно выкидывать много, игрок увидит что чото засрано и добавит уборщиков.

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

Берём суммарный опыт всех уборщиков.
Минимальный опыт уборщика = 30
Максимальный = 100
Уборщиков у игрока должно быть Level/4 (четверть от всех сотрудников т.к. номер урвоня так же означает сколько у игрока сотрудников).
Тогда если они минимлаьно прокачаны это будет Level/4*30 = 30/4 Level опыта.
А если максимально, то Level/4*100 = 100/4 Level опыта.

Разница между минимумом и максимумом: Level (100 - 30)/4 = 70/4 Level
Всего 45 уровней
Один уровень добавляет разницы: 70/4 Level / 45 = 7/18 Level

Значит для уровня Level нужно 30/4 Level + (Level - 5) * 70/18 Level опыта уборщиков.
(Level - 5 тут потому что уровни начинаются с пятого)

В теории если больше этого - то игроку можно сообщать, что уборщиков достаточно. Если меньше - то недостаточно и нужно либо нанимать новых либо прокачивать старых.
Но я делаю небольшой промежуток между хватит/не хватит. Этот промежуток делаю равным двум уровням.
То есть если опыта < 30/4 Level + (Level - 6) * 70/18 Level - значит уборщиков мало и мусора валяется дофига
А если суммарного опыта > 30/4 Level + (Level - 4) * 70/18 Level - уборщиков много и мусора вообще нет
Иначе - мусор есть, но немного и вобщем уборщиков хватает.