Pet
Pet (питомец) - встроенный объект редактора, который реализует виртуального питомца по типу тамагочи[1].
Описание
- Основное
Объект скорее является менеджером, который управляет неким объектом(подразумевается машина-состояния), который называется "скин" (скин - графическое оформление компьютерной программы или объекта компьютерной игры). У питомца есть четыре жизненных индикатора: сытость, бодрость , комфорт и радость. Все они уменьшают свои значения во времени и для их поддержания от пользователя требуются некие действия. Данный объект подразумевает , что питомец является неким неопределенным существом, но обладающий параметрами характеризующие его(далее Основные параметры): травоядность земная, травоядность водная, рыбность, мясистость, молочность, насекомость, зернистость, магия огня, магия света, магия воды, магия земли. Эти параметры меняются в зависимости от корма, которым кормят питомца(то есть каждый корм обладает тем же рядом параметров).
- Перерождение
Каждое действие над питомцем(кормежка, игра и т.п.) накапливает опыт питомца и глобальный опыт(опыт экономики). Когда наш питомец накапливает определенное количество опыта, он готов переродиться в некое животное. Все животные задаются так же через питомца и обладают Основными параметрами. Подходящее животное вычисляется путем подсчета коэффициента отличия(КО) для каждого из этих животных(КО вычисляется подсчетом суммы квадратов разностей параметров в процентах питомца и животного). Для минимизации повторения животного введен параметр диапазона поиска(кол-во животных, которые будут обрабатываться) и обязательный корм , которым нужно покормить , чтобы получить то или иное животное. После перерождения полученное животное попадает в нашу коллекцию и мы можем снова продолжать выращивать другие животные с новым питомцем.
- Коллекция животных
В объекте предусмотрены механизмы отображения коллекции животных в таблице с возможностью разбивки по группам, а также вывод подробной информации по животному. Каждое животное обладает возможностью генерации бонусов в виде золота. Бонусы зависят от возраста животного, например в возрасте от 1 до 7 дней генерируется 5 монет , от 7 до 14 - 10 и т.д. Так же есть возможность продавать животных , если их больше одного.
- Корм
Важная особенность в том, что еда должна быть задан не только в объекте питомца, но и в экономике. Кормление происходит путем применения предмета экономикой.
Основные параметры
Кроме базовых параметров объекта, имеет ряд специализированных параметров.
(Курсивом в скобках указан id параметра, или состояния).
- eitems (eitems_res) - Объект типа eitems. Используется для "подслушивания" за примененными предметами, если это будет корм,указанный в питомце, то он его съест.
- economics (economics) - Объект типа economics. Для начисления глобального XP , а также золота за бонусы.
- PetTemplate (pettemplate) - Объект типа PetTemplate. Объект представляющий шаблон ячейки таблицы с животными. (будет описан ниже)
- PetCollectionTemplate (petcollectiontemplate) - Объект типа PetCollectionTemplate. Объект представляющий шаблон ячейки таблицы с коллекциями. (будет описан ниже)
Группа - параметры перерождения животного
- XP до перерождения (xp_to_reborn) - Количество xp, достигнув которого питомец начнет перерождаться в животное.
- тип пересчета XP (counting_xp_rule) - Тип пересчета XP. Правило определяющее сколько нужно будет XP до следующего перерождения. 1) Постоянное. 2) параметр выше * кол-во имеющихся уже зверей.
- Количество животных для поиска (search_animal_count) - Количество животных, среди которых будет искаться ближайшее для перерождения.
Группа - скин питомца
- скин питомца (skin_obj) - Объект представляющий скин питомца.
Группа - начальные значения
- сытость (beg_satiety) - Показатель сытости при первом заходе в игру.
- бодрость (beg_liveliness)- Показатель бодрости при первом заходе в игру.
- комфорт (beg_comfort) - Показатель комфорта при первом заходе в игру.
- радость (beg_happiness) - Показатель радости при первом заходе в игру.
Группа - онлайн настройки разряда - настройки значений, которые будут отниматься во время игры, а также время за которое это произойдет.
- процент разрядки сытости (value_to_decline_satiety) - Процент на который разрядится сытость.
- процент разрядки бодрости (value_to_decline_liveliness) - Процент на который разрядится бодрость.
- процент разрядки комфорта (value_to_decline_comfort) - Процент на который разрядится комфорт.
- процент разрядки радости (value_to_decline_happiness) - Процент на который разрядится радость.
- время разрядки сытости (time_to_decline_satiety) - Время через которое отнимется значение сытости указанное выше.
- время разрядки бодрости (time_to_decline_liveliness) - Время через которое отнимется значение бодрости указанное выше.
- время разрядки комфорта (time_to_decline_comfort) - Время через которое отнимется значение комфорта указанное выше.
- время разрядки радости (time_to_decline_happiness) - Время через которое отнимется значение радости указанное выше.
- время восстановления процента бодрости (time_of_sleeping) - Время за которое отнимется восстановится значение бодрости.
Группа - оффлайн настройки разряда - настройки значений, которые будут отниматься во время вне игры, а также время за которое это произойдет.
- процент разрядки сытости (value_to_decline_satiety) - Процент на который разрядится сытость.
- процент разрядки бодрости (value_to_decline_liveliness) - Процент на который разрядится бодрость.
- процент разрядки комфорта (value_to_decline_comfort) - Процент на который разрядится комфорт.
- процент разрядки радости (value_to_decline_happiness) - Процент на который разрядится радость.
- время разрядки сытости (time_to_decline_satiety) - Время через которое отнимется значение сытости указанное выше.
- время разрядки бодрости (time_to_decline_liveliness) - Время через которое отнимется значение бодрости указанное выше.
- время разрядки комфорта (time_to_decline_comfort) - Время через которое отнимется значение комфорта указанное выше.
- время разрядки радости (time_to_decline_happiness) - Время через которое отнимется значение радости указанное выше.
- время восстановления процента бодрости (time_of_sleeping) - Время за которое отнимется восстановится значение бодрости.
Группа - награда в XP - XP за разные действия(XP за кормление указывается в параметрах каждой еды)
- XP за сон (xp_for_sleeping) - XP питомца за сон.
- XP за уборку (xp_for_cleaning) - XP питомца за уборку.
- XP за игру (xp_for_mini_game) - XP питомца за игру.
- XP за ласку (xp_for_caressing) - XP питомца за ласку.
Группа - награда в XP - глобальное XP(экономика) за разные действия
- XP за кормление (global_xp_for_sleeping) - глобальное XP за кормление.
- XP за сон (global_xp_for_sleeping) - глобальное XP за сон.
- XP за уборку (global_xp_for_cleaning) - глобальное XP за уборку.
- XP за игру (global_xp_for_mini_game) - глобальное XP за игру.
- XP за ласку (global_xp_for_caressing) - глобальное XP за ласку.
Группа - настройка заряда индикаторов
- процент радости за минигру (happiness_for_minigame) - процент радости, который получим за игру в минигру.
- процент радости за ласку (happiness_for_caressing) - процент радости, который получим за ласку с питомцем.
- процент комфорта за уборку (comfort_for_cleaning) - процент комфорта за уборку.
Группа - индикаторы
- счетчик XP (counter_xp) - Объект типа counter для отображения XP.
- прогресс XP (progress_xp) - Объект типа progress для отображения XP.
- время изменения прогресса XP (time_to_change_xp_counter) - Время изменения прогресса XP.
- счетчик сытости (counter_satiety) - Объект типа counter для отображения сытости.
- счетчик бодрости (counter_liveliness) - Объект типа counter для отображения бодрости.
- счетчик комфорт (counter_comfort) - Объект типа counter для отображения комфорт.
- счетчик радости (counter_happiness) - Объект типа counter для отображения радости.
- прогресс сытости (progress_satiety) - Объект типа progress для отображения сытости.
- прогресс бодрости (progress_liveliness) - Объект типа progress для отображения бодрости.
- прогресс комфорт (progress_comfort) - Объект типа progress для отображения комфорт.
- прогресс радости (progress_happiness) - Объект типа progress для отображения радости.
- время изменения прогресса индикаторов (time_to_change_progress) - Время изменения прогресса индикаторов.
- время задержки перед анимацией сытости (infelicity_satiety) - Задержка перед анимацией увеличения значения прогресса(указывается в мс).
- время задержки перед анимацией бодрости (infelicity_liveliness) - Задержка перед анимацией увеличения значения прогресса(указывается в мс).
- время задержки перед анимацией комфорт (infelicity_comfort) - Задержка перед анимацией увеличения значения прогресса(указывается в мс).
- время задержки перед анимацией радости (infelicity_happiness) - Задержка перед анимацией увеличения значения прогресса(указывается в мс).
Группа - отображение коллекции животных
- таблица с животными (animal_table) - Объект типа table для отображения собранных животных.
- машина-окно (animal_wnd_item) - Объект который будет переведен в состояние open при тапе по таблице.
- Заголовок (animal_txt_header) - Объект типа text для названия животного.
- Иконка животного (animal_icon) - Объект для отображения иконки животного.
- Дата рождения (animal_txt_date) - Объект типа text для отображения даты рождения.
- Счетчик золота (animal_gold_counter) - Объект типа counter для отображения количества полученого золота.
- Счетчик кол-ва животных (animal_num_counter) - Объект типа counter для отображения количества животных.
- Счетчик цены за животного (animal_price_counter) - Объект типа counter для отображения цены за животного.
- Кнопка бонуса (animal_bonus_btn) - Объект типа button ,который будет активен или не активен в зависимости от готовности бонуса.
- Кнопка продать (animal_sell_btn) - Объект типа button ,который будет активен, если животного больше чем одно.
Группа - сгенерено золото : изменить состояние объекта
- объект (gold_generated_obj) - Объект, состояние которого нужно изменить.
- состояние (gold_generated_st) - Новое состояние объекта.
Группа - собрали коллекцию : изменить состояние объекта
- объект (collection_ready_obj) - Объект, состояние которого нужно изменить.
- состояние (collection_ready_st) - Новое состояние объекта.
Настройки животных
- текстовый id животного (animal_id) - Текстовый id животного.
- текстовый id категории (category_id) - Текстовый id категории.
- графика животного (animal_image) - Клип с графикой для животоного.
- еда (feed_ids) - Айди еды, которая должна быть съдена для возможности получить это животное.
- Цена (animal_price) - Цена за которую можно продать животного.
- Травоядность земная (animal_earth_travelagent) - Один из основных параметров.
- Травоядность водная (animal_water_travelagent) - Один из основных параметров.
- Рыбность (animal_fish) - Один из основных параметров.
- Мясистость (animal_meat) - Один из основных параметров.
- Молочность (animal_milk) - Один из основных параметров.
- Насекомость (animal_insects) - Один из основных параметров.
- Зернистость (animal_grain) - Один из основных параметров.
- Магия огня (animal_fire_magic) - Один из основных параметров.
- Магия света (animal_light_magic) - Один из основных параметров.
- Магия воды (animal_water_magic) - Один из основных параметров.
- Магия земли (animal_earth_magic) - Один из основных параметров.
- Цветность (animal_color) - Один из основных параметров.
Настройки коллекции животных
- текстовый id коллекции (collection_id) - Текстовый id коллекции.
- животные (animal_ids) - Текстовые id животных, которые входят в коллекцию(перетаскиваются из текстовой базы).
- графика подложки (underlay_id) - Клип с графикой для подложки животного.
- текстовый id подарка (gift_id) - Айди предмета , который сможем получить после сбора коллекции(в тексте должна быть картинка Icon 1, которая будет отображена в соответствующем объекте ).
- Res1 (gift_res1) - Золото, которое сможем получить после сбора коллекции.(Используется, если нет предмета-подарка).
- графика награды золота (gift_res1_image) - Клип с графикой награды золота(Используется, если нет предмета-подарка).
Настройки корма
- текстовый id корма (food_item) - Текстовый id корма.
- тип пищи (feed_type) - Тип пищи.Еда=0, Напиток=1, Энергетик=2. От этого парметра зависит состояние в котрое перейдет скин.
- XP за кормление (food_image) - Клип с графикой для животоного.
- Травоядность земная (food_earth_travelagent) - Один из основных параметров.
- Травоядность водная (food_water_travelagent) - Один из основных параметров.
- Рыбность (food_fish) - Один из основных параметров.
- Мясистость (food_meat) - Один из основных параметров.
- Молочность (food_milk) - Один из основных параметров.
- Насекомость (food_insects) - Один из основных параметров.
- Зернистость (food_grain) - Один из основных параметров.
- Магия огня (food_fire_magic) - Один из основных параметров.
- Магия света (food_light_magic) - Один из основных параметров.
- Магия воды (food_water_magic) - Один из основных параметров.
- Магия земли (food_earth_magic) - Один из основных параметров.
- Цветность (food_color) - Один из основных параметров.
- изменение сытости (value_of_increase) - На сколько изменится индикатор сытости.
- изменение бодрости (change_of_comfort) - На сколько изменится индикатор бодрости.
- изменение комфорта (change_of_happiness) - На сколько изменится индикатор комфорта.
- изменение радости (change_of_growthing) - На сколько изменится индикатор радости.
- коефициент роста (coef_of_growthing) - На сколько умножится увеличение даваемого XP до следующего перерождения.
Настройки диапазонов действий
- действие (food) - Тип действия.рием пищи=0, сон=1, уборка=2, Игра=3.
- сытость больше (food) - Левая граница сытости.
- бодрость больше (food) - Левая граница бодрости .
- комфорт больше (food) - Левая граница комфорта .
- радость больше (food) - Левая граница радости.
- сытость меньше (food) - Правая граница сытости.
- бодрость меньше (food) - Правая граница бодрости .
- комфорт меньше (food) - Правая граница комфорта .
- радость меньше (food) - Правая граница радости.
Настройки бонусов
- !Настройка бонусов распространяется на всех собранных животных.
- возраст начала (activation_age) - возраст животного с которого будет начислятся бонус(в днях).
- возраст конца (deactivation_age) - возраст животного после которого закончится начисление бонуса(в днях).
- золото (bonus_gold) - Количество золота .
- объект отображения (animal_bonus_obj) - Объект для отображения бонуса животного .
- графика для таблицы (bonus_image) - Клип с графикой для таблицы(0 фрейм - не дошли,1 - прошлли, 2 - теущий).
- время генерации бонуса (bonus_time) - время за которое будем получать золото.
Состояния Объекта
- wait - состояние по умолчанию.
- clean - убрать за питомцем
- sleep - уложить спать
- auto_feed - авто кормежка (для теста). Будет есть рандомную еду с выводом в логи до перерождения.
- wake_up - разбудить
- mg_played - поиграли в минигру
- caressed - погладили
- fill_animal_table - заполнить таблицу коллекции животных
- table_clicked - кликнули по таблице
- collect_bonus - забрать бонус
- read - считать параметры из опций
- sell_open_animal - продать только что открытое животное.
- switch_image_frame - переключить изображение в Иконке животного на новый кадр в клипе.
Состояния Скина питомца
- ate - скин будет переведен в это состояние, когда питомец поест
- drank - скин будет переведен в это состояние, когда питомец попьет
- cleaned - скин будет переведен в это состояние после уборки
- sleeping - скин будет переведен в это состояние, когда питомец ляжет спать
- waked_up - скин будет переведен в это состояние, когда питомец проснется
- cannot_sleep - скин будет переведен в это состояние, если питомец не может
- cannot_eat - скин будет переведен в это состояние, если питомец есть
- cannot_clean - скин будет переведен в это состояние, если питомец убираться
- cannot_play - скин будет переведен в это состояние, если питомец играть
Опции
Питомец сохраняет ряд своих параметров в опции с тем, чтобы при повторном запуске загрузить их. Часть этих параметров(текущее время игры, индикаторы и времена связанные с ними) сохраняются каждые две секунды. Остальные , только в момент их изменения.
- time_of_sleeping - Время сна
- time_to_decline_happiness - время до отнимания индикатора радости
- time_to_decline_comfort - время до отнимания индикатора комфорта
- time_to_decline_liveliness - время до отнимания индикатора бодрости
- time_to_decline_satiety - время до отнимания индикатора сытости
- happiness - значение индикатора радости
- comfort - значение индикатора комфорта
- liveliness - значение индикатора бодрости
- satiety - значение индикатора сытости
- last_time - последнее время игры
- sleeping feeding_counter - кол-во кормежек
- color - цвет животного
- grain - один из основных параметров
- insects - один из основных параметров
- milk - один из основных параметров
- meat - один из основных параметров
- fish - один из основных параметров
- water_travelagent - один из основных параметров
- earth_travelagent - один из основных параметров
- pet_xp - XP питомца
- feed_history - история кормежки в виде "342, 351"
Параметры животных - тэг в ввиде animal_129 , где 129 id животного
- bonus_generated - 1, если бонус сгенерирован
- passed_time_bonus - время прошедшее после последней генерации бонуса
- birthday - дата рождения
- owned - кол-во животных
- id - текстовое id животного
Параметры коллекций - тэг в collection будет содержать в себе параметры типа collection_<id>. Если значение будет 1 , значит коллекция была собрана и награду забрали.
Примечания и дополнения
Актуализация значений индикаторов происходит каждую секунду, то есть индикатор не может уменьшать за время меньшее одной секунды. Проверка генерации бонусов происходит раз в 30 секунд, соответственно не будет генериться за меньшее кол-во времени. В состоянии автокормления кормежка происходит раз в секунду. Как актуализируются индикаторы в оффлайн режиме. Как только мы заходим в игру и стартуем объекта питомца происходит загрузка параметров из опций и их актуализация на основании оффлайн настроек. Для этого высчитывается разница между последним записанным временем и текущем временем , когда зашли в игру. Для каждого индикатора подсчитывается кол-во отниманий произошедших за это время.