Tycoon
La extensión Tycoon ofrece un modo de juego completo de tipo Zoo Tycoon. Los jugadores progresan en un árbol de investigación matando mobs para desbloquear categorías, alimentan catalizadores con recursos y activan intentos de investigación con items de combustible. Los animales poseídos generan ingresos pasivos al colocarlos en el zoo, pueden montarse como monturas en dimensiones de aventura temporales, cruzarse para obtener huevos híbridos, prestigiarse para un bonus permanente, y enviarse en expediciones cronometradas. Un único menú Control Panel — 100 % pilotado por datos, sin ningún visual codificado a mano — aloja todos los sistemas a través de 16 pestañas.
Características
- Control Panel — Un único menú FrameLayout con disposición 4│1│4 (pestañas laterales │ navegación de desplazamiento │ contenido), clonado del patrón de BTCSky. 16 pestañas (info, bestiario, zoo, investigación, expediciones, monturas, tienda, aventura, prestigio, clasificación, desafíos, cría, personal, mercado, contratos, decoraciones) comparten la misma ventana; el contenido se resuelve por pestaña y las subvistas (
tab:context, p. ej.research:reptiles) reutilizan el resaltado de la pestaña principal. Cada visual, título y botón proviene de las Páginas de Typewriter — el código solo rellena las etiquetas de datos en vivo y adjunta las interacciones. - Árbol de investigación — Árbol tecnológico por categorías desbloqueado matando mobs. Cada animal requiere un catalizador (alimentado con items de recurso configurables) y un item de combustible para la tirada de activación final.
- Economía pasiva — Los animales colocados en el zoo generan ingresos con el tiempo. Las afinidades de bioma, los bloques de hábitat, el personal, las decoraciones y la felicidad afectan a los ingresos. Recuperación fuera de línea al reconectar.
- Mapa de aventura — Explora una dimensión temporal clonada bajo demanda desde un mundo plantilla (vía BTC-CORE / Advanced Slime Paper). Teletranspórtate a chunks configurados para descubrirlos; un medidor de fatiga (extendido por las monturas) se agota mientras exploras y fuerza un regreso al origen al llegar a cero. El mundo se descarga automáticamente una vez vacío.
- Monturas — Monta a tus animales poseídos con controles ZQSD mediante la interceptación STEER_VEHICLE de PacketEvents. El medidor de fatiga se agota con el tiempo y se recarga fuera de las dimensiones de aventura.
- Fusión — Fusión entre animales de la misma especie activada por acción: combina los dos animales de mayor nivel de un jugador de una misma especie en un huevo en incubación, con una probabilidad configurable de mejora de rareza y mutación cosmética.
- Cría — Cruce entre especies pilotado por recetas desde la pestaña Cría. Selecciona dos padres elegibles (persistidos por jugador mientras navegas), inicia una incubación que coincida con una receta configurada, y recoge la descendencia una vez eclosionada.
- Prestigio — Reinicia un animal de nivel máximo al nivel 1 a cambio de un bonus de ingresos permanente. Se acumula según el número de prestigios.
- Tienda de entregas — Comerciante PNJ rotativo con una programación real (intervalo fijo como
30m/2h/1d, una hora diariaHH:MM, o un cooldown de respaldo) y un pool de items ponderado. Mecánicas FOMO — el inventario cambia en cada rotación. - Expediciones — Envía a un animal elegible en una misión inactiva cronometrada desde la pestaña Expediciones (slot vacío → elige un animal en la subvista
expeditions:start). La duración se reduce con un Guía de expedición contratado. Regresa con recursos, XP, items de catalizador, o animales bonus raros. - Niveles y XP de los animales — Cada animal tiene su propio nivel, curva de XP y nivel máximo. Gana XP montando, en expediciones y por el tiempo colocado en el zoo.
- Personalización — Renombra animales, aplica variantes de apariencia (EntityDefinitions basadas en referencia), equipa accesorios (sombrero, collar, silla de montar).
- Sistema de felicidad — Los animales tienen una felicidad de 0 a 100 que afecta a los ingresos. Se mejora con biomas compatibles, bloques de hábitat, alimentación, personal y decoraciones. Se penaliza por hacinamiento.
- Desafíos diarios/semanales — Desafíos rotativos (capturar un animal, colocar un animal, matar mobs, ganar ingresos, prestigiar, investigar un animal) en ciclos diarios/semanales independientes. Reclama desde la pestaña Desafíos para obtener dinero y recompensas de comando.
- Personal del zoo — Contrata personal con un efecto de rol pasivo: Recolector de ingresos (multiplicador de ingresos), Cuidador (suelo de felicidad), Guía de expedición (expediciones más rápidas), Investigador (investigación más rápida). Cobra un mantenimiento periódico; se despide automáticamente si no se paga.
- Clasificación cross-servidor — Clasificación por ingresos totales, animales poseídos, total de prestigios, o animales colocados (ciclo de orden en la pestaña Clasificación). Sincronizado en toda la red vía Redis pub/sub cuando
TypeWriter-MySqlExtensionestá presente; recurre a los jugadores propios de este servidor en caso contrario. - Mercado entre jugadores — Pon a la venta un animal poseído y compra a otros jugadores, incluso entre servidores. Un protocolo Redis pub/sub (list/unlist/buy/confirm/deny) mantiene al servidor propietario del anuncio como autoridad sobre la venta, con reembolsos del lado del comprador en caso de rechazo o desconexión. Recurre a un mercado solo local sin Redis.
- Contratos de entrega de animales — Entrega animales que coincidan con una especie/categoría, un nivel mínimo y una cantidad, a cambio de una recompensa en dinero y comandos. Los contratos pueden ser únicos o repetibles.
- Decoraciones y recintos — Coloca bloques reales como decoraciones de zoo desde la pestaña Decoraciones, cada una otorgando un bonus de felicidad y/o ingresos, limitado por jugador. Retíralas para recuperar el slot.
Arquitectura
Entradas
- Definiciones — Animal Definition: configuración de la especie (rareza, items de catalizador, combustible, economía, fusión, estadísticas de montura, variantes de modelo).
- Manifiestos — Research Category: carpeta del árbol tecnológico con requisitos de muertes de mobs. Research Recipe: receta de investigación catalizador/combustible. Adventure Map: plantilla de dimensión, cuadrícula de chunks, fatiga por defecto. Delivery Shop: programación y pool de items del comerciante rotativo. Breeding Recipe: pareja de especies parentales → descendencia. Challenge: objetivo y recompensa diaria/semanal. Staff: rol contratable, coste y mantenimiento. Animal Contract: requisito de entrega y recompensa. Decoration: bloque colocable, coste y bonus. Control Panel Configuration: templates de slots dinámicos para cada pestaña.
- Acciones — Control Panel: abre el menú 4│1│4. Catalyst Activate: usa el item de combustible para intentar la investigación. Category Unlock: desbloquea una categoría una vez alcanzado su umbral de muertes. Revenue Collect: recolecta los ingresos acumulados del zoo. Animal XP: otorga experiencia a los animales poseídos. Fusion: fusión entre animales de la misma especie en un huevo en incubación. Prestige: reinicia un animal de nivel máximo a cambio de un bonus permanente. Expedition Start: envía a un animal en una misión cronometrada. Customize Animal: renombrar, aplicar apariencia y equipar accesorios.
- Artefactos — Player Data: perfil de zoo por jugador (animales, ingresos, investigación, personal, desafíos, decoraciones). Market Listings: anuncios activos del mercado entre jugadores.
Inicio rápido
Esta extensión está totalmente pilotada por datos — nada se renderiza sin contenido de Páginas:
- 1. Construir la página del Control Panel — Crea una entrada
tycoon_menucon unlayoutPoolde tipoFrameLayout: un framesidebar(pestañas, botonestycoon_tab:<id>), un framenav(desplazamiento), y una disposición<tabId>_contentpor pestaña usando botonestycoon_button:para el contenido dinámico. - 2. Configurar los templates dinámicos — Rellena
tycoon_menu_configcon los templatesSlotItemConfigpara cada lista que usen tus páginas (entradas del bestiario, animales de investigación, filas de clasificación, anuncios del mercado, …). Cualquier template dejado vacío se renderiza como un slot vacío. - 3. Definir el contenido — Empieza por
animal_definition,research_categoryyadventure_mappara el ciclo de juego principal, luego añadetycoon_breeding_recipe,tycoon_challenge,tycoon_staff,tycoon_decoration,tycoon_animal_contract, ydelivery_shoppara los sistemas adicionales que quieras activar.
Comandos
Jugador
| Comando | Descripción | Permission |
|---|---|---|
/zoo | Abre el Control Panel en la pestaña Info | ninguno |
/zoo visit <player> | Teletranspórtate al zoo de otro jugador | ninguno |
/adventure | Abre el Control Panel en la pestaña Aventura | ninguno |
/mounts | Abre el Control Panel en la pestaña Monturas | ninguno |
/collect | Recolecta manualmente los ingresos acumulados | ninguno |
Admin
Todos los subcomandos de /tycoon (aparte de las acciones internas propias de la GUI) requieren tycoon.admin.
| Comando | Descripción | Permission |
|---|---|---|
/tycoon give <player> <animalId> | Da un animal a un jugador | tycoon.admin |
/tycoon remove <player> <animalId> | Elimina un animal | tycoon.admin |
/tycoon setlevel <player> <animalId> <level> | Establece el nivel de un animal | tycoon.admin |
/tycoon info [player] | Muestra el perfil tycoon de un jugador | tycoon.admin |
/tycoon reload | Fuerza el guardado de todos los perfiles | tycoon.admin |
/tycoon spawnshop <shopId> | Fuerza la aparición de una tienda de entregas | tycoon.admin |
/tycoon resetfatigue [player] | Reinicia la fatiga de aventura | tycoon.admin |
/tycoon unlockcategory <player> <catId> | Desbloquea una categoría de investigación | tycoon.admin |
Cada clic en un botón del Control Panel también pasa por /tycoon <action> ... (p. ej. cp, list_scroll, market_buy, breed_start) — estos son generados por el propio menú y están abiertos a cualquier jugador en su propia sesión, no están pensados para uso manual.
Placeholders
Prefijo: %typewriter_tycoon_*%
Estadísticas globales
| Placeholder | Descripción |
|---|---|
%typewriter_tycoon_total_animals% | Total de animales poseídos |
%typewriter_tycoon_placed_animals% | Actualmente colocados en el zoo |
%typewriter_tycoon_unplaced_animals% | Poseídos pero no colocados |
%typewriter_tycoon_total_revenue% | Ingresos totales (formateados) |
%typewriter_tycoon_total_revenue_raw% | Ingresos totales (número bruto) |
%typewriter_tycoon_categories_unlocked% | Categorías de investigación desbloqueadas |
%typewriter_tycoon_categories_total% | Total de categorías de investigación |
%typewriter_tycoon_categories_locked% | Categorías de investigación bloqueadas |
%typewriter_tycoon_milestones_count% | Hitos de colección completados |
%typewriter_tycoon_prestige_bonuses_count% | Bonus de prestigio activos |
%typewriter_tycoon_expeditions_active% | Expediciones activas |
%typewriter_tycoon_expeditions_completed% | Expediciones completadas (actualmente siempre 0) |
%typewriter_tycoon_zoo_visitors% | Total de visitantes del zoo |
%typewriter_tycoon_active_mount_id% | ID de la montura actualmente seleccionada |
%typewriter_tycoon_last_revenue_collect% | Marca de tiempo de la última recolección de ingresos |
Específico de categoría
| Placeholder | Descripción |
|---|---|
%typewriter_tycoon_category_<id>_unlocked% | Si la categoría está desbloqueada |
%typewriter_tycoon_category_<id>_mobs_killed% | Mobs matados hacia el desbloqueo |
%typewriter_tycoon_category_<id>_required_kills% | Muertes requeridas para desbloquear |
%typewriter_tycoon_category_<id>_progress_percent% | Porcentaje de progreso de desbloqueo |
%typewriter_tycoon_category_<id>_name% | Nombre visible de la categoría |
Específico de animal
| Placeholder | Descripción |
|---|---|
%typewriter_tycoon_animal_<id>_level% | Nivel del animal |
%typewriter_tycoon_animal_<id>_owned% | Posee el animal (true/false) |
%typewriter_tycoon_animal_<id>_prestige% | Número de prestigios |
%typewriter_tycoon_animal_<id>_xp% | XP actual |
%typewriter_tycoon_animal_<id>_rarity% | Nombre de la rareza |
%typewriter_tycoon_animal_<id>_rarity_color% | Color hexadecimal de la rareza |
%typewriter_tycoon_animal_<id>_placed% | Colocado en el zoo (true/false) |
%typewriter_tycoon_animal_<id>_custom_name% | Nombre personalizado |
%typewriter_tycoon_animal_<id>_is_mountable% | Montable (true/false) |
%typewriter_tycoon_animal_<id>_mount_speed% | Multiplicador de velocidad en montura |
%typewriter_tycoon_animal_<id>_fatigue_capacity% | Capacidad de fatiga (segundos) |
%typewriter_tycoon_animal_<id>_max_level% | Nivel máximo |
%typewriter_tycoon_animal_<id>_revenue_rate% | Tasa de ingresos base |
%typewriter_tycoon_animal_<id>_fusion_level% | Nivel mínimo para fusión |
%typewriter_tycoon_animal_<id>_display_name% | Nombre visible |
%typewriter_tycoon_animal_<id>_catalyst_progress% | Porcentaje de llenado del catalizador |
%typewriter_tycoon_animal_<id>_catalyst_power% | Poder actual del catalizador |
%typewriter_tycoon_animal_<id>_catalyst_items% | Cantidad de tipos de items donados |
Información de animal colocado
| Placeholder | Descripción |
|---|---|
%typewriter_tycoon_placed_<id>_happiness% | Nivel de felicidad |
%typewriter_tycoon_placed_<id>_biome% | Bioma actual |
%typewriter_tycoon_placed_<id>_world% | Nombre del mundo |
%typewriter_tycoon_placed_<id>_coords% | Coordenadas (x, y, z) |
%typewriter_tycoon_placed_<id>_chunk% | Chunk (x, z) |
Prestigio y expediciones
| Placeholder | Descripción |
|---|---|
%typewriter_tycoon_prestige_<id>% | Porcentaje de bonus de prestigio |
%typewriter_tycoon_expedition_count% | Número total de expediciones |
%typewriter_tycoon_expedition_<n>_animal% | ID del animal en el slot de expedición N |
%typewriter_tycoon_expedition_<n>_remaining_seconds% | Segundos hasta el regreso |
%typewriter_tycoon_expedition_<n>_remaining_minutes% | Minutos hasta el regreso |
%typewriter_tycoon_expedition_<n>_duration_hours% | Duración total en horas |
%typewriter_tycoon_expedition_<n>_ready% | Listo para recolectar (true/false) |
Permisos
| Permission | Descripción |
|---|---|
tycoon.admin | Administra el sistema tycoon (todos los subcomandos admin de /tycoon). |
Dependencias
| Extension | Requerido | Uso |
|---|---|---|
| EntityExtension | Requerido | Definiciones de entidad para los modelos de animales |
| Typewriter-GUIExtension | Requerido | Renderizado del Control Panel (FrameLayout, botones pilotados por datos) |
| TypeWriter-VehicleExtension | Opcional | Sistema de monturas (opcional, basado en PacketEvents) |
| TypeWriter-RPGCOREExtension | Opcional | Restricción de nivel de profesión para los límites de captura |
| TypeWriter-TemporaryDimensionExtension | Opcional | Clonado de la dimensión del mapa de aventura (SlimeWorldManager) |
| TypeWriter-ShopsExtension | Opcional | Abstracciones de economía (Vault/Points/Placeholder) |
| TypeWriter-MySqlExtension | Opcional | Redis pub/sub para la clasificación cross-servidor y el mercado entre jugadores |