Saltar al contenido principal

Tycoon

Tycoon de zoológico: investiga animales, obtén ingresos pasivos, cría, prestigia, explora y comercia.

Privadasv0.1Economía y crafteo
RequiereTypeWriter0.9.0-beta-177 (BTC build)Entity extensionGUI extensionVaultVehicle extensionopcionalPacketEventsopcionalRPG CoreopcionalTemporaryDimension extensionopcionalMySql extensionopcionalMiniPlaceholdersopcional

Creada para la red BornToCraft. Esta extensión está documentada como referencia y no se distribuye.

Descripción general​

Tycoon es un modo de juego de zoo. Los jugadores matan mobs para desbloquear categorías de investigación, alimentan un catalizador y usan un objeto de combustible para investigar animales, y luego colocan sus animales en su zoo para obtener ingresos pasivos. Los animales suben de nivel, pueden recibir prestigio para obtener bonificaciones permanentes, enviarse a expediciones temporizadas, criarse, fusionarse, intercambiarse en un mercado de jugadores o entregarse para contratos.

Todo está basado en datos. Cada especie es una Animal Definition, cada sistema (categorías de investigación, desafíos, personal, decoraciones, contratos, cría, tiendas) es una entrada de manifest, y las reglas de la economía viven en una única Tycoon Economy Config. La interfaz del jugador es un único menú, el Tycoon Control Panel, cuyos layouts se construyen en el panel web: el código solo rellena los datos en vivo y asocia los clics.

El espacio del zoo, no el dinero, es el recurso escaso. La capacidad de un jugador crece con el nivel de su profesión de zoo, cada especie cuesta un número de espacios y los ingresos escalan con ese coste. Los animales colocados solo los ve su dueño, de modo que todos los jugadores pueden compartir un mismo mundo.

Esta es una extensión privada de la compilación BTC de TypeWriter (BTC Core, Paper o Folia), documentada como referencia.

Características​

  • Árbol de investigación — las muertes de mobs desbloquean Research Categories; cada animal necesita un catalizador completamente cargado y un objeto de combustible para la tirada final.
  • Espacio del zoo y colocación — las especies cuestan espacios; los animales se colocan en posiciones declaradas de un Placement Group, un animal por posición.
  • Ingresos pasivos — los animales colocados pagan ingresos con el tiempo, escalados por rareza, nivel, prestigio, felicidad, personal y decoraciones, con una puesta al día sin conexión limitada.
  • Felicidad — de 0 a 100, multiplica los ingresos; el hacinamiento es su única penalización, y la alimentación y las decoraciones la elevan.
  • Niveles y prestigio — curva de XP y tope de nivel en la configuración de la economía; Prestige reinicia un animal al nivel 1 a cambio de una bonificación de ingresos permanente.
  • Fusión y cría — Fusion de dos animales de la misma especie y Breeding basada en recetas con un tiempo de incubación.
  • Expediciones — envía un animal a una misión temporizada en segundo plano y recoge el resultado a su regreso.
  • Mapa de aventura — una dimensión temporal clonada de un mundo plantilla, explorada chunk a chunk con un indicador de fatiga, con animales montados como monturas.
  • Economía social — una Delivery Shop rotativa, mercado de jugadores, contratos de animales, desafíos diarios y semanales, personal del zoo, decoraciones y una clasificación.

Instalación​

  1. Instala TypeWriter con la compilación BTC (BTC Core en Paper o Folia).
  2. Instala las extensiones obligatorias: Entity (modelos de animales y entidades falsas) y GUI (el panel de control).
  3. Instala Vault con un plugin de economía. Todos los costes y recompensas en dinero usan Vault.
  4. Extensiones opcionales: Vehicle con PacketEvents para las monturas, RPG Core para el nivel de la profesión de zoo, TemporaryDimension para el mapa de aventura (necesita el SlimeWorldManager de BTC Core) y MySql con Redis para la clasificación y el mercado entre servidores. MiniPlaceholders es necesario para los placeholders.
  5. Coloca el JAR de Tycoon en plugins/Typewriter/extensions/ y reinicia el servidor.

