AIスクリプトリファレンス

条件(ゲーム設定)

death-match-game

■説明
この条件はゲームがデスマッチゲームであるかチェックする。

■注釈
ゲームの初期設定を判定するための条件。下記の例はデスマッチ未対応のAIがデスマッチの場合にすぐ放棄するルールである。システム定義シンボル「DEATH-MATCH」を使用してデスマッチの判定をすることもできる。

(defrule
  (death-match-game)
=>
  (resign)
)

regicide-game

■説明
この条件はゲームがチェックメイトゲームであるかチェックする。

■注釈
ゲームの初期設定を判定するための条件。下記の例はチェックメイトゲームの場合、ゲーム開始後すぐに伐採所を建設するルールである。システム定義シンボル「REGICIDE」を使用してチェックメイトの判定をすることもできる。

(defrule
  (regicide-game)
  (can-build lumber-camp)

=>
  (build lumber-camp)
  (disable-self)
)

game-type <rel-op> <game-type>

■説明
ドキュメントに記載なし。

■注釈
ゲームの種類を判定するための条件。下記の例はターボランダムゲームかどうかを判定するルールである。

(defrule
  (game-type == 8)

=>
  (chat-to-all "ターボランダムゲームです。")
  (disable-self)
)

victory-condition <victory-condition>

■説明
この条件はゲームの勝利条件をチェックする。

■注釈
勝利条件によって戦い方を変える場合に使用する条件。下記の例は、勝利条件が標準で敵の民族の象徴がある場合、攻撃するルールである。

(defrule
  (victory-condition standard)
  (players-building-type-count any-enemy wonder >= 1)
=> (attack-now) )

difficulty <rel-op> <difficulty>

■説明
この条件は難易度設定をチェックする。

■注釈
下記の例は難易度が「難しい」以上の場合、城を建設するルールである。
※難易度「hardest」が値として一番小さいので、「難しい」以上とする場合は下の例のように等号の向きが逆になる。

(defrule
  (difficulty <= hard)
(can-build castle) => (build castle) )

map-size <map-size>

■説明
この条件はマップの大きさをチェックする。

■注釈
マップの大きさによって戦術を変えるときなどに使用する。下記の例はマップの大きさが「中」以上の場合、暗黒の時代に町の人を30人作成する。

(defrule
  (map-size >= medium)
  (current-age == dark-age)
  (unit-type-count villager < 30)
(can-train villager) => (train villager) )

map-type <map-type>

■説明
この条件はマップの種類をチェックする。

■注釈
マップの種類によって動作を変える場合に使用する。下記の例はマップの種類が「大陸」の場合、港を建設する。

(defrule
  (map-type continental)
(can-build dock) => (build dock) )

population-cap <rel-op> <value>

■説明
この条件は人口上限設定をチェックする。

■注釈
人口上限によって生産するユニットの数を調整するときなどに使用する条件。下記の条件は人口上限が150以上の場合、城主の時代以降は町の人を100人まで生産するルールである。

(defrule
(population-cap >= 150) (current-age >= castle-age) (unit-type-count villager < 100)
(can-train villager)
=> (train villager) )

starting-age <rel-op> <age>

■説明
この条件はゲームを開始する時代をチェックする。通常の時代パラメータに加えて「post-imperial-age」(帝王の時代以降)が使用できる。

■注釈
ゲームを開始する時代によって制御を変える場合に使用する条件。下記の例は、領主の時代以降でゲームが開始されたときにメッセージを表示するルールである。

(defrule
(starting-age >= feudal-age)
=> (chat-to-all "このAIは暗黒の時代開始のみ対応です。") (disable-self) )

starting-resources <rel-op> <starting-resources>

■説明
この条件は開始時の資源をチェックする。(少ない、普通、多い)

■注釈
ゲーム開始時の資源によって動作を変える場合に使用する条件。下記の例はゲーム開始時の資源が「多い」の場合、暗黒の時代に町の人を15人まで生産するルールである。

(defrule
(starting-resources == high-resources) (current-age == dark-age) (unit-type-count villager < 15)
(can-train villager)
=> (train villager) )

cheats-enabled

■説明
この条件はチートコマンドが有効になっているかチェックする。

■注釈
ゲーム設定でチートコマンドが有効な場合に動作を変えるために使用する。下記の例はチート有効設定の場合にチャットを表示する例である。

(defrule
(cheats-enabled)
=> (chat-to-all "チートコマンドのご使用はお控えください。") (disable-self) )