Pular para o conteúdo principal

Tycoon

A extensão Tycoon oferece um modo de jogo completo no estilo Zoo Tycoon. Os jogadores progridem em uma árvore de pesquisa matando mobs para desbloquear categorias, alimentam catalisadores com recursos e ativam tentativas de pesquisa com itens de combustível. Os animais possuídos geram renda passiva ao serem colocados no zoológico, podem ser montados como montarias em dimensões de aventura temporárias, cruzados para gerar ovos híbridos, prestigiados para um bônus permanente, e enviados em expedições cronometradas. Um único menu Control Panel — 100% orientado a dados, sem nenhum visual fixo no código — hospeda todos os sistemas em 16 abas.

Recursos

  • Control Panel — Um único menu FrameLayout em layout 4│1│4 (abas laterais │ navegação por rolagem │ conteúdo), clonado do padrão do BTCSky. 16 abas (info, bestiário, zoológico, pesquisa, expedições, montarias, loja, aventura, prestígio, classificação, desafios, reprodução, equipe, mercado, contratos, decorações) compartilham a mesma janela; o conteúdo é resolvido por aba, e as subvisões (tab:context, ex. research:reptiles) reutilizam o destaque da aba pai. Cada visual, título e botão vem das Páginas do Typewriter — o código apenas preenche as tags de dados ao vivo e anexa as interações.
  • Árvore de pesquisa — Árvore tecnológica organizada por categorias, desbloqueada ao matar mobs. Cada animal exige um catalisador (alimentado com itens de recurso configuráveis) e um item de combustível para a tentativa final de ativação.
  • Economia passiva — Os animais colocados no zoológico geram renda ao longo do tempo. Afinidades de bioma, blocos de habitat, equipe, decorações e felicidade afetam a renda. Recuperação offline ao reconectar.
  • Mapa de aventura — Explore uma dimensão temporária clonada sob demanda a partir de um mundo modelo (via BTC-CORE / Advanced Slime Paper). Teletransporte-se para chunks configurados para descobri-los; um medidor de fadiga (estendido por montarias) esgota durante a exploração e força um retorno à origem ao chegar a zero. O mundo é descarregado automaticamente assim que fica vazio.
  • Montarias — Monte seus animais possuídos com controles ZQSD via interceptação STEER_VEHICLE do PacketEvents. O medidor de fadiga se esgota com o tempo e recarrega fora das dimensões de aventura.
  • Fusão — Fusão entre animais da mesma espécie acionada por ação: combina os dois animais de maior nível de um jogador de uma mesma espécie em um ovo em incubação, com uma chance configurável de melhoria de raridade e mutação cosmética.
  • Reprodução — Cruzamento entre espécies orientado por receitas a partir da aba Reprodução. Selecione dois pais elegíveis (persistidos por jogador durante a navegação), inicie uma incubação correspondente a uma receita configurada, e colete a prole assim que ela eclodir.
  • Prestígio — Reinicie um animal de nível máximo para o nível 1 em troca de um bônus de renda permanente. Acumula-se conforme o número de prestígios.
  • Loja de entregas — Mercador NPC rotativo com uma programação real (intervalo fixo como 30m/2h/1d, um horário diário HH:MM, ou um cooldown de reserva) e um pool de itens ponderado. Mecânicas FOMO — o inventário muda a cada rotação.
  • Expedições — Envie um animal elegível em uma missão ociosa cronometrada a partir da aba Expedições (slot vazio → escolha um animal na subvisão expeditions:start). A duração é reduzida por um Guia de Expedição contratado. Retorna com recursos, XP, itens de catalisador, ou animais bônus raros.
  • Níveis e XP dos animais — Cada animal tem seu próprio nível, curva de XP e nível máximo. Ganhe XP montando, em expedições e pelo tempo colocado no zoológico.
  • Personalização — Renomeie animais, aplique variantes de aparência (EntityDefinitions baseadas em referência), equipe acessórios (chapéu, coleira, sela).
  • Sistema de felicidade — Os animais têm uma felicidade de 0 a 100 que afeta a renda. É melhorada por biomas compatíveis, blocos de habitat, alimentação, equipe e decorações. É penalizada por superlotação.
  • Desafios diários/semanais — Desafios rotativos (capturar um animal, colocar um animal, matar mobs, ganhar renda, prestigiar, pesquisar um animal) em ciclos diários/semanais independentes. Resgate na aba Desafios para obter dinheiro e recompensas de comando.
  • Equipe do zoológico — Contrate funcionários com um efeito de função passivo: Coletor de Renda (multiplicador de renda), Cuidador (piso de felicidade), Guia de Expedição (expedições mais rápidas), Pesquisador (pesquisa mais rápida). Cobra manutenção periódica; é demitido automaticamente se não for pago.
  • Classificação cross-servidor — Classificação por renda total, animais possuídos, total de prestígios, ou animais colocados (ciclo de ordenação na aba Classificação). Sincronizado em toda a rede via Redis pub/sub quando TypeWriter-MySqlExtension está presente; caso contrário, recorre apenas aos jogadores deste servidor.
  • Mercado entre jogadores — Coloque à venda um animal possuído e compre de outros jogadores, inclusive entre servidores. Um protocolo Redis pub/sub (list/unlist/buy/confirm/deny) mantém o servidor proprietário do anúncio como autoridade sobre a venda, com reembolsos do lado do comprador em caso de recusa ou desconexão. Recorre a um mercado somente local sem Redis.
  • Contratos de entrega de animais — Entregue animais que correspondam a uma espécie/categoria, um nível mínimo e uma quantidade, em troca de uma recompensa em dinheiro e comandos. Os contratos podem ser únicos ou repetíveis.
  • Decorações e recintos — Coloque blocos reais como decorações do zoológico a partir da aba Decorações, cada uma concedendo um bônus de felicidade e/ou renda, limitado por jogador. Remova-os para recuperar o slot.

