Tycoon
概要
Tycoon は、動物園のゲームモードです。プレイヤーはモブを倒してリサーチカテゴリを解放し、触媒を与え、燃料アイテムを使って動物をリサーチし、その動物を動物園に配置して、不労所得を得ます。動物はレベルが上がり、恒久的なボーナスのためにプレステージでき、時間制の探検に送り出したり、繁殖させたり、融合させたり、プレイヤーマーケットで取引したり、契約のために引き渡したりできます。
すべてはデータ駆動です。各種は Animal Definition で、各システム(リサーチカテゴリ、チャレンジ、スタッフ、装飾、契約、繁殖、ショップ)は manifest エントリで、経済のルールは 1 つの Tycoon Economy Config にあります。プレイヤー向けのインターフェースは、1 つのメニュー Tycoon Control Panel で、そのレイアウトは Web パネルで作成します。コードは、ライブデータを埋め込み、クリックを割り当てるだけです。
不足するリソースは、お金ではなく、動物園のスペースです。プレイヤーの収容力は、動物園の職業レベルとともに増え、どの種も一定数のスペースを必要とし、収益はそのコストに比例します。配置された動物は、オーナーにだけ表示されるため、すべてのプレイヤーが 1 つのワールドを共有できます。
これは、BTC ビルドの TypeWriter(BTC Core、Paper または Folia)の非公開の拡張機能で、参考のために文書化されています。
機能
- リサーチツリー — モブの討伐で Research Categories が解放されます。各動物には、満たされた触媒と、最終判定のための燃料アイテムが必要です。
- 動物園のスペースと配置 — 種ごとにスペースを消費します。動物は、Placement Group で宣言された位置に、1 つの位置に 1 匹ずつ配置されます。
- 不労所得 — 配置された動物は、時間とともに収益を生みます。レア度、レベル、プレステージ、幸福度、スタッフ、装飾によって増減し、オフライン中の取り戻しには上限があります。
- 幸福度 — 0〜100 で、収益に掛かります。ペナルティは過密のみで、餌やりと装飾が幸福度を上げます。
- レベルとプレステージ — XP 曲線とレベルの上限は、経済設定にあります。Prestige は、恒久的な収益ボーナスと引き換えに、動物をレベル 1 に戻します。
- 融合と繁殖 — 同じ種の 2 匹の Fusion と、孵化時間のあるレシピベースの Breeding。
- 探検 — 動物を時間制の放置型ミッションに送り出し、帰還時に結果を受け取ります。
- アドベンチャーマップ — テンプレートのワールドから複製される一時的なディメンション。疲労ゲージを持ちながらチャンクごとに探索し、動物に乗り物として乗れます。
- ソーシャルな経済 — ローテーションする Delivery Shop、プレイヤーマーケット、動物の契約、デイリーとウィークリーのチャレンジ、動物園のスタッフ、装飾、リーダーボード。
インストール
- BTC ビルド(Paper または Folia 上の BTC Core)で TypeWriter をインストールします。
- 必須の拡張機能をインストールします。Entity(動物のモデルと偽のエンティティ)と、GUI(コントロールパネル)です。
- 経済プラグインとともに Vault をインストールします。お金に関するすべてのコストと報酬は、Vault を使います。
- 任意の拡張機能: 乗り物のための、PacketEvents を備えた Vehicle、動物園の職業レベルのための RPG Core、アドベンチャーマップのための TemporaryDimension(BTC Core の SlimeWorldManager が必要)、サーバー間のリーダーボードとマーケットのための、Redis を備えた MySql。プレースホルダーには MiniPlaceholders が必要です。
- Tycoon の JAR を
plugins/Typewriter/extensions/に置き、サーバーを再起動します。
はじめに
最初の動物を追加し、プレイヤーにリサーチさせます。
- TypeWriter の Web パネルで static ページを開き、Tycoon Data Artifact を追加します。プレイヤーマーケットが必要な場合は、Tycoon Market Artifact も追加します。それらの
artifactIdは変更しないでください。 - Research Category を追加します。
displayName、requiredMobKills、必要に応じてtrackedMobTypes(空の場合はすべてのモブが対象)を設定します。 - Animal Definition を追加します。
entityDefinition(モデル)、category(カテゴリの ID)、rarity、spaceCost、baseRevenueRateを設定します。acceptedCatalystItems(素材名のitemIdとpowerValue)、catalystPowerRequired、fuelItemを列挙します。新しい動物の ID を、カテゴリのanimalsに追加します。 - 少なくとも 1 つの位置を持つ Tycoon Placement Group を追加し、プレイヤーが動物を置く場所を用意します。
- Tycoon Economy Config を追加します。これがない場合は、組み込みのデフォルトが使われます。
- インターフェースを作成します。レイアウトとビューを持つ Tycoon Control Panel と、すべてのリストのアイテムテンプレートを持つ Tycoon Menu Config を追加します。パネルは、自分で選んだコマンドエントリから開きます。
- パブリッシュします。プレイヤーは、カテゴリが解放されるまでモブを倒し、リサーチ画面から動物の触媒を開始し、触媒アイテムを与え、その後燃料アイテムを使って(または Catalyst Activate をトリガーして)、リサーチを試みます。
Tycoon Menu Config で、リストのテンプレートを空のままにすると、空のスロットとして描画されます。コードが何かを補うことはありません。
仕組み
リサーチ
モブを倒すと、そのタイプを追跡しているすべての Research Category にカウントされます。requiredMobKills に達すると、カテゴリが解放されます。ただし、requiredCategory がまだ解放されていない場合を除きます(Category Unlock アクションにも、同じルールが適用されます)。
動物は、2 つの段階でリサーチされます。最初に、プレイヤーが触媒アイテムを与えます。acceptedCatalystItems に列挙されたアイテムでエンティティを右クリックすると、その powerValue が加算されます。パワーが catalystPowerRequired に達したら、fuelItem を使うと、リサーチの判定が行われます。確率は、successChance に、レア度の捕獲ウェイトを掛けたものです。成功すると、プレイヤーは動物を入手し、すでにその種を持っている場合は alternativeRewards を受け取ります。触媒は、どちらの場合も消費されます。右クリックの操作が反応するのは、触媒がすでに開始されている動物(たとえば、コントロールパネルのリサーチ画面から)に対してだけです。Catalyst Activate アクションは、満たされた触媒について、燃料アイテムなしでリサーチの判定を行います。
| レア度 | 収益の倍率 | 捕獲ウェイト | 騎乗時の疲労(秒) |
|---|---|---|---|
COMMON | 1.0 | 1.0 | 120 |
UNCOMMON | 1.5 | 0.6 | 180 |
RARE | 2.5 | 0.25 | 300 |
EPIC | 5.0 | 0.08 | 480 |
LEGENDARY | 10.0 | 0.02 | 900 |
動物園、スペース、幸福度
収容力は、baseSpaceCapacity に、zooProfessionId で指定された RPG Core の職業のレベルごとに spacePerZooLevel を加えたものです(空の場合、または RPG Core がない場合、レベルは 1 です)。maxPlacedPerSpecies は、1 つの種の個体を同時に何匹まで立たせるかを制限します。収容力の overcrowding.thresholdPercent を超えると、幸福度が下がります。幸福度は、収益を revenueMultiplierAtZero と revenueMultiplierAtMax の間で変化させます。
オフライン中は、プレイヤーは最大で offlineCatchup.maxHours 時間分、オンライン時の offlineCatchup.rate の割合で収益を得て、再接続時に一度だけ計算されます。
レベル、プレステージ、融合、繁殖
maxAnimalLevel と xpCurve が、レベルを決めます。最大レベルで、Prestige は 1 匹の個体をレベル 1 に戻し、maxPrestige を上限として、prestigeRevenueBonus を収益に加えます。
Fusion は、同じ種で、レベルとプレステージが同じ(少なくとも fusionMinLevel)の、予備の動物 2 匹を取り、それらを削除して孵化を開始します。Breeding は、2 つの親の種(順不同)を、requiredParentLevel、incubationSeconds、cost、consumesParents を持つレシピと照合します。 卵が孵化するとき、アクションの rarityUpgradeChance でレア度が 1 段階上がることがあり、cosmeticMutationChance で突然変異スキンが付くことがあります。
スタッフ、装飾、チャレンジ
Staff のメンバーは、role(REVENUE_COLLECTOR、CARETAKER、EXPEDITION_GUIDE、RESEARCHER)、hireCost、時間ごとの upkeepPerHour を持ちます。支払えなくなったメンバーは、解雇されます。Decorations は、happinessBonus と revenueBonus を加え、maxPerPlayer で上限が決まります。Challenges は、DAILY または WEEKLY の期間にわたって challengeType を追跡し、rewardMoney と rewardCommands を支払います。Animal Contracts は、種またはカテゴリ、最低レベル、数で、動物を求めます。
メニュー
Tycoon Control Panel は、ビューを持つメニューです。ページが、プレイヤーに見えるすべてを定義します。
layoutPoolは、ルートのframeを保持します(またはmainLayoutIdがそれを指定します)。可変コンテンツのフレームは、レイアウト ID@viewを使います。viewsは画面を宣言します。ビューは、フレームごとにレイアウトを指定するか、命名規則<viewId>_<frameId>に従います。defaultViewIdは、最初に開かれるビューです。- タブのスロットはタグ
view:<viewId>を持ち、アクティブなタブは、共通のビューのスタイルで強調表示されます。 - コンテンツのアイテムは、
tycoon_button:TYPEまたはtycoon_button:TYPE:argumentの形式のbuttonTypeを使います。拡張機能は、アイテムのタグにライブデータを埋め込み、クリックを割り当てます。 - メニューは、ターゲット
<viewId>または<viewId>:<argument>(たとえば、リサーチカテゴリの ID)で、ビューを指定して開きます。
画面ごとのボタンタイプ:
| 画面 | ボタンタイプ |
|---|---|
| 動物園と図鑑 | ZOO_INFO, BESTIARY_ENTRY, BESTIARY_SPECIES_ENTRY, SPECIES_MANAGE_INFO, PLACEMENT_SLOT_ENTRY, SPECIES_LEVEL_ENTRY, BESTIARY_PANEL_ENTRY, PLACED_ENTRY |
| リサーチ | RESEARCH_CATEGORY_ENTRY, RESEARCH_ANIMAL_ENTRY, RESEARCH_CATEGORY |
| 探検と騎乗 | EXPEDITION_ENTRY, EXPEDITION_START_ENTRY, MOUNT_ENTRY |
| アドベンチャー | ADVENTURE_CHUNK_ENTRY, ADVENTURE_INFO |
| 経済 | SHOP_ENTRY, PRESTIGE_ENTRY, MARKET_ENTRY, MARKET_MINE_ENTRY, MARKET_SELL_ENTRY, ANIMAL_CONTRACT_ENTRY, STAFF_ENTRY, STAFF_INFO |
| ソーシャル | RANKING_SORT, RANKING_ENTRY, CHALLENGE_ENTRY |
| 繁殖と装飾 | BREEDING_PARENT_ENTRY, BREEDING_EGG_ENTRY, BREEDING_INFO, DECORATION_ENTRY, DECORATION_PLACED_ENTRY |
| リスト | LIST_PAGER:<listId>[:<pageSize>](リストが 1 画面に収まらない場合にのみ表示) |
順序ベースのエントリ(_ENTRY タイプ)は、タグ付きスロットごとに、スロットの順序で 1 つの要素を描画します。{animal_name} や {remaining_time} などのタグを持つ、各リストのアイテムテンプレートは、Tycoon Menu Config から取得されます。同じエントリが、リサーチカテゴリ(researchViewId)、探検スロット(expeditionViewId)、図鑑(bestiaryViewId)で開かれるビューも指定します。
コマンド
コマンドはエントリなので、その名前と権限はパネルで編集します。各コマンドは、そのエントリをページに置くことで登録されます。
| コマンド | 説明 |
|---|---|
/tycoonadmin give <player> <animal> | オンラインのプレイヤーに動物を与えます。permission に設定された権限が必要です(デフォルトは tycoon.admin)。 |
/tycoonadmin remove <player> <animal> | ある種の、最も進んでいない個体を削除します。 |
/tycoonadmin setlevel <player> <animal> <level> | ある種のすべての個体のレベルを設定します。maxAnimalLevel に丸められます。 |
/tycoonadmin unlockcategory <player> <category> | リサーチカテゴリを解放します。 |
/tycoonadmin info [player] | プレイヤーの動物園プロファイルを表示します。 |
/tycoonadmin resetfatigue [player] | アドベンチャーの疲労をリセットします。 |
/tycoonadmin spawnshop <shop> | デリバリーショップの商人を今すぐスポーンさせます。 |
/tycoonadmin save | すべての Tycoon のデータをディスクに書き込みます。 |
/collecter | 蓄積された収益を回収します。permission が設定されていない限り、全員が使えます。 |
/visiter <player> | 他のプレイヤーの動物園を訪れるため、その場所にテレポートします。permission が設定されていない限り、全員が使えます。 |
上記の名前は、Tycoon Admin Command、Tycoon Collect Command、Tycoon Visit Command のデフォルトです。名前を変えるには、commandName を変更します。メニューを開くコマンド(たとえば /zoo)は、この拡張機能には含まれません。Basic 拡張機能のコマンドエントリで、Control Panel をトリガーするものを作成してください。
権限
| 権限 | 許可される内容 |
|---|---|
tycoon.admin | /tycoonadmin のツリー全体。これは、admin コマンドの permission フィールドのデフォルトで、そこで変更できます。 |
collect と visit のコマンドの permission フィールドは、デフォルトでは空です(権限は不要)。
プレースホルダー
TypeWriter を通じて提供される、tycoon エクスパンションの MiniPlaceholders のタグです。<id> は動物の定義の ID、<cat> はリサーチカテゴリの ID、<n> は 0 から始まる探検スロットのインデックスです。すべて、閲覧しているプレイヤーのプロファイルを読み取ります。
合計
| プレースホルダー | 返す値 |
|---|---|
<tycoon_total_animals> | 所有している動物の数。 |
<tycoon_total_species> | 所有している種の数。 |
<tycoon_placed_animals> | 動物園に配置されている動物。 |
<tycoon_unplaced_animals> | 予備にいる動物。 |
<tycoon_total_revenue> | 獲得した総収益(小数点以下 2 桁)。 |
<tycoon_total_revenue_raw> | 獲得した総収益(整数)。 |
<tycoon_categories_unlocked>, <tycoon_categories_total>, <tycoon_categories_locked> | 解放済み、追跡中、まだロック中のリサーチカテゴリ。 |
<tycoon_milestones_count> | 達成したコレクションのマイルストーン。 |
<tycoon_prestige_total> | 全動物にわたる、プレステージの総回数。 |
<tycoon_expeditions_active> | アクティブな探検。 |
<tycoon_expeditions_completed> | 常に 0。 |
<tycoon_zoo_visitors> | 動物園の訪問者。 |
<tycoon_active_mount_id> | 選択中の乗り物の ID。なければ none。 |
<tycoon_last_revenue_collect> | 最後に回収した時刻(HH:mm:ss)。 |
リサーチカテゴリ
| プレースホルダー | 返す値 |
|---|---|
<tycoon_category_unlocked:cat> | 解放済みなら true。 |
<tycoon_category_mobs_killed:cat> | 倒した、追跡対象のモブ。 |
<tycoon_category_required_kills:cat> | 解放に必要な討伐数。 |
<tycoon_category_progress_percent:cat> | パーセントでの進行状況。 |
<tycoon_category_name:cat> | 表示名。 |
動物
| プレースホルダー | 返す値 |
|---|---|
<tycoon_animal_level:id>, <tycoon_animal_xp:id>, <tycoon_animal_prestige:id> | 所有している動物のレベル、XP、プレステージ回数。 |
<tycoon_animal_owned:id>, <tycoon_animal_placed:id> | true または false。 |
<tycoon_animal_count:id>, <tycoon_animal_placed_count:id> | 所有している個体と、配置されている個体。 |
<tycoon_animal_rarity:id>, <tycoon_animal_rarity_color:id> | レア度の名前と、その 16 進数の色。 |
<tycoon_animal_custom_name:id> | カスタム名。 |
<tycoon_animal_display_name:id> | 定義の表示名。 |
<tycoon_animal_is_mountable:id>, <tycoon_animal_mount_speed:id>, <tycoon_animal_fatigue_capacity:id> | 定義の騎乗の設定。 |
<tycoon_animal_max_level:id> | 経済設定の maxAnimalLevel。 |
<tycoon_animal_space_cost:id>, <tycoon_animal_revenue_rate:id>, <tycoon_animal_fusion_level:id> | spaceCost、baseRevenueRate、fusionMinLevel。 |
<tycoon_animal_catalyst_progress:id> | パーセントでの触媒の充填度。 |
<tycoon_animal_catalyst_power:id>, <tycoon_animal_catalyst_items:id> | 触媒のパワーと、提供されたアイテムの種類数。 |
<tycoon_placed_happiness:id>, <tycoon_placed_biome:id>, <tycoon_placed_world:id>, <tycoon_placed_coords:id>, <tycoon_placed_chunk:id> | 配置された動物の詳細。 |
<tycoon_prestige_bonus:id> | 動物のプレステージボーナス。 |
探検
| プレースホルダー | 返す値 |
|---|---|
<tycoon_expedition_count> | 使用中の探検スロット。 |
<tycoon_expedition_animal:n> | スロット n の動物 ID。 |
<tycoon_expedition_remaining_seconds:n>, <tycoon_expedition_remaining_minutes:n> | 帰還までの時間。 |
<tycoon_expedition_duration_hours:n> | 時間単位での総所要時間。 |
<tycoon_expedition_ready:n> | 回収できる状態なら true。 |
エントリ
27 件のエントリー(拡張機能のソースから生成)。
アクション9
- Animal XP ActionGrant XP to a player's owned animal toward its next level
- Catalyst Activate ActionUse the fuel item to attempt animal research once the catalyst is fully powered
- Category Unlock ActionUnlock a research category when the mob kill threshold is met
- Customize Animal ActionCustomize an owned animal: rename, apply skins, equip accessories
- Expedition Start ActionSend an owned animal on a timed expedition to earn loot, XP, and rare resources
- Fusion ActionFuse two animals of the same species to create an egg with inherited stats and mutation chance
- Prestige ActionPrestige a max-level animal: resets to level 1 with a permanent revenue bonus and exclusive cosmetic
- Revenue Collect ActionCollect accumulated tycoon revenue for a player
- Tycoon MenuTycoon Control Panel (menu à vues)
コマンド3
- Tycoon Admin CommandCommande d'administration Tycoon
- Tycoon Collect CommandCommande de collecte des revenus
- Tycoon Visit CommandCommande de visite de zoo
アーティファクト2
- Tycoon Data ArtifactCentralized persistent storage for all Tycoon data (profiles, research, expeditions)
- Tycoon Market ArtifactPersistent storage for the player auction house (market listings)
マニフェスト13
- Adventure MapConfigures an adventure map: temporary dimension template, chunk grid, spawn zone, and mount selector
- Animal DefinitionDefines a tycoon animal with research tree, catalyst mechanics, fusion, and economy stats
- Delivery ShopConfigures a rotating delivery shop: NPC spawn schedule, item pool, and FOMO rotation mechanics
- Research CategoryResearch category in the tycoon tech tree; groups animals and requires mob kills to unlock
- Tycoon Animal ContractA delivery contract rewarding handed-over animals
- Tycoon Breeding RecipeCross two animal species into a hybrid offspring egg
- Tycoon ChallengeA rotating daily/weekly zoo challenge
- Tycoon DecorationA placeable zoo decoration granting happiness/revenue bonuses
- Tycoon Economy ConfigTycoon economic rules: space, overcrowding, happiness, prestige
- Tycoon Menu ConfigTycoon Control Panel Configuration
- Tycoon Placement GroupGroupe d'emplacements de zoo
- Tycoon Research RecipeResearch Recipe
- Tycoon StaffA hireable zoo staff member with a passive role effect
トラブルシューティング
メニューが空で開く。 Tycoon Menu Config のテンプレートは、デフォルトでは空のスロットで、layoutPool には、mainLayoutId と views で指定されたレイアウトが含まれている必要があります。ログでメニューの ID を確認してください。
リサーチカテゴリや探検スロットをクリックすると、概要に戻る。 メニュー設定の researchViewId、expeditionViewId、bestiaryViewId(デフォルトは tycoon_recherches、tycoon_expeditions、tycoon_bestiaire)のビュー ID が、自分の views の ID と一致している必要があります。そうでないと、エンジンはデフォルトのビューにフォールバックします。
カテゴリがまったく解放されない。 trackedMobTypes は、小文字のエンティティタイプ名と比較されます。空のリストは、すべてのモブを対象にします。requiredCategory を持つカテゴリは、そのカテゴリが解放された後に限り、Category Unlock アクションで解放できます。
動物を配置できない。 Placement Group に、maxSpaceCost が動物の spaceCost 以上である空きの位置があり、収容力に十分な空きスペースがあり、動物園のレベルが少なくとも requiredZooLevel である必要があります。稼働中のサーバーで positions の順序を変えないでください。スロット ID は、そのインデックスから導出されます。
お金に関するコストと報酬が何もしない。 それらは Vault を通じて処理されます。Vault と経済プラグインをインストールしてください。
アドベンチャーマップや乗り物が利用できない。 TemporaryDimension 拡張機能(BTC Core の SlimeWorldManager とともに)と、PacketEvents を備えた Vehicle 拡張機能が必要です。Redis がない場合、リーダーボードとマーケットは、サーバー内でローカルのままです。
融合や繁殖で何も得られない。 融合には、レベルとプレステージが同じで、少なくとも fusionMinLevel である、予備の動物 2 匹が必要です。配置された動物は無視されます。孵化の抽選は卵が準備できたとき、つまり incubationHours の後に一度だけ行われ、その際に Fusion アクションの rarityUpgradeChance と cosmeticMutationChance が適用されます。