# 局地戦略　ヘルプ

概要
ゲームの流れ
オプションルール
マップエディタ
イベントスクリプト
思考ルーチンスクリプト
レベルアップスクリプトNEW
サポート
謝辞

デフォルトの地形／ユニットデータ...
地形／ユニットデータ（CSVファイル）リファレンス...
地形種類上限は、2.10現在で80（施設は中立/各陣営分をまとめて1種類と数えます）です。
ユニット種類上限は、2.10現在で200（各陣営分をまとめて1種類と数えます）です。
これらは、現在固定長配列に入っているために上限がありますが、将来上限はメモリの限りにおいて撤廃される予定です。

## 概要

ごくシンプルでオーソドックスな戦略シミュレーションゲームです。 部隊を生産し、拠点を占領し、収入を増やし、敵を攻撃し… 最終的に、敵軍を全滅させるか敵の首都を（全て）占領すれば勝利です。

## ゲームの流れ

### フェイズとターン

一陣営が行動する事を、フェイズといいます。 全ての陣営がフェイズを行う事を、ターンといいます。

各ターン毎に、収入分の資金が増えます。 収入は持っている施設の種類と数によります。 各施設の収入は使用するデータセットで定義されます。

### 生産

各陣営は、首都機能を持つ施設の周囲３ヘクスの施設で生産を行う事ができます。 ただし独立生産機能を持っている施設はこの限りではありません。

生産を行うためにはその施設をクリックして下さい。 ただし、上に（味方でも敵でも）ユニットがあると生産できません。

### 移動・攻撃

ユニットをクリックすると、移動範囲が表示されます。
移動先をクリックすると、攻撃できる範囲が表示されます。
ただし、間接攻撃（離れた敵を攻撃）は、その場から移動した場合できません。
行動が終了すると、ＥＮＤマークが付きます。

### 占領

敵の施設の上に占領能力を持ったユニットを置くと、その施設の耐久度が減少します。
耐久度が零になると、その施設は自軍の物になります。

また、自軍の施設の耐久度を下げられた場合は、 その上に同じく占領能力を持つユニットを置く事で耐久度の回復ができます。

### 搭載・降車

移動力の低いユニットを、他のユニットに載せて運ぶ事ができます。
載せたいユニットを載せるユニットの上に移動させる事で搭載できます。
その後、載せているユニットを移動させると降車範囲が表示されます。

ユニットによって載せられるユニットは決まっています。 例えばデフォルトデータセットでは、輸送ヘリは歩兵と戦闘工兵を２ユニット搭載できます。

### 合流

ライフの減った同じ種類のユニット同士を合流させる事ができます。
合流後のライフは２つのユニットの合計に、燃料と弾薬はどちらか多い方の値になります。
何だか理不尽ですがそういうルールです。

### 処分

ユニット数には上限があるので、これを減らすためのコマンドです。
要らないユニットを右クリックし、「このユニットを処分」を選択して下さい。
行動済みのユニットは処分できません。

### 消滅・沈没・墜落

CSVファイルで「燃料消費」で定義された燃料が、毎ターン開始時に消費されます。 燃料補給可能な地形の上（例えば航空機なら空港）に居る時は燃料を消費しません。

燃料が零になったユニットは、消滅・沈没・墜落となります。 ただし、最初のターンは燃料を消費しません。 また、燃料消費が零のユニットは燃料が零になっても存続します。

## オプションルール

マップに対して、オプションでルールを設定できます。

### 索敵

自軍のユニットの視界以外は見えないというルールです。それぞれのユニットによって視界の広さは違います。
視界外の敵ユニットは存在しないのと同じですが、移動中に衝突することがあります。

細かいルールは以下の通りです。