Primeros pasos​

Añade un primer animal y deja que los jugadores lo investiguen:

  1. En el panel web de TypeWriter, abre una página static y añade un Tycoon Data Artifact. Añade también un Tycoon Market Artifact si quieres el mercado de jugadores. No cambies su artifactId.
  2. Añade una Research Category. Establece displayName, requiredMobKills y, opcionalmente, trackedMobTypes (vacío significa que cuenta cualquier mob).
  3. Añade una Animal Definition. Establece entityDefinition (el modelo), category (el id de la categoría), rarity, spaceCost y baseRevenueRate. Lista los acceptedCatalystItems (un nombre de material en itemId y un powerValue), el catalystPowerRequired y el fuelItem. Añade el id del nuevo animal a los animals de la categoría.
  4. Añade un Tycoon Placement Group con al menos una posición, para que los jugadores tengan un lugar donde poner el animal.
  5. Añade una Tycoon Economy Config. Sin ella se usan los valores por defecto integrados.
  6. Construye la interfaz: añade un Tycoon Control Panel con sus layouts y vistas, y una Tycoon Menu Config con las plantillas de items de cada lista. Abre el panel desde una entrada de comando de tu elección.
  7. Publica. Un jugador mata mobs hasta que se desbloquea la categoría, inicia el catalizador del animal desde la pantalla de investigación, le da items de catalizador y luego usa el objeto de combustible (o tú activas Catalyst Activate) para intentar la investigación.
nota

Una plantilla de lista que se deja vacía en Tycoon Menu Config se muestra como una ranura vacía. El código no inventa nada.

Cómo funciona​

Investigación​

Matar a un mob cuenta para cada Research Category que sigue su tipo. Al llegar a requiredMobKills, la categoría se desbloquea, salvo que requiredCategory todavía no esté desbloqueada (la acción Category Unlock también lo respeta).

Un animal se investiga en dos fases. Primero el jugador alimenta con items de catalizador: hacer clic derecho en una entidad con un objeto listado en acceptedCatalystItems suma su powerValue. Cuando el poder alcanza catalystPowerRequired, usar el fuelItem lanza la tirada de la investigación. La probabilidad es successChance multiplicada por el peso de captura de la rareza. Si tiene éxito, el jugador obtiene el animal, o las alternativeRewards si ya posee la especie. El catalizador se consume en cualquier caso. El gesto de clic derecho solo reacciona en un animal cuyo catalizador ya se inició (por ejemplo, desde la pantalla de investigación del panel de control). La acción Catalyst Activate lanza la tirada de investigación para un catalizador completamente cargado sin el objeto de combustible.

RarezaMultiplicador de ingresosPeso de capturaFatiga de montura (s)
COMMON1.01.0120
UNCOMMON1.50.6180
RARE2.50.25300
EPIC5.00.08480
LEGENDARY10.00.02900

Zoo, espacio y felicidad​

La capacidad es baseSpaceCapacity más spacePerZooLevel por cada nivel de la profesión de RPG Core indicada en zooProfessionId (el nivel es 1 cuando está vacío o cuando RPG Core está ausente). maxPlacedPerSpecies limita cuántos individuos de una especie están a la vez. Al superar overcrowding.thresholdPercent de la capacidad, la felicidad baja. La felicidad modifica los ingresos entre revenueMultiplierAtZero y revenueMultiplierAtMax.

Sin conexión, un jugador gana durante como máximo offlineCatchup.maxHours horas a offlineCatchup.rate de la tasa en línea, calculado una vez cuando se reconecta.

Niveles, prestigio, fusión y cría​

maxAnimalLevel y xpCurve establecen los niveles. En el nivel máximo, Prestige reinicia un individuo al nivel 1 y suma prestigeRevenueBonus a sus ingresos, hasta maxPrestige.

