Задача к лекции «Browser APIs» и «SVG» – «Хрюногочи»

Предыдущие задания были достаточно хардкорные и формальные, поэтому в этот раз мы подготовили для вас кое-что фановое™. Предлагаем реализовать простую игру в стиле тамагочи.

В первую очередь, вам необходимо нарисовать персонажа при помощи SVG. Для добавления интерактивных анимаций к нему рекомендуем использовать snapsvg.io. В качестве персонажа предлагается использовать уже знакомого вам Хрюнделя.

Персонаж должен обладать тремя характерстиками: сытость, энергия, настроение. В начале все три характеристики равны 100% и со временем уменьшаются.

Хрюндель должен уметь
  • Сохранять своё состояние и уметь его восстанавливать даже после закрытия браузера. Это касается и изменения его характеристик.

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

  • Питаться, при подключении зарядного устройства. Если такая возможность недоступна, выводить кнопку по нажатию на которую, также можно накормить Хрюнделя. Во время питания восстанавливается сытость.

  • Начинать вас слушать при клике по нему. Распознанная фраза выводится на экране и поднимает настроение персонажа. Как только настроение поднимается до максимума персонаж должен перестать вас слушать.

  • Умирать при снижении любых двух характеристик до 0.

  • Периодически издавать звуки, громкость которых можно настраивать.

Нюансики
  • Должна присутствовать возможность в любой момент начать игру заново.

  • Когда Хрюндель выполняет какое-либо действие, он не может выполнять другое.
    Общение прерывается сном, питанием или наполнением настроения до 100%
    Питание прерывается сном или наполнением сытости до 100%
    Сон прерывается активной вкладкой и наполнением энергии до 100%

  • Изменение каждой из характеристик должно происходить линейно с течением времени. Накопление харакеристик логично сделать в 3-4 раза более быстрым, чем их расходование.

  • Для реализации большинства возможностей рекомендуем использовать последние версии браузеров Chromium, Yandex.Browser или Chrome. Отсутствие в браузере возможности не должно влиять на общую работоспособность игры.

  • Для демонстрации можно использовать heroku.

Дополнительное задание (+8 к настроению)

  • Когда вы находитесь на другой вкладке, Хрюндель должен писать вам сообщения если он проголодался или соскучился (любой из показателей снизился до 10%).

  • Хочется, чтобы питание, радость от общения и смерть тоже были анимированы.