Tycoon
Расширение Tycoon предлагает полноценный игровой режим Zoo Tycoon. Игроки продвигаются по дереву исследований, убивая мобов для разблокировки категорий, наполняя катализаторы ресурсами и запуская попытки исследования предметами топлива. Принадлежащие животные приносят пассивный доход, будучи размещёнными в зоопарке, могут использоваться как маунты во временных измерениях приключений, скрещиваться для получения гибридных яиц, престижироваться ради постоянных бонусов и отправляться в экспедиции на определённое время. Единое меню Control Panel — на 100% управляемое данными, без единого жёстко закодированного визуала — объединяет все системы в 16 вкладках.
Возможности
- Control Panel — Единое меню FrameLayout в раскладке 4│1│4 (боковые вкладки │ навигация прокруткой │ контент), скопированное с паттерна BTCSky. 16 вкладок (info, bestiary, zoo, research, expeditions, mounts, shop, adventure, prestige, ranking, challenges, breeding, staff, market, contracts, decorations) используют одно и то же окно; контент определяется по вкладке, а под-представления (
tab:context, напримерresearch:reptiles) наследуют подсветку родительской вкладки. Каждый визуал, заголовок и кнопка берутся из страниц Typewriter — код лишь заполняет живые теги данных и подключает взаимодействия. - Дерево исследований — Технологическое дерево по категориям, разблокируемое убийством мобов. Каждому животному требуется катализатор (наполняемый настраиваемыми ресурсными предметами) и предмет топлива для финального броска активации.
- Пассивная экономика — Размещённые животные зоопарка со временем приносят доход. На доход влияют совместимость с биомом, блоки среды обитания, персонал, декорации и уровень счастья. При повторном подключении происходит оффлайн-накопление дохода.
- Карта приключений — Исследуйте временное измерение, клонируемое по запросу из шаблонного мира (через BTC-CORE / Advanced Slime Paper). Телепортируйтесь к настроенным чанкам, чтобы открыть их; шкала усталости (увеличиваемая маунтами) истощается во время исследования и принудительно возвращает игрока в начальную точку при нуле. Мир автоматически выгружается, когда становится пустым.
- Маунты — Катайтесь на своих животных, используя управление ZQSD через перехват STEER_VEHICLE от PacketEvents. Шкала усталости истощается со временем и восстанавливается вне измерений приключений.
- Слияние — Слияние животных одного вида, запускаемое действием: объединяет двух самых высокоуровневых животных игрока одного вида в инкубируемое яйцо, с настраиваемым шансом повышения редкости и косметической мутации.
- Разведение — Межвидовое скрещивание по рецептам во вкладке «Разведение». Выберите двух подходящих родителей (сохраняются для каждого игрока во время просмотра), запустите инкубацию согласно настроенному рецепту и заберите вылупившееся потомство, когда оно будет готово.
- Престиж — Сбросьте животное максимального уровня до 1 уровня ради постоянного бонуса к доходу. Бонус накапливается в зависимости от количества престижей.
- Магазин доставки — Ротационный торговец-NPC с реальным расписанием (фиксированный интервал вроде
30m/2h/1d, ежедневное времяHH:MMили запасной вариант с перезарядкой) и взвешенным пулом предметов. Механика FOMO — ассортимент меняется при каждой ротации. - Экспедиции — Отправьте подходящее животное на таймированную пассивную миссию из вкладки «Экспедиции» (пустой слот → выберите животное в под-представлении
expeditions:start). Длительность сокращается нанятым Гидом экспедиций. По возвращении вы получаете ресурсы, опыт, предметы-катализаторы или редких бонусных животных. - Уровни и опыт животных — У каждого животного свой уровень, кривая опыта и максимальный уровень. Опыт начисляется за использование в качестве маунта, экспедиции и время, проведённое размещённым в зоопарке.
- Персонализация — Переименовывайте животных, применяйте варианты скинов (на основе ссылочных EntityDefinitions), надевайте аксессуары (шляпа, ошейник, седло).
- Система счастья — У животных есть уровень счастья от 0 до 100, влияющий на доход. Повышается за счёт подходящих биомов, блоков среды обитания, кормления, персонала и декораций. Снижается из-за перенаселённости.
- Ежедневные/еженедельные испытания — Ротационные испытания (поймать животное, разместить животное, убить мобов, заработать доход, использовать престиж, исследовать животное) на независимых ежедневных/еженедельных циклах. Забирайте награду во вкладке «Испытания» — деньги и командные награды.
- Персонал зоопарка — Нанимайте персонал с пассивным эффектом роли: Сборщик дохода (множитель дохода), Смотритель (минимальный порог счастья), Гид экспедиций (ускоряет экспедиции), Исследователь (ускоряет исследования). Требует периодической оплаты содержания; автоматически увольняется при неуплате.
- Кросс-серверный рейтинг — Рейтинг по общему заработку, количеству животных, суммарному престижу или числу размещённых животных (переключение сортировки во вкладке «Рейтинг»). Синхронизируется по всей сети через Redis pub/sub при наличии
TypeWriter-MySqlExtension; иначе используются только игроки этого сервера. - Рынок игроков — Выставляйте своих животных на продажу и покупайте у других игроков, в том числе на других серверах. Протокол Redis pub/sub (list/unlist/buy/confirm/deny) обеспечивает авторитет сервера-владельца объявления над сделкой, с возвратом средств покупателю при отказе или разрыве соединения. Без Redis используется только локальный рынок.
- Контракты на поставку животных — Сдавайте животных, соответствующих виду/категории, минимальному уровню и количеству, за награду деньгами и командами. Контракты могут быть одноразовыми или повторяемыми.
- Декорации и вольеры — Размещайте настоящие блоки как декорации зоопарка из вкладки «Декорации», каждая из которых даёт бонус к счастью и/или доходу, с лимитом на игрока. Убирайте их, чтобы освободить слот.
Архитектура
Записи
- Определения — Animal Definition: конфигурация вида (редкость, предметы-катализаторы, топливо, экономика, слияние, характеристики маунта, варианты модели).
- Манифесты — Research Category: папка технологического дерева с требованиями по убийствам мобов. Research Recipe: рецепт исследования катализатор/топливо. Adventure Map: шаблон измерения, сетка чанков, усталость по умолчанию. Delivery Shop: расписание ротации торговца и пул предметов. Breeding Recipe: пара родительских видов → потомство. Challenge: ежедневная/еженедельная цель и награда. Staff: нанимаемая роль, стоимость и содержание. Animal Contract: требование поставки и награда. Decoration: размещаемый блок, стоимость и бонусы. Control Panel Configuration: шаблоны слотов динамического списка для каждой вкладки.
- Действия — Control Panel: открывает меню 4│1│4. Catalyst Activate: использовать предмет топлива для попытки исследования. Category Unlock: разблокировать категорию по достижении порога убийств. Revenue Collect: собрать накопленный доход зоопарка. Animal XP: начислить опыт принадлежащим животным. Fusion: слияние животных одного вида в инкубируемое яйцо. Prestige: сбросить животное максимального уровня ради постоянного бонуса. Expedition Start: отправить животное на таймированную миссию. Customize Animal: переименовать, изменить скин и надеть аксессуары.
- Артефакты — Player Data: профиль зоопарка игрока (животные, доход, исследования, персонал, испытания, декорации). Market Listings: активные объявления рынка игроков.
Быстрый старт
Это расширение полностью управляется данными — ничего не отображается без содержимого страниц (Pages):
- 1. Создайте страницу Control Panel — Создайте запись
tycoon_menuсlayoutPoolтипаFrameLayout: фреймsidebar(вкладки, кнопкиtycoon_tab:<id>), фреймnav(прокрутка) и по одной раскладке<tabId>_contentна вкладку с кнопкамиtycoon_button:для динамического контента. - 2. Настройте динамические шаблоны — Заполните
tycoon_menu_configшаблонамиSlotItemConfigдля каждого списка, используемого вашими страницами (записи бестиария, животные исследования, строки рейтинга, объявления рынка, …). Любой оставленный пустым шаблон отображается как пустой слот. - 3. Определите контент — Начните с
animal_definition,research_categoryиadventure_mapдля основного игрового цикла, затем добавьтеtycoon_breeding_recipe,tycoon_challenge,tycoon_staff,tycoon_decoration,tycoon_animal_contractиdelivery_shopдля дополнительных систем, которые вы хотите включить.
Команды
Игрок
| Команда | Описание | Permission |
|---|---|---|
/zoo | Открывает Control Panel на вкладке Info | нет |
/zoo visit <player> | Телепортирует к зоопарку другого игрока | нет |
/adventure | Открывает Control Panel на вкладке Приключения | нет |
/mounts | Открывает Control Panel на вкладке Маунты | нет |
/collect | Вручную собирает накопленный доход | нет |
Admin
Все подкоманды /tycoon (кроме внутренних действий самого GUI) требуют tycoon.admin.
| Команда | Описание | Permission |
|---|---|---|
/tycoon give <player> <animalId> | Выдать животное игроку | tycoon.admin |
/tycoon remove <player> <animalId> | Удалить животное | tycoon.admin |
/tycoon setlevel <player> <animalId> <level> | Установить уровень животного | tycoon.admin |
/tycoon info [player] | Показать профиль tycoon игрока | tycoon.admin |
/tycoon reload | Принудительно сохранить все профили | tycoon.admin |
/tycoon spawnshop <shopId> | Принудительно заспавнить магазин доставки | tycoon.admin |
/tycoon resetfatigue [player] | Сбросить усталость от приключений | tycoon.admin |
/tycoon unlockcategory <player> <catId> | Разблокировать категорию исследований | tycoon.admin |
Каждый клик по кнопке Control Panel также проходит через /tycoon <action> ... (например, cp, list_scroll, market_buy, breed_start) — эти команды генерируются самим меню и доступны любому игроку в рамках его собственной сессии; они не предназначены для ручного использования.
Плейсхолдеры
Префикс: %typewriter_tycoon_*%
Глобальная статистика
| Плейсхолдер | Описание |
|---|---|
%typewriter_tycoon_total_animals% | Всего животных в собственности |
%typewriter_tycoon_placed_animals% | Сейчас размещено в зоопарке |
%typewriter_tycoon_unplaced_animals% | В собственности, но не размещено |
%typewriter_tycoon_total_revenue% | Доход за всё время (отформатированный) |
%typewriter_tycoon_total_revenue_raw% | Доход за всё время (необработанное число) |
%typewriter_tycoon_categories_unlocked% | Разблокированные категории исследований |
%typewriter_tycoon_categories_total% | Всего категорий исследований |
%typewriter_tycoon_categories_locked% | Заблокированные категории исследований |
%typewriter_tycoon_milestones_count% | Завершённые вехи коллекции |
%typewriter_tycoon_prestige_bonuses_count% | Активные бонусы престижа |
%typewriter_tycoon_expeditions_active% | Активные экспедиции |
%typewriter_tycoon_expeditions_completed% | Завершённые экспедиции (в настоящее время всегда 0) |
%typewriter_tycoon_zoo_visitors% | Всего посетителей зоопарка |
%typewriter_tycoon_active_mount_id% | ID текущего выбранного маунта |
%typewriter_tycoon_last_revenue_collect% | Метка времени последнего сбора дохода |
По категориям
| Плейсхолдер | Описание |
|---|---|
%typewriter_tycoon_category_<id>_unlocked% | Разблокирована ли категория |
%typewriter_tycoon_category_<id>_mobs_killed% | Убито мобов к разблокировке |
%typewriter_tycoon_category_<id>_required_kills% | Требуется убийств для разблокировки |
%typewriter_tycoon_category_<id>_progress_percent% | Процент прогресса разблокировки |
%typewriter_tycoon_category_<id>_name% | Отображаемое имя категории |
По животным
| Плейсхолдер | Описание |
|---|---|
%typewriter_tycoon_animal_<id>_level% | Уровень животного |
%typewriter_tycoon_animal_<id>_owned% | Владеет животным (true/false) |
%typewriter_tycoon_animal_<id>_prestige% | Количество престижей |
%typewriter_tycoon_animal_<id>_xp% | Текущий опыт |
%typewriter_tycoon_animal_<id>_rarity% | Название редкости |
%typewriter_tycoon_animal_<id>_rarity_color% | HEX-цвет редкости |
%typewriter_tycoon_animal_<id>_placed% | Размещено в зоопарке (true/false) |
%typewriter_tycoon_animal_<id>_custom_name% | Пользовательское имя |
%typewriter_tycoon_animal_<id>_is_mountable% | Можно оседлать (true/false) |
%typewriter_tycoon_animal_<id>_mount_speed% | Множитель скорости в качестве маунта |
%typewriter_tycoon_animal_<id>_fatigue_capacity% | Запас усталости (секунды) |
%typewriter_tycoon_animal_<id>_max_level% | Максимальный уровень |
%typewriter_tycoon_animal_<id>_revenue_rate% | Базовая ставка дохода |
%typewriter_tycoon_animal_<id>_fusion_level% | Минимальный уровень для слияния |
%typewriter_tycoon_animal_<id>_display_name% | Отображаемое имя |
%typewriter_tycoon_animal_<id>_catalyst_progress% | Процент заполнения катализатора |
%typewriter_tycoon_animal_<id>_catalyst_power% | Текущая мощность катализатора |
%typewriter_tycoon_animal_<id>_catalyst_items% | Количество переданных типов предметов |
Информация о размещённом животном
| Плейсхолдер | Описание |
|---|---|
%typewriter_tycoon_placed_<id>_happiness% | Уровень счастья |
%typewriter_tycoon_placed_<id>_biome% | Текущий биом |
%typewriter_tycoon_placed_<id>_world% | Название мира |
%typewriter_tycoon_placed_<id>_coords% | Координаты (x, y, z) |
%typewriter_tycoon_placed_<id>_chunk% | Чанк (x, z) |
Престиж и экспедиции
| Плейсхолдер | Описание |
|---|---|
%typewriter_tycoon_prestige_<id>% | Процент бонуса престижа |
%typewriter_tycoon_expedition_count% | Общее количество экспедиций |
%typewriter_tycoon_expedition_<n>_animal% | ID животного в слоте экспедиции N |
%typewriter_tycoon_expedition_<n>_remaining_seconds% | Секунд до возвращения |
%typewriter_tycoon_expedition_<n>_remaining_minutes% | Минут до возвращения |
%typewriter_tycoon_expedition_<n>_duration_hours% | Общая длительность в часах |
%typewriter_tycoon_expedition_<n>_ready% | Готово к сбору (true/false) |
Права
| Permission | Описание |
|---|---|
tycoon.admin | Администрирование системы tycoon (все подкоманды admin /tycoon). |
Зависимости
| Extension | Обязательно | Назначение |
|---|---|---|
| EntityExtension | Обязательно | Определения сущностей для моделей животных |
| Typewriter-GUIExtension | Обязательно | Рендеринг Control Panel (FrameLayout, кнопки, управляемые данными) |
| TypeWriter-VehicleExtension | Опционально | Система маунтов (опционально, на основе PacketEvents) |
| TypeWriter-RPGCOREExtension | Опционально | Ограничение лимитов поимки по уровню профессии |
| TypeWriter-TemporaryDimensionExtension | Опционально | Клонирование измерения карты приключений (SlimeWorldManager) |
| TypeWriter-ShopsExtension | Опционально | Абстракции экономики (Vault/Points/Placeholder) |
| TypeWriter-MySqlExtension | Опционально | Redis pub/sub для кросс-серверного рейтинга и рынка игроков |