Bonus Worker on City Founding
Version 2
作者: A-Maga Publishing / 楢葉なおよしn

【MOD概要】
Steam版 Sid Meier's Civilization V: Brave New World用のシングルプレイMODです。
人間が操作する存命中の主要文明が開拓者で新しい都市を建設したとき、
その都市のタイルまたは周辺の安全な空きマスへ労働者（UNIT_WORKER）を1体追加します。
首都を最初に建設した場合も対象です。新都市1か所につき付与は一度だけです。

AI文明、都市国家、蛮族、無効なプレイヤー、滅亡文明には適用しません。
都市の占領、解放、譲渡、所有者変更、セーブロードでは新規付与しません。

【対応ゲーム】
・Steam版 Sid Meier's Civilization V
・Brave New World（BNW）が必要
・シングルプレイ向け
・マルチプレイの動作は保証しません

【対応OS】
Windows / macOS / Linux

同一のMODフォルダを各OSで使用できます。OS別の差し替えファイルはありません。
Linux版での大文字・小文字の扱いに備え、フォルダ名、.modinfo名、Lua名、README名、
.modinfo内部の参照名を半角英数字の小文字へ統一しています。

【配布フォルダ構成】
bonus-worker-on-city-founding/
├─ bonus-worker-on-city-founding.modinfo
├─ bonusworker.lua
└─ readme.txt

ZIPを利用する場合は、展開後に上記3ファイルがbonus-worker-on-city-foundingフォルダの
直下にあることを確認してください。

【導入方法】
1. Civilization Vを終了します。
2. bonus-worker-on-city-foundingフォルダを、フォルダごとCiv VのMODSフォルダへコピーします。
3. フォルダやファイルの名前を変更せず、そのまま使用します。

Windowsの標準的な場所:
Documents\My Games\Sid Meier's Civilization 5\MODS

macOSの代表的な場所:
~/Documents/Aspyr/Sid Meier's Civilization 5/MODS
または
~/Library/Application Support/Sid Meier's Civilization 5/MODS

Linux Mint / Steam Play（Proton）の代表例:
steamapps/compatdata/8930/pfx/drive_c/users/steamuser/Documents/My Games/
Sid Meier's Civilization 5/MODS

Steamライブラリやユーザーデータの場所は環境により異なります。
実際に存在するCiv Vユーザーデータ内のMODSフォルダを使用してください。

【有効化方法】
1. Civ Vを起動し、メインメニューの「MOD」へ進みます。
2. 「Bonus Worker on City Founding」にチェックを入れます。
3. 「次へ」からMOD用シングルプレイ設定画面へ進み、新しいゲームを開始します。
4. 通常の「シングルプレイ」メニューへ戻って開始しないでください。

【動作確認】
1. 人間の主要文明で新規ゲームを開始します。
2. 首都を建設し、労働者が1体だけ追加されることを確認します。
3. 2都市目以降も、新しく建設した都市ごとに労働者が1体追加されることを確認します。
4. 同じ都市へ2体以上付与されないことを確認します。
5. セーブしてロードし、既存都市へ再付与されないことを確認します。
6. 都市を占領、解放、譲渡しても付与されないことを確認します。
7. AI文明の都市には付与されないことを確認します。
8. 都市タイルが占有されている場合、周辺の安全な空き陸地へ配置されることを確認します。

【発動イベント】
GameEvents.PlayerCityFoundedを使用し、新都市の建設完了をイベント駆動で検知します。
毎ターンの全都市走査は行いません。このイベントは都市の占領、解放、譲渡、
セーブロード、都市画面の開閉、通常のターン進行だけでは発生しません。

【都市ごとの重複防止】
プレイヤーID、都市ID、X・Y座標、都市建設ターンを組み合わせた保存キーを作り、
Modding.OpenSaveData()へ付与済み情報を保存します。
労働者の生成に成功した後だけ保存し、イベントが重複発火しても同じ都市へ二重付与しません。

【労働者の配置方法】
最初に新都市タイルを確認します。ユニットが存在して安全に配置できない場合は、
都市を中心として半径1から最大8まで近い順に候補を探します。
陸地で、山岳・通行不能・都市ではなく、ほかのユニットが存在しないマスだけを使用します。
候補がない場合やInitUnitが失敗した場合は、ゲームを停止せずLua.logへ理由を記録します。

【Lua.logの確認】
Windowsでは通常、Civ Vユーザーデータ内のconfig.iniで次を設定してゲームを再起動します。
  LoggingEnabled = 1
  EnableLuaDebugLibrary = 1

ログの代表的な場所:
Documents\My Games\Sid Meier's Civilization 5\Logs\Lua.log

Lua.log内で次を検索してください。
  [City Worker Bonus]

Lua読み込み、都市建設検知、都市名、プレイヤーID、配置座標、処理済みスキップ、
配置不能、生成失敗などを記録します。

【セーブデータへの影響】
このMODはセーブデータへ都市ごとの付与済み情報を保存します。
このMODを有効にして開始したセーブは、原則として同じMODを有効にしてロードしてください。
MODを無効化しても、すでに生成された労働者はセーブデータから自動削除されません。

【アンインストール方法】
1. ゲーム内のMOD一覧でチェックを外します。
2. Civ Vを終了します。
3. MODS内のbonus-worker-on-city-foundingフォルダを削除します。

Civ V本体のファイルは変更していません。新規ゲームでは通常状態へ戻ります。

【MODが表示されない場合】
1. bonus-worker-on-city-foundingフォルダが二重階層になっていないか確認します。
2. フォルダ名と3ファイルの名前がすべて小文字であることを確認します。
3. .modinfo内のbonusworker.luaと実ファイル名が一致していることを確認します。
4. ゲーム終了後、Civ Vユーザーデータ内のcacheフォルダだけを退避または削除します。
5. Database.logとLua.logを確認します。

【既知の制限】
・GameEvents.PlayerCityFoundedの引数には、消費された開拓者ユニット自体は含まれません。
  通常ルールで開拓者が建設した都市を対象としますが、別MODがスクリプトから新都市を直接作り、
  同じイベントを発火させた場合は対象になる可能性があります。
・GameInfoTypes.UNIT_WORKERを直接使用します。UNITCLASS_WORKERを文明固有ユニットへ
  置換するMODとは連携しません。
・安全性を優先し、軍事ユニットを含めて何らかのユニットが存在するマスは候補から除外します。
・半径8以内に候補がなければ、その都市には労働者を配置しません。

【他MODとの競合可能性】
Civ V本体データを上書きせず、独立したInGameUIAddinとして動作します。
都市建設イベント、UNIT_WORKER、ユニット配置、都市生成処理を変更するMODとは
競合する可能性があります。

「Five Settlers at Dawn」とはMOD ID、Luaファイル、保存キー、ログ接頭辞を分離しているため、
同時に有効化できます。

【作者・クレジット】
A-Maga Publishing / 楢葉なおよしn

【免責】
利用は自己責任です。重要なセーブデータは事前にバックアップしてください。
