Tycoon
Tycoon 拡張は、完全な Zoo Tycoon ゲームモードを提供します。プレイヤーは Mob を倒してカテゴリーをアンロックし、リソースでカタリストを満たし、燃料アイテムでリサーチの試行を起動することで、リサーチツリーを進めていきます。所有した動物は動物園に配置すると受動収入を生み出し、一時的なアドベンチャーディメンションでマウントとして騎乗でき、交配してハイブリッドの卵にでき、プレステージで永続ボーナスを得られ、時間制の遠征に送り出すこともできます。単一の Control Panel メニュー — 100% データ駆動でハードコードされたビジュアルが一切ない — が、16 個のタブにわたってすべてのシステムをホストします。
機能
- Control Panel — 4│1│4 レイアウト(サイドバータブ │ スクロールナビ │ コンテンツ)の単一 FrameLayout メニューで、BTCSky のパターンを踏襲しています。16 個のタブ(info、bestiary、zoo、research、expeditions、mounts、shop、adventure、prestige、ranking、challenges、breeding、staff、market、contracts、decorations)が同じウィンドウを共有し、コンテンツはタブごとに解決されます。サブビュー(
tab:context、例:research:reptiles)は親タブのハイライトを引き継ぎます。すべてのビジュアル、タイトル、ボタンは Typewriter Pages 由来であり、コードはライブデータタグを埋め込み、インタラクションを紐付けるだけです。 - リサーチツリー — Mob を倒すことでアンロックされる、カテゴリー単位のテックツリーです。各動物にはカタリスト(設定可能なリソースアイテムで満たす)と、最終的なアクティベーション判定用の燃料アイテムが必要です。
- パッシブエコノミー — 配置された動物園の動物は時間経過で収益を生み出します。バイオームとの相性、ハビタットブロック、スタッフ、デコレーション、幸福度が収益に影響します。再接続時にはオフライン分の収益がまとめて計算されます。
- アドベンチャーマップ — テンプレートワールドからオンデマンドで複製される一時的なディメンションを探索します(BTC-CORE / Advanced Slime Paper 経由)。設定されたチャンクへテレポートして発見していきます。疲労ゲージ(マウントで延長可能)は探索中に減少し、ゼロになると起点への強制帰還が発生します。ワールドは無人になると自動的にアンロードされます。
- マウント — PacketEvents による STEER_VEHICLE のインターセプトを介して、ZQSD 操作で所有する動物に騎乗できます。疲労ゲージは時間とともに減少し、アドベンチャーディメンションの外で回復します。
- フュージョン — アクションで発動する同種融合:プレイヤーが持つ同一種の最高レベル 2 体を、孵化中の卵へと合体させます。レアリティ上昇と外見ミューテーションの発生率は設定可能です。
- 繁殖 — 「繁殖」タブからのレシピ駆動型異種交配です。条件を満たす 2 体の親を選択し(閲覧中はプレイヤーごとに保持されます)、設定されたレシピに一致する孵化を開始し、準備が整ったら生まれた子を回収します。
- プレステージ — 最大レベルの動物をレベル 1 にリセットし、永続的な収益ボーナスを得ます。ボーナスはプレステージ回数に応じて積み重なります。
- デリバリーショップ — 実際のスケジュール(
30m/2h/1dのような固定間隔、毎日のHH:MM時刻、またはクールダウン方式のフォールバック)と重み付きアイテムプールを持つ、ローテーション制の NPC 商人です。FOMO 的な仕組みとして、在庫はローテーションのたびに変化します。 - 遠征 — 「遠征」タブから、条件を満たす動物を時間制の放置ミッションに送り出します(空きスロット →
expeditions:startサブビューで動物を選択)。所要時間は雇用した遠征ガイドによって短縮されます。リソース、経験値、カタリストアイテム、あるいはレアなボーナス動物を持ち帰ります。 - 動物のレベルと経験値 — 各動物には固有のレベル、経験値カーブ、最大レベルがあります。マウントとしての使用、遠征、動物園への配置時間を通じて経験値を獲得します。
- パーソナライズ — 動物の改名、スキンバリアントの適用(参照ベースの EntityDefinitions)、アクセサリー(帽子、首輪、鞍)の装備が行えます。
- 幸福度システム — 動物は収益に影響する 0~100 の幸福度を持ちます。適合するバイオーム、ハビタットブロック、餌やり、スタッフ、デコレーションによって上昇し、過密状態によってペナルティを受けます。
- デイリー/ウィークリーチャレンジ — 独立したデイリー/ウィークリーサイクルでローテーションするチャレンジ(動物を捕獲する、動物を配置する、Mob を倒す、収益を得る、プレステージする、動物をリサーチする)です。「チャレンジ」タブから、お金とコマンド報酬を受け取れます。
- 動物園スタッフ — パッシブなロール効果を持つスタッフを雇用できます:収益回収係(収益倍率)、飼育員(幸福度の下限保証)、遠征ガイド(遠征の高速化)、リサーチャー(リサーチの高速化)。定期的な維持費が発生し、未払いだと自動的に解雇されます。
- クロスサーバーランキング — 総収益、所有動物数、累計プレステージ数、または配置済み動物数によるランキングです(「ランキング」タブでソート方式を循環切り替え)。
TypeWriter-MySqlExtensionが存在する場合は Redis pub/sub を介してネットワーク全体で同期され、存在しない場合はこのサーバーのプレイヤーのみにフォールバックします。 - プレイヤーマーケット — 所有する動物を出品し、他のプレイヤーから(サーバーをまたいでも)購入できます。Redis pub/sub プロトコル(list/unlist/buy/confirm/deny)により、出品元のサーバーが取引の権威を保持し、拒否または切断時には購入者側へ返金されます。Redis がない場合はローカル限定のマーケットにフォールバックします。
- 動物納品契約 — 種/カテゴリー、最低レベル、数量の条件に合う動物を納品し、お金 + コマンド報酬を得ます。契約は一回限りのものと繰り返し可能なものがあります。
- デコレーション&エンクロージャー — 「デコレーション」タブから実際のブロックを動物園のデコレーションとして設置できます。それぞれが幸福度および/または収益ボーナスをもたらし、プレイヤーごとに上限があります。撤去するとスロットを回収できます。
アーキテクチャ
エントリー
- 定義 — Animal Definition:種の設定(レアリティ、カタリストアイテム、燃料、経済、フュージョン、マウントステータス、モデルバリアント)。
- マニフェスト — Research Category:Mob 討伐要件を持つテックツリーのフォルダー。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 ページを構築する —
FrameLayoutのlayoutPoolを持つtycoon_menuエントリーを作成します:sidebarフレーム(タブ、tycoon_tab:<id>ボタン)、navフレーム(スクロール)、そして動的コンテンツ用にtycoon_button:ボタンを使うタブごとの<tabId>_contentレイアウト。 - 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 | Info タブで Control Panel を開く | なし |
/zoo visit <player> | 他のプレイヤーの動物園へテレポートする | なし |
/adventure | アドベンチャータブで Control Panel を開く | なし |
/mounts | マウントタブで Control Panel を開く | なし |
/collect | 蓄積された収益を手動で回収する | なし |
Admin
GUI 自体の内部アクションを除き、すべての /tycoon サブコマンドには 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% | アンロックに向けて倒した Mob 数 |
%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% | レアリティの16進数カラー |
%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% | 遠征スロット N の動物 ID |
%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 システムを管理する(すべての /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 |