- 自軍の施設およびユニットは例えその施設およびユニットの視界が零でも見える。
- 視界外へ移動する時、移動経路上に敵ユニットが居ると衝突してその場で止まる（見えないので、避けて通るということはできません。また移動経路は自動的に決まってしまって変えられません(^^;）。ただし、戦闘は起こらない。
- 視界外の敵ユニットは攻撃できない。
- 視界外に降車する時、そこに敵ユニットが居ると降車は失敗する（ついでに戦闘が発生する(^^;）。
- 視界外のCPUの行動は一切見えない（視界内なら、オプションで描画を省略していなければ見えます）。
- 視界外からの攻撃については、何が何処から攻撃したかは分からない（例え隣接していても）。

### ZOC(Zone Of Control)

この手のゲームではおなじみ。 自分に対して攻撃できるユニットの隣では、移動力が落ちるというルールです。

## マップエディタ

オリジナルマップを作ることができます。 各陣営には、首都機能のある施設が最低１つ必要です（無いと開始直後負けになります）。

地形／ユニットデータファイルを指定する必要があります。 指定しなかった場合はデフォルトデータセット（default.csv , default.bmp）が使われます。

本体及びマップエディタは、地形／ユニットデータファイルを次の順序で検索します。
マップファイルと同じフォルダ → 実行ファイルと同じフォルダ → Systemフォルダ

2.00 beta 6 から、ユニット配置モードでCtrlキーを押しながらユニットを左クリックすると ユニットのプロパティを編集できるようになりました。

## イベントスクリプト

スクリプトはテキストファイルに書いて、マップエディタでマップのプロパティに指定します。 C言語風版スクリプトと、Lua版スクリプトがあります。

Map\ScriptSample でスクリプトの例を示しています。 同盟関係はスクリプトでだけ設定できます。

イベントスクリプトマニュアル（C言語風版）...
イベントスクリプトマニュアル（Lua版）...

## 思考ルーチンスクリプト

仕様は公開されますが、作者自身思考ルーチンを作りながらAPIのバグ取りをしている有様なので、 当分はユーザーが思考ルーチンを作るというのは非現実的でしょう。 Map\ComSample にあるように、デフォルト思考ルーチンの性格を少し変えるぐらいはできます。

思考ルーチンスクリプトマニュアル...

## レベルアップスクリプト

レベルアップによって攻撃した時のダメージが増加し、攻撃された時のダメージが減少します。 一律に適切なレベルアップを設定するのは困難なので、CSVファイルで、レベルアップのダメージ増加/減少関数を指定します。 指定できる箇所は「攻撃力LV補正」「防御力LV補正」です。 System\Lua\levelup_default.lua にいくつかの関数が用意されています。

取得経験値については、移動した時に+1，降車した時に+1，直接攻撃した時に(sqrt(相手の値段/自分の値段)*与えたダメージ)/2（端数切り捨て、ただし最低値は1） です。 間接攻撃の経験値は直接攻撃の半分です。メガヘクス攻撃の経験値は直接攻撃の４分の１です。 攻撃を受けて反撃した場合は自分からの直接攻撃の半分です。

もしもCSVファイルのレベルアップスクリプトにluaファイルが指定されていなければ（あるいは設定自体が無ければ）、 System\Lua\levelup_default.lua がロードされます。 何かluaファイルを指定することで、レベルアップ計算を自分でカスタマイズすることができます。 需要があれば経験値の計算もLuaの関数にするかも？

Map\ScriptSample でスクリプトの例を示しています。

## サポート

質問、バグレポート等は作者宛てにメールをお願いします。
CQX03433@nifty.com
公式サイト
http://homepage3.nifty.com/akaho/

## 謝辞

メール対戦機能（Ver.1.4xにて実装。Ver.2.xxでは未実装）で、 有限会社軟式様の公開されているライブラリ 「nMail.DLL」を利用させていただいております。
nMail.DLL の著作権は有限会社軟式様が保持しています。
http://www.nanshiki.co.jp/

PNG,JPEG形式の画像ファイルの読み込みにルーチェ様の公開されているライブラリ 「imgctl.dll」を利用させていただいております。
imgctl.dllの著作権はルーチェ様が保持しています。
http://www.ruche-home.net/

描画処理に部員弐号様の公開されているライブラリ 「buingl」を利用させていただいております。
buinglの著作権は部員弐号様が保持しています。
http://buin2gou.nyaa.co.uk/buinglib/

EOF