5

Fight Like a Wizard Alpha #6: эффекты заклинаний и очерёдность хода.

Доброе утро, Пикабу! Доброе утро, Лига разработчиков видеоигр!

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

Для начала продолжения я дописал также строки на действия и других свойств карт, помимо вычета стоимости энергии.

Однако при всём при этом я пропустил строку нанесения урона противнику. Там есть строки на нанесение урона конкретно щиту противника и конкретно противнику, однако простой урон может наносится как щиту, так и самому противнику, если щит разрушен.

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

И при проверке данное условие и порядок действий вполне себе работает.

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

Поэтому я добавил кнопку сброса карты.

Ей, так же, как и картам, добавил локальную переменную позиции.

Для того, чтобы визуально было видно, что карта сброшена, а не сыграна, я дорисовал полупрозрачную карту и дал ей поведение кнопки.

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

После этого я занялся дорисовкой новых карт, заодно изменил дизайн, ибо мне не нравилось, что символ стихии такой большой, а описание слишком мало.

Теперь мне не осталось ничего другого как настроить очерёдность хода.

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

Также я вставил ещё один одномерный массив, отображающий последовательность карт в колоде противника. А также скопировал события и действия для перетасовки карт, заменив объекты.

Следующие несколько дней я пробовал добавить действия для хода противника, действуя через отдельные функции со своими условиями, вводя и удаляя новые группы, но в любом случае наступал хаос: то карты действовали неправильно, убавляя энергию другой стихии и атакуя не ту цель, то атака вообще не проходила... В общем, после очередного перерыва на работу я нашёл верное решение, добавив пару функций.

Собственно, я также ввёл несколько глобальных переменных и изменил алгоритм хода. При нажатии на выбранную карту вместо проверки на её возможность использования в первую очередь идёт проверка на НЕвозможность. В противном случае вызывается функция своего хода. Одна из новых глобальных переменных нужна как раз, что бы функция узнавала, на какую карту нажал игрок.

Далее следуют действия выбора карт компом и вызывается функция.

Собственно, функция как раз применяет эффекты карты заклинаний со всеми подусловиями (поскольку подусловия выполняются уже после того, как основные действия закончатся из-за чего невозможно вставить условия в событие нажатия).

Кроме того, если у компа не хватает энергии на использование карты, то происходит процесс сброса карты с прикреплением всё той же полупрозрачной карты.

Я ещё при тесте забыл учесть нажатие на кнопку сброса. Так что когда я сбрасывал карту ход компу не передавался. Копируем действия!

Энергия не может длится вечно, рано или поздно она закончится. Так что я добавил по 4 источника каждому волшебнику в виде локальных переменных.

А также каждому источнику свой индикатор!

Механизм восполнения энергии крайне прост: в начале хода из каждого источника капает одна энергия. Т.е. если есть пара источников воды, то в начале каждого хода будет капать 2 энергии воды.

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

Ещё раз спасибо каждому, кто дочитал, спасибо тем 5-ти людям, которые на меня подписаны, и увидимся в следующем посте!

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

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

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

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

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"