; ======== Goals
(defconst goal-phase 3)
; =========== Initialization
;goals
(defrule ;strategic numbers (defrule ; ================ training/building ;villager training (defrule ;house building (defrule ;farm building (defrule ;mill building (defrule ;lumber camp building (defrule ;gold mining camp building (defrule (defrule ;archery-range building (defrule ; ============= Researching ;loom ;feudal age ;double-bit axe ;wheelbarrow ;castle age ; ============ Phases ;phase0 - starting out ;phase2 -advancing to feudal age ;phase3 - (defrule (defrule (defrule
(true)
=>
(set-goal goal-phase 0)
(disable-self)
)
(true)
=>
(set-strategic-number sn-minimum-boar-hunt-group-size 8)
(set-strategic-number sn-maximum-town-size 200)
(set-strategic-number sn-camp-max-distance 10)
(set-strategic-number sn-mill-max-distance 10)
(set-strategic-number sn-percent-enemy-sighted-response 100)
(set-strategic-number sn-enemy-sighted-response-distance 25)
(set-strategic-number sn-blot-exploration-map 1)
(set-strategic-number sn-task-ungrouped-soldiers 0)
(set-strategic-number sn-percent-attack-soldiers 100)
(set-strategic-number sn-number-explore-groups 1)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-minimum-explore-group-size 1)
(set-strategic-number sn-maximum-explore-group-size 1)
(set-strategic-number sn-maximum-food-drop-distance 5)
(set-strategic-number sn-maximum-wood-drop-distance 8)
(set-strategic-number sn-food-dropsite-distance 3)
(set-strategic-number sn-wood-dropsite-distance 3)
(set-strategic-number sn-retask-gather-amount 0)
(set-strategic-number sn-percentage-explore-exterminators 0)
(set-strategic-number sn-number-attack-groups 0)
(set-strategic-number sn-number-defend-groups 0)
(disable-self)
)
(current-age == dark-age)
(unit-type-count-total villager <
(can-train villager)
=>
(chat-to-all "train villager")
(train villager)
)
(current-age == dark-age)
(building-type-count-total house <
(housing-headroom <
(can-build house)
=>
(chat-to-all "build house")
(build house)
)
(building-type-count lumber-camp >
(building-type-count mill >
(idle-farm-count <
(sheep-and-forage-too-far)
(building-type-count-total farm <
(can-build farm)
=>
(chat-to-all "build farm")
(build farm)
)
(building-type-count-total house >
(building-type-count-total mill == 0)
(resource-found food)
(can-build mill)
=>
(chat-to-all "build mill")
(build mill)
)
(building-type-count-total lumber-camp == 0)
(building-type-count-total mill >
(resource-found wood)
(housing-headroom >
(can-build lumber-camp)
=>
(chat-to-all "build lumbercamp")
(build lumber-camp)
)
(building-type-count-total mining-camp == 0)
(building-type-count-total mill >
(building-type-count-total lumber-camp >
(unit-type-count-total villager >
(resource-found gold)
(housing-headroom >
(can-build mining-camp)
=>
(chat-to-all "build mining camp")
(build mining-camp)
)
;barracks building
(building-type-count-total barracks == 0)
(housing-headroom >
(building-type-count-total mining-camp >
(unit-type-count villager >
(can-build barracks)
=>
(chat-to-all "build barracks")
(build barracks)
)
(building-type-count-total archery-range <
(housing-headroom >
(can-build archery-range)
=>
(chat-to-all "build archery range")
(build archery-range)
)
(defrule
(current-age == dark-age)
(unit-type-count-total villager >
(can-research ri-loom)
=>
(chat-to-all "researching loom")
(research ri-loom)
)
(defrule
(current-age == dark-age)
(unit-type-count-total villager == 29)
(can-research feudal-age)
(research-completed ri-loom)
=>
(chat-to-all "upgrading to feudal age")
(research feudal-age)
)
(defrule
(current-age == feudal-age)
(can-research ri-double-bit-axe)
=>
(chat-to-all "researching double-bit axe")
(research ri-double-bit-axe)
)
(defrule
(current-age == feudal-age)
(can-research ri-wheel-barrow)
=>
(chat-to-all "reaserching wheelbarrow")
(research ri-wheel-barrow)
)
(defrule
(current-age == feudal-age)
(research-completed ri-double-bit-axe)
(research-completed ri-wheel-barrow)
(can-research castle-age)
=>
(chat-to-all "upgrading to castle age")
(research castle-age)
)
(defrule
(goal goal-phase 0)
=>
(set-strategic-number sn-percent-civilian-gatherers 65)
(set-strategic-number sn-percent-civilian-builders 35)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-cap-civilian-gatherers 29)
(set-strategic-number sn-cap-civilian-builders 1)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-food-gatherer-percentage 100)
(set-strategic-number sn-wood-gatherer-percentage 0)
(set-strategic-number sn-gold-gatherer-percentage 0)
(set-strategic-number sn-stone-gatherer-percentage 0)
)
;phase1 - after first 8 villagers
(defrule
(goal goal-phase 1)
=>
(set-strategic-number sn-percent-civilian-gatherers 80)
(set-strategic-number sn-percent-civilian-builders 20)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-cap-civilian-gatherers 29)
(set-strategic-number sn-cap-civilian-builders 2)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-food-gatherer-percentage 70)
(set-strategic-number sn-wood-gatherer-percentage 30)
(set-strategic-number sn-gold-gatherer-percentage 0)
(set-strategic-number sn-stone-gatherer-percentage 0)
)
(defrule
(goal goal-phase 2)
=>
(set-strategic-number sn-percent-civilian-gatherers 90)
(set-strategic-number sn-percent-civilian-builders 10)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-cap-civilian-gatherers 29)
(set-strategic-number sn-cap-civilian-builders 2)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-food-gatherer-percentage 60)
(set-strategic-number sn-wood-gatherer-percentage 30)
(set-strategic-number sn-gold-gatherer-percentage 10)
(set-strategic-number sn-stone-gatherer-percentage 0)
)
(defrule
(goal goal-phase 3)
=>
(set-strategic-number sn-percent-civilian-gatherers 80)
(set-strategic-number sn-percent-civilian-builders 20)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-cap-civilian-gatherers 29)
(set-strategic-number sn-cap-civilian-builders 4)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-food-gatherer-percentage 60)
(set-strategic-number sn-wood-gatherer-percentage 30)
(set-strategic-number sn-gold-gatherer-percentage 10)
(set-strategic-number sn-stone-gatherer-percentage 0)
)
; ===========Switching through phases
(goal goal-phase 0)
(unit-type-count-total villager >
=>
(chat-to-all "phase 2")
(set-goal goal-phase 1)
)
(goal goal-phase 1)
(unit-type-count-total villager >
=>
(chat-to-all "phase 3")
(set-goal goal-phase 2)
)
(goal goal-phase 2)
(current-age == feudal-age)
=>
(chat-to-all "phase 4")
(set-goal goal-phase 3)
)