MrTGN / unlimaginmod

Advanced Killing Floor game modification and large-scale flexible modification platform
Other
4 stars 0 forks source link

Доработка режима Invasion (нашествие) #469

Closed MrTGN closed 7 years ago

MrTGN commented 7 years ago

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

Вариантов решение такой проблемы у меня в голове несколько и, думаю, применять их нужно все.

  1. Нужно сбалансировать доход за каждого убитого монстра (или вылеченного союзника), а так же разные призовые за серии убийств и т.д. Т.е. чем игрок активнее и эффективнее уничтожает монстров, тем большее зарабатывает как денег, так и заряда своего специального умения. Получается, что малоактивные игроки будут зарабатывать значительно меньше.
  2. Возникла идея останавливать отсчет волны, если не происходило убийств монстров больше какого-то периода времени. Т.е. если игроки хотят все же эту волну завершить, они должны убивать. Если же решили побегать, то время волны просто не будет уменьшаться. Пока думаю сделать timeout секунд в 20.
  3. В конце волны раздавать призовые за номинации по количеству урона, хэдшотов, убийств, вылеченных союзников и т.д. Тут можно даже придумать не просто деньги, а на выбор рандомный приз, или деньги.

По-факту 2-й вариант реализовать можно очень быстро. Это всего несколько строк добавить в код нужно. Остальное уже дольше и сложнее. Нужно услышать ваше мнение на этот счет.

MrTGN commented 7 years ago

Придумал интересное решение. По-умолчанию волна стартует и время не убавляется, если не идут убийства. За каждого разного типа монстра дается разное время продления отсчета времени волны. Что бы было понятно: отсчет все так же убавляется на 1 секунду каждую секунду, но только в том случае, если он не "заблокирован". Блокируется он в том случае, если время на карте больше времени блокировки. Время же до следующей "блокировки" выставляется при убийстве. Берется текущее время на карте и прибавляется время продления (от 4 до 12 сек). И в течении этого времени до блокировки идет отсчет (уменьшение времени волны).

MrTGN commented 7 years ago

Протестировал. Работает так, как и предполагалось. Теперь так просто от монстров всю волну не побегаешь.

MrTGN commented 7 years ago

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