Arquitetura

Entradas

  • DefiniçõesAnimal Definition: configuração da espécie (raridade, itens de catalisador, combustível, economia, fusão, atributos de montaria, variantes de modelo).
  • ManifestosResearch Category: pasta da árvore tecnológica com requisitos de mortes de mobs. Research Recipe: receita de pesquisa catalisador/combustível. Adventure Map: modelo de dimensão, grade de chunks, fadiga padrão. Delivery Shop: programação e pool de itens do mercador rotativo. Breeding Recipe: par de espécies parentais → prole. Challenge: objetivo e recompensa diária/semanal. Staff: função contratável, custo e manutenção. Animal Contract: requisito de entrega e recompensa. Decoration: bloco posicionável, custo e bônus. Control Panel Configuration: templates de slots dinâmicos para cada aba.
  • AçõesControl Panel: abre o menu 4│1│4. Catalyst Activate: usa o item de combustível para tentar a pesquisa. Category Unlock: desbloqueia uma categoria assim que seu limite de mortes é atingido. Revenue Collect: coleta a renda acumulada do zoológico. Animal XP: concede experiência aos animais possuídos. Fusion: fusão entre animais da mesma espécie em um ovo em incubação. Prestige: reinicia um animal de nível máximo em troca de um bônus permanente. Expedition Start: envia um animal em uma missão cronometrada. Customize Animal: renomear, aplicar aparência e equipar acessórios.
  • ArtefatosPlayer Data: perfil de zoológico por jogador (animais, renda, pesquisa, equipe, desafios, decorações). Market Listings: anúncios ativos do mercado entre jogadores.

Início rápido