Fusion toma dos animales de reserva de una especie con el mismo nivel y prestigio (al menos fusionMinLevel), los elimina e inicia una incubación. Breeding empareja dos especies progenitoras (en cualquier orden) con una receta con requiredParentLevel, incubationSeconds, cost y consumesParents. Cuando el huevo eclosiona, rarityUpgradeChance de la acción puede subir la rareza un nivel y cosmeticMutationChance puede dar un skin de mutación.

Personal, decoraciones y desafíos​

Los miembros del Staff tienen un role (REVENUE_COLLECTOR, CARETAKER, EXPEDITION_GUIDE, RESEARCHER), un hireCost y un upkeepPerHour por hora; un miembro al que no se puede pagar es despedido. Las Decorations añaden happinessBonus y revenueBonus y están limitadas por maxPerPlayer. Los Challenges siguen un challengeType durante un periodo DAILY o WEEKLY y pagan rewardMoney y rewardCommands. Los Animal Contracts piden animales por especie o categoría, nivel mínimo y cantidad.

Menús​

Tycoon Control Panel es un menú con vistas. La página define todo lo que ve el jugador:

  • layoutPool contiene un frame raíz (o mainLayoutId lo nombra). Los marcos con contenido variable usan el id de layout @view.
  • views declara las pantallas. Una vista indica su layout por marco, o según la convención de nombres <viewId>_<frameId>. defaultViewId es la primera vista que se abre.
  • Una ranura de pestaña lleva la etiqueta view:<viewId>; la pestaña activa se resalta con el estilo de vista compartido.
  • Los items de contenido usan un buttonType con la forma tycoon_button:TYPE o tycoon_button:TYPE:argument. La extensión rellena los datos en vivo en las etiquetas del item y asocia los clics.
  • Un menú se abre en una vista con el objetivo <viewId> o <viewId>:<argument> (por ejemplo, un id de categoría de investigación).

Tipos de botón, por pantalla:

PantallaTipos de botón
Zoo y bestiarioZOO_INFO, BESTIARY_ENTRY, BESTIARY_SPECIES_ENTRY, SPECIES_MANAGE_INFO, PLACEMENT_SLOT_ENTRY, SPECIES_LEVEL_ENTRY, BESTIARY_PANEL_ENTRY, PLACED_ENTRY
InvestigaciónRESEARCH_CATEGORY_ENTRY, RESEARCH_ANIMAL_ENTRY, RESEARCH_CATEGORY
Expediciones y monturasEXPEDITION_ENTRY, EXPEDITION_START_ENTRY, MOUNT_ENTRY
AventuraADVENTURE_CHUNK_ENTRY, ADVENTURE_INFO
EconomíaSHOP_ENTRY, PRESTIGE_ENTRY, MARKET_ENTRY, MARKET_MINE_ENTRY, MARKET_SELL_ENTRY, ANIMAL_CONTRACT_ENTRY, STAFF_ENTRY, STAFF_INFO
SocialRANKING_SORT, RANKING_ENTRY, CHALLENGE_ENTRY
Cría y decoracionesBREEDING_PARENT_ENTRY, BREEDING_EGG_ENTRY, BREEDING_INFO, DECORATION_ENTRY, DECORATION_PLACED_ENTRY
ListasLIST_PAGER:<listId>[:<pageSize>] (se muestra solo cuando la lista no cabe en una pantalla)

Las entradas basadas en orden (los tipos _ENTRY) muestran un elemento por ranura etiquetada, en el orden de las ranuras. La plantilla de item de cada lista, con sus etiquetas como {animal_name} o {remaining_time}, proviene de Tycoon Menu Config. La misma entrada nombra las vistas abiertas por las categorías de investigación (researchViewId), las ranuras de expedición (expeditionViewId) y el bestiario (bestiaryViewId).

Comandos​

Los comandos son entradas, por lo que sus nombres y permisos se editan en el panel. Cada uno se registra colocando la entrada en una página.

