Построение таблицы.Каждой форме и стихии расставляются балы, обозначающих качество проявления данного аспекта:
-5 - очень плохо (использовать смерть для исцеления)
-3 - плохо (попытка защитится от физического урона щитом света)
0 - так себе (окровавленный клинок, защита живого существа - нет штрафов, но и бонусов тоже)
+3 - хорошо (исцеление с помощью крови и плоти)
+5 - прекрасно (исцеление Восстановления Жизненных Оболочек)
Возможно также добавление -10 - невозможно (маг.виденье на основе формы клинок) и +10 - исключительное свойство (отражение зеркалом)
Аспекты формы: (принимаются предложения)
Аспект частоты - низкие (физический), средние (эфирный), высокие (астральный)
Аспект действия - варкаст, дот, дебаф, защита, баф, исцеление, ремонт, маг.виденье, изменение, отражение, контроль, призыв.
Аспект свойства заклинания - урон, прочность, сопротивление, меткость, дальность, массовость, длительность, сложность.
Аспект свойства существа - ТС, Ловкость, Регенерация ХП, МС, (Магическое Искусство?), Восстановление Энергии, Расход очков действия.
Аспект объекта - энергия, объект, существо, тело, эфирная душа, "сознание/астральная душа".
Принцип составление заклинаний.Формы делятся на "чёткие формы" (Клинок, Существо, Власть, Дар), форма-действие (восстановление, одарение, сжигание) и формы-качества (разрушительный, огненный, шипастый).
Возможно, эта часть будет описана как отдельный Аспект заклинания в виде балов.
Заклинательное поле поделено на три блока. В первый блок можно вложить только стихию и чёткую форму (Огненный Клинок)
Во второй блок одну форму-действие, в третий блок - одну две формы, обозначающие цель (если они есть)
Заклятие собирается тогда и только тогда, когда хотя бы в одном из трёх блоков есть стихия или форма, производная от неё.
Например: Огненный Клинок (блок 2 и 3 пусты), Оболочка Сжигающая Заклинания (блок 1 без стихи, но как стихия представлена в процессе), Истощение (Силы) Огня (1 блок пуст, но стихия представлена ввиде цели).
Кроме этого есть ячейки для форм качеств, которые определяют дополнительные качества для конкретной формы:
Шипастый Клинок из
Смертоносного Огня
Также есть строки для веток. Ветки отвечают за дополнительные образы действия (блок 2) и цели (блок 3)
Пример:
Видящий Клинок Смерти - доп.качества
- Разрушение Щитов - ветка
- Защита от Истощения и Ослабления - ветка
- Усиливается Поглощая Энергии - ветка "Усиливается" как доп.свойство "Поглощения"
Отличия веток от качеств заключается в более широком применимости веток. Качества просто даёт некий общий бонус к той или иной характеристике, который срабатывает всегда (или почти всегда), ветки - можно рассматривать как сложный и более нацеленный "внутренний баф", который может дать бонусы, а может и не дать.
Расчёт свойств заклинания.Для начала игрок указывает стихию и форму для базы. Все аспекты этих форм суммируются. Полученный балы определяют:
- для Аспект Частоты - вид урона и вид защиты (физический, эфирный, астральный) и её эффективность;
ОффтопТут возможно сделать либо полностью качественным данный показатель - от астрального урона защищает, от других видов нет, либо количественным - от астрального отлично, от эфирного так себе, от физического очень плохо. И то и другое программируется практически одинаково
- для Аспект Действия будет определять принцип работы заклинания;
Оффтопздесь также можно сделать показатель либо качественным, либо количественным, либо смешано
- для Аспекты свойств будут определять свойства заклинания - бонус к урона, бонус к защите, радиус действия, на этот аспект влияют также формы-качества (шипастный) и ветки (ущерб оболочкам).
- Аспект объектов нужен для обозначения целей заклинания и его взаимодействия с объектами, например,чтобы заклинание могло усиливаться от поглощения просто энергий (вспоминаем второй бой Дэвида и Кантора).
Также происходит подсчёт базовых характеристик заклинания, который зависит от ранее наложенных бафов, амулетов, характеристик заклинателя и местности.
Урон - определяет урон, наносимый врагу.
Прочность - определяет способность не замечать наносимый урон, после каждой эффективной атаки уменьшается, особенно важная характеристика для щитов, применима и для варкаста.
Сопротивление - определяет способность заклинания (бафа,дота,дебафа) сопротивлятся снятию, для остальных заклинаний - наложению дебафа/дота. Щит с хорошей сопротивляемостью может просто не позволит наложить на него дебаф/дот.
Меткость - антиловкость для существа и антисопротивляемость для заклинания, также может давать шанс нанести повышенный урон.
Дальность - определяет дальность действия, для очко в бафе увеличивает дальность, дебафа - уменьшает дальность ,для существа - перемещение по полю.
Массовость - область поражения.
Длительность - время действия.
Сложность - способность заклинания поддерживать и использовать свою структуру в зависимости от числа веток и слоёв. Отрицательная сложность даёт штрафы, положительная - бонусы к характеристикам. Например многоветвистое заклинание на основе огня выглядит сомнительно, а вот на основе дерева или паутины - основательно.
Взаимодействие двух заклинаний, заклинания с объектом и заклинания с существом.Когда два заклинания сталкиваются, рассчитываются бонусы взаимодействия. Зависит от того, какие цели указаны в ветках и основе одного заклинания и какие формы используются в ветках и основе другого. Ветка может блокировать действие другой ветки (усиливается истощая и защита от истощения), либо давать штраф к основе (Клинок и защита от рассечения).
А также от выбранных в основе стихий и форм. Например дерево имеет штраф против огня, щит - против штормовых заклинаний и прочее.
С существом по сути то же самое.
С бафами, дебафами и дотами. Тут по всей видимости нужно делать какой-то отдельный стек бафов/дебафов, которые будут давать бонусы/штрафы или изменять ТХ (последнее можно рассматривать как наделение доп.веткой или слоем). Такой стек потребуется для каждого существа и заклинания. Разумно его будет организовать в виде листа.
Существа и объекты по-сути устроены как некоторое заклинание с очками в ячейках тела ,души и прочее, которые и определяют их свойства. Взаимодействуют с заклинаниями также как обычные заклинания.
Общие принципы программирования:
Потребуется три двумерных массива, задача забить которые возлагается на Моргана.
Первый массив включается в себя список всех форм по строке и всех аспектов по столбцам. Элементы массива - вышеописанные балы.
Второй массив описывает особенности взаимодействия форм и стихий, все штрафы дерева против огня, щитов против штормов и прочее.
Третий массив - массив синонимичности. Описывает можно ли через одну формы выразит другую. Необходим для адекватной работы веток. Например "Ущерб Оболочкам" == "Ущерб Защите" "Яд" == "что-то Разрушительное" и т.п. Но! Сильно сомневаюсь, что прокатят какие-нибудь сложные синонимии типа "Источник Оболочек Жизни" == "Сферы Жизни"
Таким образом, каждая стихия и форма - это номера индексов в этих массивах. Соответственно, обращаясь по адресам этих индексов и определяется спектр действия заклинания на цели, штрафы и прочее.