Esta extensão é totalmente orientada a dados — nada é renderizado sem conteúdo de Páginas:

  • 1. Construir a página do Control Panel — Crie uma entrada tycoon_menu com um layoutPool do tipo FrameLayout: um frame sidebar (abas, botões tycoon_tab:<id>), um frame nav (rolagem), e um layout <tabId>_content por aba usando botões tycoon_button: para o conteúdo dinâmico.
  • 2. Configurar os templates dinâmicos — Preencha tycoon_menu_config com os templates SlotItemConfig para cada lista usada por suas páginas (entradas do bestiário, animais de pesquisa, linhas de classificação, anúncios do mercado, …). Qualquer template deixado vazio é renderizado como um slot vazio.
  • 3. Definir o conteúdo — Comece com animal_definition, research_category e adventure_map para o ciclo de jogo principal, depois adicione tycoon_breeding_recipe, tycoon_challenge, tycoon_staff, tycoon_decoration, tycoon_animal_contract, e delivery_shop para os sistemas extras que você quiser habilitar.

Comandos

Jogador

ComandoDescriçãoPermission
/zooAbre o Control Panel na aba Infonenhuma
/zoo visit <player>Teletransporta para o zoológico de outro jogadornenhuma
/adventureAbre o Control Panel na aba Aventuranenhuma
/mountsAbre o Control Panel na aba Montariasnenhuma
/collectColeta manualmente a renda acumuladanenhuma

Admin

Todos os subcomandos de /tycoon (além das ações internas próprias da GUI) exigem tycoon.admin.

ComandoDescriçãoPermission
/tycoon give <player> <animalId>Dá um animal a um jogadortycoon.admin
/tycoon remove <player> <animalId>Remove um animaltycoon.admin
/tycoon setlevel <player> <animalId> <level>Define o nível de um animaltycoon.admin
/tycoon info [player]Exibe o perfil tycoon de um jogadortycoon.admin
/tycoon reloadForça o salvamento de todos os perfistycoon.admin
/tycoon spawnshop <shopId>Força o surgimento de uma loja de entregastycoon.admin
/tycoon resetfatigue [player]Reinicia a fadiga de aventuratycoon.admin
/tycoon unlockcategory <player> <catId>Desbloqueia uma categoria de pesquisatycoon.admin

Cada clique em um botão do Control Panel também passa por /tycoon <action> ... (ex. cp, list_scroll, market_buy, breed_start) — esses comandos são gerados pelo próprio menu e ficam abertos a qualquer jogador em sua própria sessão, não sendo destinados a uso manual.

Placeholders

Prefixo: %typewriter_tycoon_*%

Estatísticas globais

PlaceholderDescrição
%typewriter_tycoon_total_animals%Total de animais possuídos
%typewriter_tycoon_placed_animals%Atualmente colocados no zoológico
%typewriter_tycoon_unplaced_animals%Possuídos, mas não colocados
%typewriter_tycoon_total_revenue%Renda total (formatada)
%typewriter_tycoon_total_revenue_raw%Renda total (número bruto)
%typewriter_tycoon_categories_unlocked%Categorias de pesquisa desbloqueadas
%typewriter_tycoon_categories_total%Total de categorias de pesquisa
%typewriter_tycoon_categories_locked%Categorias de pesquisa bloqueadas
%typewriter_tycoon_milestones_count%Marcos de coleção concluídos
%typewriter_tycoon_prestige_bonuses_count%Bônus de prestígio ativos
%typewriter_tycoon_expeditions_active%Expedições ativas
%typewriter_tycoon_expeditions_completed%Expedições concluídas (atualmente sempre 0)
%typewriter_tycoon_zoo_visitors%Total de visitantes do zoológico
%typewriter_tycoon_active_mount_id%ID da montaria atualmente selecionada
%typewriter_tycoon_last_revenue_collect%Timestamp da última coleta de renda

Específico de categoria

