Питомцы и сундуки

Питомцы - коллекция из 30 уникальных существ, которых юзер открывает покупая сундуки за маки. Каждый собранный питомец даёт постоянный процентный бонус ко всем будущим заработкам. Дубликаты возвращают часть стоимости сундука.

📁 Геймификация 👁 109 просмотров 🔄 2 ч. назад

Что такое питомцы

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

Питомцев в каталоге 30 штук, разделённых на 5 редкостей:
- Common (обычные) - частые, дают маленький буст
- Rare (редкие) - средняя частота, средний буст
- Epic (эпические) - редкие, заметный буст
- Legendary (легендарные) - очень редкие, крупный буст
- Mythic (мифические) - крайне редкие, максимальный буст

Каждый питомец имеет:
- PNG-картинку
- Имя на русском и английском
- Класс (вид/species - например «Кот», «Медведь», «Дракон»)
- Свой boost_percent - сколько процентов прибавит к заработку

Сундуки

Доступны 4 типа сундуков с разной стоимостью и шансами:

| Сундук | Цена | Шансы редкостей |
|---|---|---|
| Бронзовый | дешёвый | в основном Common, изредка Rare |
| Серебряный | средний | смесь Common/Rare, шанс на Epic |
| Золотой | дорогой | сдвиг к Rare/Epic, шанс на Legendary |
| Алмазный | очень дорогой | максимальный шанс на Epic/Legendary, есть шанс на Mythic |

Конкретные веса вероятностей хранятся в таблице chest<em>tiers.weights</em>json и могут корректироваться админом для баланса.

Бесплатный ежедневный сундук

Каждый юзер раз в 22 часа может открыть бесплатный Common-сундук без траты маков. Это гарантия стабильного притока питомцев даже без активного фарма маков.

Кнопка обновляется через 22 часа после последнего открытия - не привязана к календарным дням, чтобы юзер мог открывать сундук в одно и то же время каждый день.

Бонус коллекции (буст)

Каждый собранный питомец даёт +N процентов ко всем будущим заработкам. Бонусы стакаются - чем больше уникальных питомцев в коллекции, тем выше суммарный буст.

Формула финальной выплаты:

final = base × streak_multiplier × (1 + total_pet_boost / 100)

Где total<em>pet</em>boost - сумма boost_percent всех собранных питомцев.

Буст работает на:
- Прослушивание блога
- Игры (Memory, Open or Closed, Shortcut Quiz)
- Награды квестов
- Визиты программ (Эксперт)
- Награды за ранги
- Победа над боссом
- Letter Hunt

Буст НЕ работает на:
- admin<em>grant - админские ручные начисления
- chest</em>dup<em>compensation - компенсация за дубликат
- chest</em>purchase - сама покупка сундука (отрицательная транзакция)
- pet<em>collection</em>boost - чтобы избежать рекурсии

Дубликаты

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

| Редкость | Компенсация |
|---|---|
| Common | 30% от стоимости сундука |
| Rare | 50% |
| Epic | 70% |
| Legendary | 90% |
| Mythic | заменяется на Legendary - дубля Mythic не бывает |

Это гарантирует, что даже при невезучих сундуках юзер не теряет всю валюту - часть возвращается.

Защита от накруток

  • Roll на сервере - выпадение питомца определяется через random_int() с весами из БД. Юзер не может повлиять на результат
  • Атомарная транзакция - списание маков, INSERT в chest<em>opens, UPSERT в pet</em>inventory идут одним блоком
  • SELECT FOR UPDATE на баланс - параллельные запросы не могут списать дважды
  • UNIQUE(userid, petslug) - дубль-INSERT в инвентаре физически невозможен
  • Rate limit 10 открытий в минуту
  • Whitelist бустов (PETS<em>BOOSTABLE</em>REASONS) - предотвращает рекурсию буста на сам сундук

Где смотреть

Магазин сундуков

/pets/chests - 4 сундука с описаниями, ценой, шансами. Кнопка «Открыть» рядом с каждым.

Инвентарь

/pets или /profile?tab=pets - сетка из 30 питомцев. Полученные подсвечены и кликабельны (открывает деталь). Заблокированные затемнены, показано «не получен».

Лидерборд по питомцам

/leaderboard?tab=pets (если включён) - топ юзеров по сумме boost_percent в коллекции.

Свой буст

Текущий суммарный буст показан:
- В шапке плашки в /profile рядом с балансом
- В лидерборде рядом с твоим именем (плашка 🐾 +N%)
- В виджете Эксперта на странице программы (мелкий текст «(🐾 +N%)»)

📖 Связанные термины

← Все термины словаря