Die Tycoon-Erweiterung liefert einen kompletten Zoo-Tycoon-Spielmodus. Spieler steigen in einem Forschungsbaum auf, indem sie Mobs töten, um Kategorien freizuschalten, Katalysatoren mit Ressourcen füttern und Forschungsversuche mit Treibstoff-Gegenständen aktivieren. Besessene Tiere generieren passives Einkommen, sobald sie im Zoo platziert sind, können in temporären Abenteuerdimensionen als Reittiere geritten werden, zu Hybrid-Eiern gezüchtet, für einen dauerhaften Bonus prestigiert und auf zeitlich begrenzte Expeditionen geschickt werden. Ein einziges Control Panel-Menü — zu 100 % datengesteuert, ohne fest codierte Visuals — beherbergt alle Systeme über 16 Tabs.
Funktionen
- Control Panel — Ein einziges FrameLayout-Menü im 4│1│4-Layout (Seitenleisten-Tabs │ Scroll-Navigation │ Inhalt), geklont vom BTCSky-Muster. 16 Tabs (Info, Bestiarium, Zoo, Forschung, Expeditionen, Reittiere, Shop, Abenteuer, Prestige, Rangliste, Herausforderungen, Zucht, Personal, Markt, Verträge, Dekorationen) teilen sich dasselbe Fenster; der Inhalt wird pro Tab aufgelöst, und Unteransichten (
tab:context, z. B. research:reptiles) übernehmen die Hervorhebung des übergeordneten Tabs. Jedes Visual, jeder Titel und jede Schaltfläche stammt aus den Typewriter-Seiten — der Code füllt nur die Live-Daten-Tags und verknüpft die Interaktionen.
- Forschungsbaum — Kategoriebasierter Techbaum, freigeschaltet durch das Töten von Mobs. Jedes Tier benötigt einen Katalysator (gefüttert mit konfigurierbaren Ressourcengegenständen) und einen Treibstoff-Gegenstand für den finalen Aktivierungswurf.
- Passive Wirtschaft — Platzierte Zootiere generieren im Laufe der Zeit Einnahmen. Biom-Affinitäten, Habitat-Blöcke, Personal, Dekorationen und Zufriedenheit beeinflussen das Einkommen. Offline-Nachholung beim Wiederverbinden.
- Abenteuerkarte — Erkunde eine temporäre Dimension, die bei Bedarf aus einer Vorlagenwelt geklont wird (über BTC-CORE / Advanced Slime Paper). Teleportiere dich zu konfigurierten Chunks, um sie zu entdecken; eine Erschöpfungsanzeige (verlängert durch Reittiere) leert sich während der Erkundung und erzwingt bei null eine Rückkehr zum Ursprung. Die Welt wird automatisch entladen, sobald sie leer ist.
- Reittiere — Reite besessene Tiere mit ZQSD-Steuerung über die STEER_VEHICLE-Abfangung von PacketEvents. Die Erschöpfungsanzeige leert sich mit der Zeit und lädt sich außerhalb von Abenteuerdimensionen wieder auf.
- Fusion — Aktionsausgelöste Fusion gleicher Arten: kombiniert die beiden ranghöchsten Tiere eines Spielers einer Art zu einem inkubierenden Ei, mit einer konfigurierbaren Chance auf Seltenheits-Upgrade und kosmetische Mutation.
- Zucht — Rezeptgesteuerte artenübergreifende Zucht über den Zucht-Tab. Wähle zwei geeignete Elterntiere aus (pro Spieler während des Browsens gespeichert), starte eine Inkubation, die einem konfigurierten Rezept entspricht, und sammle den Nachwuchs, sobald er ausgeschlüpft ist.
- Prestige — Setze ein Tier mit Höchststufe auf Stufe 1 zurück für einen dauerhaften Einnahmebonus. Stapelt sich je nach Prestige-Anzahl.
- Lieferservice — Rotierender NPC-Händler mit einem echten Zeitplan (festes Intervall wie
30m/2h/1d, eine tägliche HH:MM-Uhrzeit, oder ein Cooldown als Rückfalllösung) und einem gewichteten Item-Pool. FOMO-Mechaniken — das Inventar ändert sich bei jeder Rotation.
- Expeditionen — Schicke ein geeignetes Tier auf eine zeitlich begrenzte Leerlaufmission über den Expeditionen-Tab (leerer Slot → wähle ein Tier in der Unteransicht
expeditions:start). Die Dauer wird durch einen angeheuerten Expeditionsführer verkürzt. Kehrt mit Ressourcen, XP, Katalysator-Gegenständen oder seltenen Bonustieren zurück.
- Tierstufen & XP — Jedes Tier hat seine eigene Stufe, XP-Kurve und Höchststufe. Erhalte XP durch Reiten, Expeditionen und Zeit im Zoo platziert.
- Personalisierung — Benenne Tiere um, wende Skin-Varianten an (referenzbasierte EntityDefinitions), rüste Accessoires aus (Hut, Halsband, Sattel).
- Zufriedenheitssystem — Tiere haben eine Zufriedenheit von 0 bis 100, die das Einkommen beeinflusst. Wird durch passende Biome, Habitat-Blöcke, Fütterung, Personal und Dekorationen erhöht. Wird durch Überbelegung verringert.
- Tägliche/wöchentliche Herausforderungen — Rotierende Herausforderungen (ein Tier fangen, ein Tier platzieren, Mobs töten, Einnahmen erzielen, prestigieren, ein Tier erforschen) in unabhängigen täglichen/wöchentlichen Zyklen. Einlösung über den Herausforderungen-Tab für Geld und Befehlsbelohnungen.
- Zoo-Personal — Stelle Personal mit einem passiven Rolleneffekt ein: Einnahmen-Sammler (Einnahmenmultiplikator), Pfleger (Zufriedenheits-Untergrenze), Expeditionsführer (schnellere Expeditionen), Forscher (schnellere Forschung). Erhebt periodischen Unterhalt; wird bei Nichtzahlung automatisch entlassen.
- Serverübergreifende Rangliste — Rangliste nach Gesamteinnahmen, besessenen Tieren, Gesamt-Prestige oder platzierten Tieren (Sortierzyklus im Rangliste-Tab). Netzwerkweit über Redis Pub/Sub synchronisiert, wenn
TypeWriter-MySqlExtension vorhanden ist; andernfalls Rückfall auf die eigenen Spieler dieses Servers.
- Spielermarkt — Biete ein besessenes Tier zum Verkauf an und kaufe von anderen Spielern, auch serverübergreifend. Ein Redis-Pub/Sub-Protokoll (list/unlist/buy/confirm/deny) hält den Server, dem das Angebot gehört, als Autorität über den Verkauf, mit Rückerstattungen auf Käuferseite bei Ablehnung oder Verbindungsabbruch. Rückfall auf einen rein lokalen Markt ohne Redis.
- Tierlieferverträge — Übergib Tiere, die einer Art/Kategorie, einer Mindeststufe und einer Anzahl entsprechen, für eine Geld- und Befehlsbelohnung. Verträge können einmalig oder wiederholbar sein.
- Dekorationen & Gehege — Platziere echte Blöcke als Zoodekorationen über den Dekorationen-Tab, jede gewährt einen Zufriedenheits- und/oder Einnahmebonus, begrenzt pro Spieler. Entferne sie, um den Slot zurückzugewinnen.
Architektur
Einträge
- Definitionen — Animal Definition: Artenkonfiguration (Seltenheit, Katalysator-Gegenstände, Treibstoff, Wirtschaft, Fusion, Reittier-Werte, Modellvarianten).
- Manifeste — Research Category: Techbaum-Ordner mit Mob-Kill-Anforderungen. Research Recipe: Katalysator-/Treibstoff-Forschungsrezept. Adventure Map: Dimensionsvorlage, Chunk-Raster, Standard-Erschöpfung. Delivery Shop: Zeitplan und Item-Pool des rotierenden Händlers. Breeding Recipe: Elternarten-Paar → Nachwuchs. Challenge: tägliches/wöchentliches Ziel und Belohnung. Staff: anheuerbare Rolle, Kosten und Unterhalt. Animal Contract: Lieferanforderung und Belohnung. Decoration: platzierbarer Block, Kosten und Boni. Control Panel Configuration: dynamische Slot-Templates für jeden Tab.
- Aktionen — Control Panel: öffnet das 4│1│4-Menü. Catalyst Activate: verwendet den Treibstoff-Gegenstand für einen Forschungsversuch. Category Unlock: schaltet eine Kategorie frei, sobald der Kill-Schwellenwert erreicht ist. Revenue Collect: sammelt die aufgelaufenen Zoo-Einnahmen ein. Animal XP: gewährt besessenen Tieren Erfahrung. Fusion: Fusion gleicher Arten zu einem inkubierenden Ei. Prestige: setzt ein Tier mit Höchststufe für einen dauerhaften Bonus zurück. Expedition Start: schickt ein Tier auf eine zeitlich begrenzte Mission. Customize Animal: umbenennen, Skin anwenden und Accessoires ausrüsten.
- Artefakte — Player Data: Zoo-Profil pro Spieler (Tiere, Einnahmen, Forschung, Personal, Herausforderungen, Dekorationen). Market Listings: aktive Angebote des Spielermarkts.
Schnellstart
Diese Erweiterung ist vollständig datengesteuert — ohne Seiteninhalt wird nichts gerendert:
- 1. Die Control-Panel-Seite erstellen — Erstelle einen
tycoon_menu-Eintrag mit einem layoutPool vom Typ FrameLayout: ein sidebar-Frame (Tabs, tycoon_tab:<id>-Buttons), ein nav-Frame (Scrollen) und ein <tabId>_content-Layout pro Tab mit tycoon_button:-Buttons für dynamischen Inhalt.
- 2. Die dynamischen Templates konfigurieren — Fülle
tycoon_menu_config mit den SlotItemConfig-Templates für jede Liste, die deine Seiten verwenden (Bestiarium-Einträge, Forschungstiere, Ranglistenzeilen, Marktangebote, …). Jedes leer gelassene Template wird als leerer Slot gerendert.
- 3. Den Inhalt definieren — Beginne mit
animal_definition, research_category und adventure_map für den Kernspielablauf, füge dann tycoon_breeding_recipe, tycoon_challenge, tycoon_staff, tycoon_decoration, tycoon_animal_contract und delivery_shop für die zusätzlichen Systeme hinzu, die du aktivieren möchtest.
Befehle
Spieler
| Befehl | Beschreibung | Permission |
|---|
/zoo | Öffnet das Control Panel auf dem Info-Tab | keine |
/zoo visit <player> | Teleportiert zum Zoo eines anderen Spielers | keine |
/adventure | Öffnet das Control Panel auf dem Abenteuer-Tab | keine |
/mounts | Öffnet das Control Panel auf dem Reittiere-Tab | keine |
/collect | Sammelt manuell die aufgelaufenen Einnahmen ein | keine |
Admin
Alle /tycoon-Unterbefehle (außer den internen Aktionen der GUI selbst) erfordern tycoon.admin.
| Befehl | Beschreibung | Permission |
|---|
/tycoon give <player> <animalId> | Gibt einem Spieler ein Tier | tycoon.admin |
/tycoon remove <player> <animalId> | Entfernt ein Tier | tycoon.admin |
/tycoon setlevel <player> <animalId> <level> | Legt die Tierstufe fest | tycoon.admin |
/tycoon info [player] | Zeigt das Tycoon-Profil eines Spielers | tycoon.admin |
/tycoon reload | Erzwingt das Speichern aller Profile | tycoon.admin |
/tycoon spawnshop <shopId> | Erzwingt das Erscheinen eines Lieferservice-Shops | tycoon.admin |
/tycoon resetfatigue [player] | Setzt die Abenteuer-Erschöpfung zurück | tycoon.admin |
/tycoon unlockcategory <player> <catId> | Schaltet eine Forschungskategorie frei | tycoon.admin |
Jeder Button-Klick im Control Panel läuft ebenfalls über /tycoon <action> ... (z. B. cp, list_scroll, market_buy, breed_start) — diese werden vom Menü selbst generiert und stehen jedem Spieler in seiner eigenen Sitzung offen, sind aber nicht für die manuelle Nutzung gedacht.
Platzhalter
Präfix: %typewriter_tycoon_*%
Globale Statistiken
| Platzhalter | Beschreibung |
|---|
%typewriter_tycoon_total_animals% | Gesamtzahl besessener Tiere |
%typewriter_tycoon_placed_animals% | Aktuell im Zoo platziert |
%typewriter_tycoon_unplaced_animals% | Besessen, aber nicht platziert |
%typewriter_tycoon_total_revenue% | Gesamteinnahmen (formatiert) |
%typewriter_tycoon_total_revenue_raw% | Gesamteinnahmen (Rohzahl) |
%typewriter_tycoon_categories_unlocked% | Freigeschaltete Forschungskategorien |
%typewriter_tycoon_categories_total% | Gesamtzahl der Forschungskategorien |
%typewriter_tycoon_categories_locked% | Gesperrte Forschungskategorien |
%typewriter_tycoon_milestones_count% | Abgeschlossene Sammlungsmeilensteine |
%typewriter_tycoon_prestige_bonuses_count% | Aktive Prestige-Boni |
%typewriter_tycoon_expeditions_active% | Aktive Expeditionen |
%typewriter_tycoon_expeditions_completed% | Abgeschlossene Expeditionen (derzeit immer 0) |
%typewriter_tycoon_zoo_visitors% | Gesamtzahl der Zoobesucher |
%typewriter_tycoon_active_mount_id% | ID des aktuell ausgewählten Reittiers |
%typewriter_tycoon_last_revenue_collect% | Zeitstempel der letzten Einnahmen-Sammlung |
Kategoriespezifisch
| Platzhalter | Beschreibung |
|---|
%typewriter_tycoon_category_<id>_unlocked% | Ob die Kategorie freigeschaltet ist |
%typewriter_tycoon_category_<id>_mobs_killed% | Getötete Mobs bis zur Freischaltung |
%typewriter_tycoon_category_<id>_required_kills% | Für die Freischaltung erforderliche Kills |
%typewriter_tycoon_category_<id>_progress_percent% | Fortschrittsprozentsatz der Freischaltung |
%typewriter_tycoon_category_<id>_name% | Anzeigename der Kategorie |
Tierspezifisch
| Platzhalter | Beschreibung |
|---|
%typewriter_tycoon_animal_<id>_level% | Stufe des Tiers |
%typewriter_tycoon_animal_<id>_owned% | Besitzt das Tier (true/false) |
%typewriter_tycoon_animal_<id>_prestige% | Anzahl der Prestiges |
%typewriter_tycoon_animal_<id>_xp% | Aktuelle XP |
%typewriter_tycoon_animal_<id>_rarity% | Name der Seltenheit |
%typewriter_tycoon_animal_<id>_rarity_color% | Hex-Farbe der Seltenheit |
%typewriter_tycoon_animal_<id>_placed% | Im Zoo platziert (true/false) |
%typewriter_tycoon_animal_<id>_custom_name% | Benutzerdefinierter Name |
%typewriter_tycoon_animal_<id>_is_mountable% | Reitbar (true/false) |
%typewriter_tycoon_animal_<id>_mount_speed% | Geschwindigkeitsmultiplikator als Reittier |
%typewriter_tycoon_animal_<id>_fatigue_capacity% | Erschöpfungskapazität (Sekunden) |
%typewriter_tycoon_animal_<id>_max_level% | Höchststufe |
%typewriter_tycoon_animal_<id>_revenue_rate% | Basis-Einnahmerate |
%typewriter_tycoon_animal_<id>_fusion_level% | Mindeststufe für Fusion |
%typewriter_tycoon_animal_<id>_display_name% | Anzeigename |
%typewriter_tycoon_animal_<id>_catalyst_progress% | Füllstand des Katalysators in Prozent |
%typewriter_tycoon_animal_<id>_catalyst_power% | Aktuelle Kraft des Katalysators |
%typewriter_tycoon_animal_<id>_catalyst_items% | Anzahl gespendeter Gegenstandstypen |
| Platzhalter | Beschreibung |
|---|
%typewriter_tycoon_placed_<id>_happiness% | Zufriedenheitslevel |
%typewriter_tycoon_placed_<id>_biome% | Aktuelles Biom |
%typewriter_tycoon_placed_<id>_world% | Weltname |
%typewriter_tycoon_placed_<id>_coords% | Koordinaten (x, y, z) |
%typewriter_tycoon_placed_<id>_chunk% | Chunk (x, z) |
Prestige & Expeditionen
| Platzhalter | Beschreibung |
|---|
%typewriter_tycoon_prestige_<id>% | Prestige-Bonusprozentsatz |
%typewriter_tycoon_expedition_count% | Gesamtzahl der Expeditionen |
%typewriter_tycoon_expedition_<n>_animal% | Tier-ID im Expeditions-Slot N |
%typewriter_tycoon_expedition_<n>_remaining_seconds% | Sekunden bis zur Rückkehr |
%typewriter_tycoon_expedition_<n>_remaining_minutes% | Minuten bis zur Rückkehr |
%typewriter_tycoon_expedition_<n>_duration_hours% | Gesamtdauer in Stunden |
%typewriter_tycoon_expedition_<n>_ready% | Bereit zum Einsammeln (true/false) |
Berechtigungen
| Permission | Beschreibung |
|---|
tycoon.admin | Verwaltet das Tycoon-System (alle /tycoon-Admin-Unterbefehle). |
Abhängigkeiten
| Extension | Erforderlich | Verwendung |
|---|
| EntityExtension | Erforderlich | Entitätsdefinitionen für die Tiermodelle |
| Typewriter-GUIExtension | Erforderlich | Rendering des Control Panels (FrameLayout, datengesteuerte Buttons) |
| TypeWriter-VehicleExtension | Optional | Reittier-System (optional, basierend auf PacketEvents) |
| TypeWriter-RPGCOREExtension | Optional | Berufsstufen-Beschränkung für Fanglimits |
| TypeWriter-TemporaryDimensionExtension | Optional | Klonen der Abenteuerkarten-Dimension (SlimeWorldManager) |
| TypeWriter-ShopsExtension | Optional | Wirtschaftsabstraktionen (Vault/Points/Placeholder) |
| TypeWriter-MySqlExtension | Optional | Redis Pub/Sub für die serverübergreifende Rangliste und den Spielermarkt |