PlaceholderDescrição
%typewriter_tycoon_category_<id>_unlocked%Se a categoria está desbloqueada
%typewriter_tycoon_category_<id>_mobs_killed%Mobs mortos rumo ao desbloqueio
%typewriter_tycoon_category_<id>_required_kills%Mortes necessárias para desbloquear
%typewriter_tycoon_category_<id>_progress_percent%Porcentagem de progresso do desbloqueio
%typewriter_tycoon_category_<id>_name%Nome de exibição da categoria

Específico de animal

PlaceholderDescrição
%typewriter_tycoon_animal_<id>_level%Nível do animal
%typewriter_tycoon_animal_<id>_owned%Possui o animal (true/false)
%typewriter_tycoon_animal_<id>_prestige%Número de prestígios
%typewriter_tycoon_animal_<id>_xp%XP atual
%typewriter_tycoon_animal_<id>_rarity%Nome da raridade
%typewriter_tycoon_animal_<id>_rarity_color%Cor hexadecimal da raridade
%typewriter_tycoon_animal_<id>_placed%Colocado no zoológico (true/false)
%typewriter_tycoon_animal_<id>_custom_name%Nome personalizado
%typewriter_tycoon_animal_<id>_is_mountable%Montável (true/false)
%typewriter_tycoon_animal_<id>_mount_speed%Multiplicador de velocidade em montaria
%typewriter_tycoon_animal_<id>_fatigue_capacity%Capacidade de fadiga (segundos)
%typewriter_tycoon_animal_<id>_max_level%Nível máximo
%typewriter_tycoon_animal_<id>_revenue_rate%Taxa de renda base
%typewriter_tycoon_animal_<id>_fusion_level%Nível mínimo para fusão
%typewriter_tycoon_animal_<id>_display_name%Nome de exibição
%typewriter_tycoon_animal_<id>_catalyst_progress%Porcentagem de preenchimento do catalisador
%typewriter_tycoon_animal_<id>_catalyst_power%Poder atual do catalisador
%typewriter_tycoon_animal_<id>_catalyst_items%Quantidade de tipos de itens doados

Informações de animal colocado

PlaceholderDescrição
%typewriter_tycoon_placed_<id>_happiness%Nível de felicidade
%typewriter_tycoon_placed_<id>_biome%Bioma atual
%typewriter_tycoon_placed_<id>_world%Nome do mundo
%typewriter_tycoon_placed_<id>_coords%Coordenadas (x, y, z)
%typewriter_tycoon_placed_<id>_chunk%Chunk (x, z)

Prestígio e expedições

PlaceholderDescrição
%typewriter_tycoon_prestige_<id>%Porcentagem de bônus de prestígio
%typewriter_tycoon_expedition_count%Número total de expedições
%typewriter_tycoon_expedition_<n>_animal%ID do animal no slot de expedição N
%typewriter_tycoon_expedition_<n>_remaining_seconds%Segundos até o retorno
%typewriter_tycoon_expedition_<n>_remaining_minutes%Minutos até o retorno
%typewriter_tycoon_expedition_<n>_duration_hours%Duração total em horas
%typewriter_tycoon_expedition_<n>_ready%Pronto para coletar (true/false)

Permissões

PermissionDescrição
tycoon.adminAdministra o sistema tycoon (todos os subcomandos admin de /tycoon).

Dependências

ExtensionObrigatórioUso
EntityExtensionObrigatórioDefinições de entidade para os modelos de animais
Typewriter-GUIExtensionObrigatórioRenderização do Control Panel (FrameLayout, botões orientados a dados)
TypeWriter-VehicleExtensionOpcionalSistema de montarias (opcional, baseado em PacketEvents)
TypeWriter-RPGCOREExtensionOpcionalRestrição de nível de profissão para os limites de captura
TypeWriter-TemporaryDimensionExtensionOpcionalClonagem da dimensão do mapa de aventura (SlimeWorldManager)
TypeWriter-ShopsExtensionOpcionalAbstrações de economia (Vault/Points/Placeholder)
TypeWriter-MySqlExtensionOpcionalRedis pub/sub para a classificação cross-servidor e o mercado entre jogadores