ComandoDescripción
/tycoonadmin give <player> <animal>Da un animal a un jugador conectado. Requiere el permiso establecido en permission (por defecto tycoon.admin).
/tycoonadmin remove <player> <animal>Elimina el individuo menos avanzado de una especie.
/tycoonadmin setlevel <player> <animal> <level>Establece el nivel de todos los individuos de una especie, limitado a maxAnimalLevel.
/tycoonadmin unlockcategory <player> <category>Desbloquea una categoría de investigación.
/tycoonadmin info [player]Muestra el perfil de zoo de un jugador.
/tycoonadmin resetfatigue [player]Restablece la fatiga de aventura.
/tycoonadmin spawnshop <shop>Genera ahora un comerciante de una delivery shop.
/tycoonadmin saveEscribe en disco todos los datos de Tycoon.
/collecterRecoge los ingresos acumulados. Abierto a todos salvo que se establezca permission.
/visiter <player>Te teletransporta a la ubicación de otro jugador para visitar su zoo. Abierto a todos salvo que se establezca permission.

Los nombres anteriores son los valores por defecto de Tycoon Admin Command, Tycoon Collect Command y Tycoon Visit Command; cambia commandName para renombrarlos. Los comandos que abren menús (por ejemplo /zoo) no forman parte de esta extensión: créalos con una entrada de comando de la extensión Basic que active el Control Panel.

Permisos​

PermisoConcede
tycoon.adminTodo el árbol /tycoonadmin. Es el valor por defecto del campo permission del comando de administración y se puede cambiar allí.

El campo permission de los comandos de recoger y visitar está vacío por defecto (no se necesita permiso).

Placeholders​

Etiquetas de MiniPlaceholders de la expansión tycoon, proporcionadas a través de TypeWriter. <id> es un id de definición de animal, <cat> un id de categoría de investigación, <n> un índice de ranura de expedición que empieza en 0. Todas leen el perfil del jugador que mira.

Totales​

PlaceholderDevuelve
<tycoon_total_animals>Número de animales poseídos.
<tycoon_total_species>Número de especies poseídas.
<tycoon_placed_animals>Animales colocados en el zoo.
<tycoon_unplaced_animals>Animales en reserva.
<tycoon_total_revenue>Ingresos totales ganados, con 2 decimales.
<tycoon_total_revenue_raw>Ingresos totales ganados, como entero.
<tycoon_categories_unlocked>, <tycoon_categories_total>, <tycoon_categories_locked>Categorías de investigación desbloqueadas, seguidas y aún bloqueadas.
<tycoon_milestones_count>Hitos de colección alcanzados.
<tycoon_prestige_total>Recuento total de prestigio de todos los animales.
<tycoon_expeditions_active>Expediciones activas.
<tycoon_expeditions_completed>Siempre 0.
<tycoon_zoo_visitors>Visitantes del zoo.
<tycoon_active_mount_id>Id de la montura seleccionada, o none.
<tycoon_last_revenue_collect>Hora de la última recogida (HH:mm:ss).

Categorías de investigación​

PlaceholderDevuelve
<tycoon_category_unlocked:cat>true si está desbloqueada.
<tycoon_category_mobs_killed:cat>Mobs seguidos muertos.
<tycoon_category_required_kills:cat>Muertes necesarias para desbloquear.
<tycoon_category_progress_percent:cat>Progreso en porcentaje.
<tycoon_category_name:cat>Nombre visible.

Animales​

