;----------------------------------------------------------- ; ; アラビアマップ用サンプルAI ; ;----------------------------------------------------------- ;●ゴールの初期化 (defrule (true) => (set-goal 1 0) ;ゴール1に0を設定 ) ;●機織りの研究 (defrule (unit-type-count villager >= 7) ;町の人が7人以上 (can-research ri-loom) ;機織りが研究可能 => (research ri-loom) ;機織りの研究をする (chat-local-to-self "機織りを研究します。") ) ;●町の人の設定 (defrule (true) => (set-strategic-number sn-percent-civilian-explorers 0) ;探索グループの割合(%) (set-strategic-number sn-percent-civilian-builders 10) ;建設グループの割合(%) (set-strategic-number sn-percent-civilian-gatherers 90) ;収集グループの割合(%) (set-strategic-number sn-cap-civilian-explorers 0) ;探索グループの最大数 (set-strategic-number sn-cap-civilian-builders 200) ;建設グループの最大数 (set-strategic-number sn-cap-civilian-gatherers 200) ;生産グループの最大数 (set-strategic-number sn-wood-gatherer-percentage 0) ;木を収集する人の割合 (set-strategic-number sn-food-gatherer-percentage 100) ;食料を収集する人の割合 (set-strategic-number sn-gold-gatherer-percentage 0) ;金を収集する人の割合 (set-strategic-number sn-stone-gatherer-percentage 0) ;石を収集する人の割合 (disable-self) ) ;●軍事ユニットの設定 (defrule (true) => (set-strategic-number sn-number-explore-groups 1) ;探索グループ数 (set-strategic-number sn-minimum-explore-group-size 1) ;探索グループの最小人数 (set-strategic-number sn-maximum-explore-group-size 1) ;探索グループの最大人数 (set-strategic-number sn-minimum-civilian-explorers 0) ;町の人の探索者数 (set-strategic-number sn-total-number-explorers 1) ;探索者数合計 (set-strategic-number sn-number-attack-groups 0) ;攻撃グループ数 (set-strategic-number sn-minimum-attack-group-size 0) ;攻撃グループの最小人数 (set-strategic-number sn-maximum-attack-group-size 0) ;攻撃グループの最大人数 (set-strategic-number sn-number-defend-groups 0) ;防御グループ数 (set-strategic-number sn-minimum-defend-group-size 0) ;防御グループの最小人数 (set-strategic-number sn-maximum-defend-group-size 0) ;防御グループの最大人数 (disable-self) ) ;●最初の家の建設 (defrule (can-build house) ;家が建設可能 => (build house) ;家を建設する (chat-local-to-self "家を建設します") (disable-self) ) ;●家の建設 (defrule (housing-headroom <= 2) ;家の残り人口許容数が2以下 (can-build house) ;家が建設可能 => (build house) ;家を建設する (chat-local-to-self "家を建設します") ) ;●暗黒の町の人の生産 (defrule (current-age == dark-age) ;暗黒の時代 (unit-type-count villager < 24) ;町の人が24人未満 (can-train villager) ;町の人を作成可能 => (train villager) ;町の人を生産する (chat-local-to-self "町の人を生産します") ) ;●粉ひき所の建設 (defrule (resource-found food) ;苺を発見済み (building-type-count-total mill == 0) ;粉ひき所が0個 (can-build mill) ;粉ひき所が建設可能 => (build mill) ;粉ひき所を建設する (chat-local-to-self "粉引き所を作ります。") ) ;●資源配分の変更 (defrule (current-age == dark-age) ;暗黒の時代 (unit-type-count villager == 7) ;町の人が7人 => (set-strategic-number sn-wood-gatherer-percentage 10) ;木を収集する人の割合 (set-strategic-number sn-food-gatherer-percentage 90) ;食料を収集する人の割合 (set-strategic-number sn-gold-gatherer-percentage 0) ;金を収集する人の割合 (set-strategic-number sn-stone-gatherer-percentage 0) ;石を収集する人の割合 (chat-local-to-self "資源配分の変更(木:10 食:90 金: 0 石: 0)") (disable-self) ) ;●資源配分の変更 (defrule (current-age == dark-age) ;暗黒の時代 (unit-type-count villager == 12) ;町の人が12人 => (set-strategic-number sn-wood-gatherer-percentage 20) ;木を収集する人の割合 (set-strategic-number sn-food-gatherer-percentage 80) ;食料を収集する人の割合 (set-strategic-number sn-gold-gatherer-percentage 0) ;金を収集する人の割合 (set-strategic-number sn-stone-gatherer-percentage 0) ;石を収集する人の割合 (chat-local-to-self "資源配分の変更(木:20 食:80 金: 0 石: 0)") (disable-self) ) ;●資源配分の変更 (defrule (current-age == dark-age) ;暗黒の時代 (unit-type-count villager == 15) ;町の人が15人 => (set-strategic-number sn-wood-gatherer-percentage 30) ;木を収集する人の割合 (set-strategic-number sn-food-gatherer-percentage 70) ;食料を収集する人の割合 (set-strategic-number sn-gold-gatherer-percentage 0) ;金を収集する人の割合 (set-strategic-number sn-stone-gatherer-percentage 0) ;石を収集する人の割合 (chat-local-to-self "資源配分の変更(木:30 食:70 金: 0 石: 0)") (disable-self) ) ;●資源配分の変更 (defrule (current-age == dark-age) ;暗黒の時代 (unit-type-count villager == 20) ;町の人が20人 => (set-strategic-number sn-wood-gatherer-percentage 40) ;木を収集する人の割合 (set-strategic-number sn-food-gatherer-percentage 60) ;食料を収集する人の割合 (set-strategic-number sn-gold-gatherer-percentage 0) ;金を収集する人の割合 (set-strategic-number sn-stone-gatherer-percentage 0) ;石を収集する人の割合 (chat-local-to-self "資源配分の変更(木:40 食:60 金: 0 石: 0)") (disable-self) ) ;●伐採所の建設 (defrule (resource-found wood) ;森発見済み (building-type-count-total mill >= 1) ;粉ひき所が1つ以上 (building-type-count-total lumber-camp == 0) ;伐採所が0個 (wood-amount >= 130) ;木が130以上 (can-build lumber-camp) ;伐採所が建設可能 => (build lumber-camp) ;伐採所を建設する (chat-local-to-self "伐採所を建設します。") ) ;●畑の建設 (defrule (building-type-count-total lumber-camp >= 1) ;伐採所が1以上 (wood-amount >= 90) ;木が90以上 (building-type-count-total farm < 4) ;畑が4枚未満 (can-build farm) ;畑が建設可能 => (build farm) ;畑を建設する (chat-local-to-self "畑を張ります。") ) ;●領主の時代の研究 (defrule (unit-type-count villager >= 24) ;町の人が24人以上 (can-research feudal-age) ;領主の時代が研究可能 => (research feudal-age) ;領主の時代の研究をする (set-goal 1 1) ;ゴール1に1を設定 (chat-local-to-self "領主の時代の研究をします。") ) ;●戦士育成所の建設 (defrule (current-age == dark-age) ;暗黒の時代 (goal 1 1) ;ゴール1が1 (building-type-count-total barracks == 0) ;戦士育成所がない (can-build barracks) ;戦士育成所が建設可能 => (build barracks) ;戦士育成所を建設する (chat-local-to-self "戦士育成所を建設します。") ) ;●資源配分の変更 (defrule (current-age == dark-age) ;暗黒の時代 (goal 1 1) ;ゴール1が1 => (set-strategic-number sn-wood-gatherer-percentage 70) ;木を収集する人の割合 (set-strategic-number sn-food-gatherer-percentage 30) ;食料を収集する人の割合 (set-strategic-number sn-gold-gatherer-percentage 0) ;金を収集する人の割合 (set-strategic-number sn-stone-gatherer-percentage 0) ;石を収集する人の割合 (chat-local-to-self "資源配分の変更(木:70 食:30 金: 0 石: 0)") (disable-self) )