Износ снаряжения

Материал из Клуб любителей рогаликов
Перейти к: навигация, поиск

Эта статья была первоначально написана для Darren Hebden's RLNews

Каждая часть экипировки должна иметь долговечность. Один пример этой системы демонстрируется в популярной серии коммерческих "hack and slash" игр с некоторыми roguelike-тенденциями. Другой пример может обнаружен в ADOM. Обе этих реализации могут быть улучшены.

В коммерческих играх, долговечность играет ту-же важную роль ограничителя. Если долговечность предмета достигла 0, он должен разрушиться и подвергнут ремонту. Это нормально поддерживается как коэффициент=current/maximum долговечности. Игра позволяет персонажу умением ремонта частично исправить предмет. Недостаток в том, что максимальная долговечность при этом уменьшается. Или NPC города может обеспечить эту услугу. Найденные предметы имеют более низкую, чем максимальная, долговечность и экипировка, которая была использована, теряет долговечность в течение использования или носки. Долговечность также влияет на стоимость предмета. Предмет в хорошем состоянии имеет более высокую цену, чем тот же предмет, но поврежденный. Пока система измерения легка для понимания и управления, она еще может улучшаться.

Экипировка может быть разрушена. Наилучший метод должен уменьшать эффективность предмета. Используя саблю, например, по мере износа, она будет давать меньше ущерба. Пример брони может быть в том, что защита кольчуги будет уменьшаться по мере уменьшения долговечности.

ADOM берет некоторые показатели в соображение, но запутанно, по причине вычисления множества предложенных атрибутов (некоторые говорят, что это хорошо) и в нем недостает способностей ремонта и для этого нужно идти в город. Обычно лучше заменить предмет, чтобы затем исправить его.

Вот некоторые идеи предложенные более или менее произвольно. Использование долговечности может также открыть другие возможности. Для примера, неповрежденный меч или новый может иметь описание перед идентификацией как Блестящий и Острый, а после использования, описание может измениться на тусклый и оцарапанный.

Долговечность обеспечивает интересные особенности с зельями или предметами сделанными из стекла. Зелья могут быть в ломких контейнерах. В Angband, зелья иногда повреждаются, когда они подвергаются теплу или холодной атаке. Но, что если зелье брошено? Они должны проливаться на пол, стены или чудовища. Это могло бы дать интересные эффекты если зелье было лечения или кислоты. Кристаллический Шар может не выдерживать долго под тяжелой атакой гигантов или земных гончих. Просто как крепкий фонарь полный нефти во всяком случае? Почему не один из них не разрушался после атаки, проливая пылающую нефть повсюду вокруг потребителя. Или бросить фонарь, чтобы расплескать пылающую нефть на чудовищ. Это - значительно предпочтительнее Фляжки Масляной атаки в Angband. Поскольку иначе приходится допускать, что Вы сначала как-нибудь зажгли Фляжку.

Код, для добавления статистики износа не труден. Если Вы используете ООП язык, Вы можете просто добавить дополнительные две строки в класс предметов.

int CurrentWear, NoWear;// Сколько раз надевался и повреждался
int Durability;// Как прочен этот предмет

В вашем объектном определении для меча Вы должны добавить величину для NoWear величины Долговечности. В процессе создания объекта, Вы можете назначать величину NoWear на CurrentWear.

CurrentWear = NoWear;// установить CurrentWear значение в NoWear

Затем, когда предмет использован или после некоторого числа использований, Вы должны вычесть значение.

if (NumOfUses == 10) {
  CurrentWear--;
  if (possiblebreak(Sword.CurrentWear)) Sword.Status = BROKE;
  NumOfUses=0;
}

Я надеюсь, что эти моменты показали Вам новые аспекты для вашей игры. Примеры кода были упрощены, но, надеюсь, укажут Вам правильное направление.



Автор: Michael Heinich.
Источник: Equipment Wear and Tear.
Перевел: Сергей В. Ждановских [Alchemist], 16.06.2005.