PlaceholderDevuelve
<tycoon_animal_level:id>, <tycoon_animal_xp:id>, <tycoon_animal_prestige:id>Nivel, XP y recuento de prestigio del animal poseído.
<tycoon_animal_owned:id>, <tycoon_animal_placed:id>true o false.
<tycoon_animal_count:id>, <tycoon_animal_placed_count:id>Individuos poseídos y colocados.
<tycoon_animal_rarity:id>, <tycoon_animal_rarity_color:id>Nombre de la rareza y su color hexadecimal.
<tycoon_animal_custom_name:id>Nombre personalizado.
<tycoon_animal_display_name:id>Nombre visible de la definición.
<tycoon_animal_is_mountable:id>, <tycoon_animal_mount_speed:id>, <tycoon_animal_fatigue_capacity:id>Ajustes de montura de la definición.
<tycoon_animal_max_level:id>maxAnimalLevel de la configuración de la economía.
<tycoon_animal_space_cost:id>, <tycoon_animal_revenue_rate:id>, <tycoon_animal_fusion_level:id>spaceCost, baseRevenueRate, fusionMinLevel.
<tycoon_animal_catalyst_progress:id>Llenado del catalizador en porcentaje.
<tycoon_animal_catalyst_power:id>, <tycoon_animal_catalyst_items:id>Poder del catalizador y número de tipos de objeto donados.
<tycoon_placed_happiness:id>, <tycoon_placed_biome:id>, <tycoon_placed_world:id>, <tycoon_placed_coords:id>, <tycoon_placed_chunk:id>Detalles del animal colocado.
<tycoon_prestige_bonus:id>Bonificación de prestigio del animal.

Expediciones​

PlaceholderDevuelve
<tycoon_expedition_count>Ranuras de expedición en uso.
<tycoon_expedition_animal:n>Id del animal de la ranura n.
<tycoon_expedition_remaining_seconds:n>, <tycoon_expedition_remaining_minutes:n>Tiempo antes del regreso.
<tycoon_expedition_duration_hours:n>Duración total en horas.
<tycoon_expedition_ready:n>true cuando está lista para recoger.

Entradas​

27 entradas, generadas a partir del código fuente de la extensión.

Acciones9
Comandos3
Artefactos2
Manifiestos13

Solución de problemas​

El menú se abre vacío. Las plantillas de Tycoon Menu Config son ranuras vacías por defecto, y el layoutPool debe contener los layouts nombrados por mainLayoutId y views. Revisa el registro para ver el id del menú.

Al hacer clic en una categoría de investigación o una ranura de expedición se vuelve al resumen. Los ids de vista en researchViewId, expeditionViewId y bestiaryViewId de la configuración del menú (valores por defecto tycoon_recherches, tycoon_expeditions, tycoon_bestiaire) deben coincidir con los ids de tus views. De lo contrario, el motor recurre a la vista por defecto.

Una categoría nunca se desbloquea. trackedMobTypes se compara con el nombre del tipo de entidad en minúsculas; una lista vacía cuenta todos los mobs. Una categoría con requiredCategory solo se puede desbloquear mediante la acción Category Unlock una vez que esa categoría esté desbloqueada.

No se puede colocar un animal. Necesita una posición libre en un Placement Group cuyo maxSpaceCost sea al menos el spaceCost del animal, suficiente espacio libre bajo la capacidad y un nivel de zoo de al menos requiredZooLevel. No reordenes positions en un servidor en producción: los ids de ranura se derivan de su índice.

Los costes y recompensas en dinero no hacen nada. Pasan por Vault. Instala Vault y un plugin de economía.

El mapa de aventura o las monturas no están disponibles. Necesitan la extensión TemporaryDimension (con el SlimeWorldManager de BTC Core) y la extensión Vehicle con PacketEvents. Sin Redis, la clasificación y el mercado se quedan locales en el servidor.

Una fusión o cría no da nada. La fusión necesita dos animales de reserva con el mismo nivel y prestigio y al menos fusionMinLevel; los animales colocados se ignoran. La eclosión solo se sortea cuando el huevo está listo, tras incubationHours: entonces se aplican rarityUpgradeChance y cosmeticMutationChance de la acción Fusion.

Extensiones relacionadas​

  • BTC Sky — islas e investigación en la misma compilación BTC.
  • Machine — máquinas basadas en datos para islas.