- UID
- 354281
- 阅读权限
- 50
- 注册时间
- 2020-4-22
- 最后登录
- 2023-10-23
- 在线时间
- 635 小时
伯爵
- 耕战
- 100
- 鹰币
- 320
- 天龙币
- 0
- 回帖
- 30
|
本帖最后由 wangzhen 于 2022-5-27 09:41 编辑
#load-if-defined MIGRATION-MAP;移民
(defconst migration-style 1)
(defconst migration-position position-center);地图中心
(defconst instant-dock 0)
#else
#load-if-defined PACIFIC-ISLANDS-MAP;太平洋岛屿地图
(defconst migration-style 1)
(defconst migration-position position-center);地图中心
(defconst instant-dock 0)
#else
#load-if-defined HAMBURGER-MAP;汉堡包地图
(defconst migration-style 1)
(defconst migration-position position-border);边缘
(defconst instant-dock 0)
#else
#load-if-defined NILE-DELTA-MAP;尼罗河三角洲地图
(defconst migration-style 1)
#load-if-defined UP-PLAYER-1
(defconst migration-position position-zero);地图最左
#else
#load-if-defined UP-PLAYER-2
(defconst migration-position position-zero);地图最左
#else
#load-if-defined UP-PLAYER-5
(defconst migration-position position-zero);地图最左
#else
#load-if-defined UP-PLAYER-6
(defconst migration-position position-zero);地图最左
#else
(defconst migration-position position-map-size);地图最右
#end-if
#end-if
#end-if
#end-if
(defconst instant-dock 0); 1
#else
#load-if-defined REAL-WORLD-WORLD-MAP;真实世界
(defconst migration-style 1)
(defconst migration-position position-center);地图中心
(defconst instant-dock 0)
#else
(defconst migration-style 0)
(defconst migration-position position-mirror);镜像
(defconst instant-dock 0)
#end-if
#end-if
#end-if
#end-if
#end-if
#load-if-defined REAL-WORLD-WORLD-MAP;真实世界 世界地图
(defrule
(game-time < 360)
(up-compare-goal starting-zone g:== migration-zone)
=>
(up-get-point migration-position migration-point-x)
(up-bound-precise-point migration-point-x 0 c: 4)
(up-get-point-zone migration-point-x migration-zone)
;;;;;
;按玩家人数设定位置
#load-if-defined UP-PLAYER-1
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 308)
(set-goal saved-point-y 412))
#end-if
#load-if-defined UP-PLAYER-2
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 375)
(set-goal saved-point-y 230))
#end-if
#load-if-defined UP-PLAYER-3
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 355)
(set-goal saved-point-y 305))
#end-if
#load-if-defined UP-PLAYER-4
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 200)
(set-goal saved-point-y 280))
#end-if
#load-if-defined UP-PLAYER-5
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 290)
(set-goal saved-point-y 220))
#end-if
#load-if-defined UP-PLAYER-6
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 125)
(set-goal saved-point-y 75))
#end-if
#load-if-defined UP-PLAYER-7
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 170)
(set-goal saved-point-y 65))
#end-if
#load-if-defined UP-PLAYER-8
(defrule
(game-time < 360)
=>
(set-goal saved-point-x 120)
(set-goal saved-point-y 180))
#end-if
(defrule
(game-time >= 360)
=>
(up-ungarrison c: transport-ship)
(disable-self))
#end-if
;;;;
(defrule
(true)
=>
(up-full-reset-search)
(up-filter-include -1 -1 -1 off-mainland);非主大陆
(up-filter-status c: status-ready c: list-active);树木
(up-find-resource c: wood c: 240)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:= remote-total)
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-full-reset-search)
(up-filter-include -1 -1 -1 off-mainland)
(up-filter-status c: status-resource c: list-active)
(up-find-resource c: wood c: 240)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total))
(defrule
(up-compare-goal temporary-goal2 g:< temporary-goal)
=>
(up-modify-goal temporary-goal2 g:+ remote-total)
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-full-reset-search)
(up-filter-include -1 -1 -1 off-mainland)
(up-filter-status c: status-resource c: list-active)
(up-find-resource c: gold c: 240)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:+ remote-total)
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-full-reset-search)
(up-find-resource c: stone c: 240)
(up-filter-status c: status-resource c: list-active))
(defrule
(up-compare-goal temporary-goal2 g:< temporary-goal)
=>
(up-filter-include -1 -1 -1 off-mainland)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:+ remote-total)
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-set-target-point position-self-x)
(up-full-reset-search)
(up-filter-distance s: sn-safe-town-size c: -1)
(up-filter-status c: status-ready c: list-active)
(up-find-resource c: wood c: 240)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:= remote-total)
(up-clean-search search-remote object-data-distance search-order-desc)); asc
(defrule
(up-compare-goal temporary-goal2 g:< temporary-goal)
=>
(up-set-target-object search-remote c: 0)
(up-full-reset-search)
(up-filter-distance s: sn-safe-town-size c: -1)
(up-filter-status c: status-resource c: list-active)
(up-find-resource c: wood c: 240)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:+ remote-total)
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-full-reset-search)
(up-filter-distance s: sn-safe-town-size c: -1)
(up-filter-status c: status-resource c: list-active)
(up-find-resource c: gold c: 240)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone))
(defrule
(up-compare-goal temporary-goal2 g:< temporary-goal)
=>
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:+ remote-total)
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-full-reset-search)
(up-find-resource c: stone c: 240)
(up-filter-status c: status-resource c: list-active)
(up-filter-distance s: sn-safe-town-size c: -1)
(up-remove-objects search-remote object-data-map-zone-id g:== starting-zone)
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:+ remote-total))
(defrule
(up-compare-goal temporary-goal2 g:>= temporary-goal)
=>
(up-clean-search search-remote object-data-distance search-order-desc); asc
(up-set-target-object search-remote c: 0)
(up-get-object-data object-data-map-zone-id temporary-goal3)
(up-remove-objects search-remote object-data-map-zone-id g:!= temporary-goal3)
(up-get-search-state local-total))
(defrule
(up-compare-goal remote-total >= 2)
(up-compare-goal temporary-goal2 g:>= temporary-goal)
=>
; (up-chat-data-to-player my-player-number "temporary-goal2: %d" g: temporary-goal2)
; (up-chat-data-to-player my-player-number "temporary-goal: %d" g: temporary-goal)
(up-chat-data-to-player my-player-number "Found migration point: %d" g: remote-total)
(up-set-target-object search-remote c: 0)
(up-get-point position-object migration-point-x)
(up-set-target-point migration-point-x)
(up-get-point-zone migration-point-x migration-zone)); end jump
(defrule
(game-time < 5)
(up-point-distance point-x saved-point-x >= 1)
(or (goal migration-zone -1)
(or (goal migration-point-x -1)
(goal migration-point-y -1)))
=>
(up-copy-point migration-point-x saved-point-x); (up-get-point migration-position migration-point-x)
(up-bound-precise-point migration-point-x 0 c: 4)
(up-get-point-zone migration-point-x migration-zone)
(disable-self))
,,,,,,
(defrule
(building-type-count town-center <= 0)
(unit-type-count villager >= 1)
=>
(up-full-reset-search)
(up-find-local c: villager-class c: 1)
(up-set-target-object search-local c: 0)
(up-get-point position-object position-self-x)
(up-get-point-zone position-self-x main-zone))
(defrule
(building-type-count town-center >= 1)
=>
(up-full-reset-search)
(up-find-local c: town-center c: 1)
(up-set-target-object search-local c: 0)
(up-get-point position-object position-self-x)
(up-get-point-zone position-self-x main-zone)
(up-get-object-data object-data-id position-self-id)
; (up-get-object-data object-data-no-convert temporary-goal)
; (up-chat-data-to-player my-player-number "t-g: %d" g: temporary-goal)
(up-modify-sn sn-safe-town-size s:= sn-maximum-town-size)
(up-modify-sn sn-safe-town-size c:max 16); 14
(up-modify-sn sn-safe-town-size c:min 48)); 44
(defrule
(up-compare-goal starting-zone <= -1)
(up-compare-goal position-self-x >= 0)
(up-compare-goal position-self-y >= 0)
(up-compare-goal position-self-x g:<= map-size)
(up-compare-goal position-self-y g:<= map-size)
=>
(up-get-point-zone position-self-x starting-zone)
; (up-chat-data-to-self "starting-zone: %d" g: starting-zone)
; (disable-self)
(defrule
(game-time >= 2)
(unit-type-count transport-ship >= 1)
(unit-type-count villager >= 1)
(building-type-count town-center <= 0)
=>
(up-garrison transport-ship c: villager-class)
(up-garrison transport-ship c: scout-cavalry-class)
(up-garrison transport-ship c: infantry-class)
(up-garrison transport-ship c: king-class)
(set-goal inseln yes)
(set-goal migration-state 1)
(disable-self))
#end-if
(defrule
(up-compare-const scenario-game == 1)
(building-type-count-total town-center <= 1)
=>
(up-jump-rule 2))
(defrule
(or (up-compare-goal migration-state != 1)
(or (building-available town-center)
(or (up-research-status c: castle-age >= research-pending)
(or (up-research-status c: feudal-age == research-pending); jic
(or (up-research-status c: ri-loom == research-pending)
(or (up-pending-objects c: villager >= 1)
(or (unit-type-count villager <= 0); jic
(unit-type-count transport-ship <= 0))))))))
=>
(up-jump-rule 1))
(defrule
(building-type-count town-center >= 1)
(wood-amount >= 100); 275
(or (up-idle-unit-count idle-type-villager g:>= villagercount)
(and (game-time >= 90)
(and (housing-headroom <= 0)
(population-headroom >= 1))))
(up-compare-const sd-game != 1)
=>
(up-full-reset-search)
(up-find-local c: town-center c: 16)
(up-remove-objects search-local object-data-map-zone-id g:!= starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone)
(up-target-point 0 action-delete -1 -1)
(disable-self));; end mini jump
(defrule
(or (up-compare-goal migration-state != 1)
(or (and (not (building-available town-center))
(up-research-status c: castle-age <= research-available))
(up-timer-status threesec == timer-running)))
=>
(up-jump-rule 39))
(defrule
(true); (soldier-count >= 1)
=>
(up-full-reset-search)
(up-filter-include cmdid-military actionid-enter -1 -1)
(up-find-local c: all-units-class c: 240)
(up-target-point 0 action-stop -1 -1)
(disable-self))
(defrule
(true)
=>
(up-modify-goal temporary-goal s:= sn-focus-player-number)
(set-strategic-number sn-focus-player-number my-player-number)
(up-get-point-zone migration-point-x migration-zone)
; (up-send-flare migration-point-x)
(set-goal temporary-goal2 0)
(set-goal temporary-goal3 0)
(set-goal temporary-goal5 0)
(set-goal temporary-goal6 16384)
(set-goal temporary-goal7 0)
(up-modify-goal temporary-goal8 g:= escrow-state)
(set-goal escrow-state with-escrow))
(defrule
(building-type-count town-center >= 1)
=>
(up-full-reset-search)
(up-find-local c: villager-class g: villagercount)
(up-remove-objects search-local object-data-map-zone-id g:!= starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone);
(up-get-search-state local-total)
(up-modify-goal temporary-goal2 g:= local-total)
(up-find-local c: town-center c: 16)
(up-remove-objects search-local object-data-map-zone-id g:!= starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone);
(up-get-search-state local-total)
(up-modify-goal temporary-goal3 g:= local-total)
(up-find-remote c: town-center c: 16)
(up-find-remote c: villager-class g: villagercount)
(up-remove-objects search-remote object-data-map-zone-id g:!= migration-zone))
(defrule
(building-type-count town-center >= 1)
=>
(up-get-search-state local-total)
(up-modify-goal temporary-goal4 g:= remote-total)
; (up-full-reset-search)
(up-filter-garrison c: 1 c: -1)
(up-find-local c: transport-ship c: maxtransports)
(up-get-search-state local-total)
; (up-chat-data-to-player my-player-number "remote-total delete: %d" g: remote-total)
; (up-chat-data-to-player my-player-number "local-total delete: %d" g: local-total)
; (up-chat-data-to-player my-player-number "temporary-goal2 delete: %d" g: temporary-goal2)
; (up-chat-data-to-player my-player-number "temporary-goal3 delete: %d" g: temporary-goal3)
; (up-chat-data-to-player my-player-number "temporary-goal4 delete: %d" g: temporary-goal4)
; (up-chat-data-to-player my-player-number "starting-zone delete: %d" g: starting-zone)
; (up-chat-data-to-player my-player-number "migration-zone delete: %d" g: migration-zone)
)
(defrule
(up-compare-goal local-total <= 0); last
(up-compare-goal temporary-goal2 <= 0);
(or (up-compare-goal temporary-goal3 <= 0);
(up-compare-const sd-game == 1))
(up-compare-goal temporary-goal4 >= 1)
(building-type-count town-center >= 1)
=>
; (up-chat-data-to-player my-player-number "starting-zone: %d" g: starting-zone)
; (up-chat-data-to-player my-player-number "migration-zone: %d" g: migration-zone)
(set-strategic-number sn-total-number-explorers 0);
(set-strategic-number sn-number-explore-groups 0);
(up-reset-scouts);
(set-goal migration-state 2); 0
(up-chat-data-to-player my-player-number "Migration-state: %d" g: migration-state)
(up-jump-rule 1))
(defrule
(up-compare-goal temporary-goal2 >= 1)
(up-compare-goal temporary-goal3 g:<= temporary-goal2)
(up-compare-goal temporary-goal4 >= 1)
(building-type-count town-center >= 1)
(unit-type-count-total villager >= min-number-vills)
(or (timer-triggered one-min); back-up
(or (housing-headroom <= 0); back-up
(or (up-compare-goal custom-civ-pop >= up-max-civ); >
(population >= max-civ-pop)))); >
=>
; (chat-local-to-self "Migration: Deleting villager.")
(up-remove-objects search-local object-data-class != villager-class)
;tf (up-clean-search search-local object-data-action search-order-desc)
(up-clean-search search-local object-data-carry search-order-asc)
(up-remove-objects search-local object-data-index >= 1)
(up-target-point 0 action-delete -1 -1))
(defrule
(building-type-count dock >= 1)
=>
(up-full-reset-search)
(up-find-local c: dock c: 1)
(up-set-target-object search-local c: 0)
(up-get-point position-object point-x)
(up-get-point-zone point-x temporary-goal6)
; (up-chat-data-to-self "starting-zone: %d" g: starting-zone)
; (up-chat-data-to-self "temporary-goal6: %d" g: temporary-goal6)
; (up-chat-data-to-self "migration-zone: %d" g: migration-zone)
)
(defrule
(unit-type-count transport-ship >= 1)
(goal transport-state 2)
=>
(up-full-reset-search)
(up-filter-exclude -1 actionid-move -1 -1)
(up-find-local c: transport-ship c: maxtransports)
(up-set-target-object search-local c: 0)
(up-get-point position-object temporary-point-x)
(up-lerp-tiles temporary-point-x migration-point-x c: -8)
(up-set-target-point temporary-point-x)
(up-target-point 0 action-move -1 -1)
(disable-self)
(up-jump-rule 1)); don't block vills
(defrule
(unit-type-count transport-ship >= 1)
(goal transport-state 2)
=>
(up-full-reset-search)
(up-filter-include -1 actionid-move -1 -1)
(up-filter-garrison c: -1 c: 0); 4
(up-find-local c: transport-ship c: maxtransports)
(up-get-search-state local-total)
(up-chat-data-to-self "Stopping transports: %d." g: local-total)
(up-target-point 0 action-stop -1 -1)
(set-goal transport-state 0))
(defrule
(unit-type-count transport-ship >= 1)
=>
; (up-full-reset-search)
; (up-filter-garrison c: 1 c: -1)
; (up-find-local c: transport-ship c: maxtransports)
; (up-set-target-object search-local c: 0)
; (up-get-point position-object point-x)
; (up-get-point-zone point-x temporary-goal8)
;; (up-chat-data-to-all "temporary-goal8: %d" g: temporary-goal8)
(up-full-reset-search)
(up-filter-exclude -1 actionid-unload -1 -1)
(up-find-local c: transport-ship c: maxtransports)
(up-remove-objects search-local object-data-action == actionid-move)
(up-get-search-state local-total)
(up-modify-goal temporary-goal3 g:= local-total)
(up-full-reset-search)
(up-filter-include -1 actionid-enter -1 -1)
(up-find-local c: villager-class g: villagercount)
(up-remove-objects search-local object-data-map-zone-id g:!= starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone);
(up-get-search-state local-total)
(up-chat-data-to-self "local-total entering: %d" g: local-total)
(up-modify-goal temporary-goal2 g:= local-total))
(defrule
(or (timer-triggered two-mins)
(and (timer-triggered one-min)
(up-compare-goal temporary-goal3 >= 1)))
(up-compare-goal local-total >= 1)
(unit-type-count transport-ship >= 1)
=>
(up-chat-data-to-self "Resetting %d villagers with action-enter." g: local-total)
(up-target-point 0 action-stop -1 -1)
(up-full-reset-search))
(defrule
(up-compare-goal local-total <= 0)
(unit-type-count transport-ship >= 1)
=>
(up-full-reset-search)
(up-find-local c: villager-class g: villagercount)
(up-remove-objects search-local object-data-map-zone-id g:!= starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone);
(up-filter-garrison c: -1 c: 4)
(up-find-remote c: transport-ship c: maxtransports)
(up-get-search-state local-total)
; (up-chat-data-to-self "local-total entering: %d" g: local-total)
; (up-chat-data-to-self "remote-total entering: %d" g: remote-total)
; (up-chat-data-to-self "sn-entering: %d" s: sn-focus-player-number)
(up-modify-goal remote-total c:* 5)
(up-modify-goal remote-total g:- temporary-goal2)
(up-set-target-object search-remote c: 0)
(up-get-object-data object-data-garrison-count temporary-goal3)
(up-modify-goal remote-total g:- temporary-goal3)
; (up-get-search-state local-total)
(set-goal temporary-goal3 1))
(defrule
(goal temporary-goal3 1)
(up-compare-goal local-total >= 1)
(up-compare-goal remote-total >= 1)
=>
(up-get-point position-object point-x)
(up-set-target-point point-x)
(up-clean-search search-local object-data-distance search-order-asc)
(up-remove-objects search-local object-data-index g:>= remote-total)
(up-get-search-state local-total)
(up-chat-data-to-self "local-total enter: %d" g: local-total)
(up-target-objects 0 action-garrison -1 -1)
(set-goal transport-state 1)
(up-jump-rule 8))
(defrule
(unit-type-count transport-ship >= 1)
(or (up-compare-goal local-total <= 0)
(up-compare-goal remote-total <= 0))
=>
(up-full-reset-search)
(up-filter-garrison c: 1 c: -1)
(up-find-local c: transport-ship c: maxtransports)
(up-remove-objects search-local object-data-map-zone-id g:== starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:!= migration-zone)
(up-get-search-state local-total)
(up-chat-data-to-self "local-total unload #1: %d" g: local-total)
(set-goal temporary-goal5 1))
(defrule
(up-compare-goal temporary-goal5 <= 0)
(unit-type-count transport-ship >= 1); escrow everything else until we're done
(or (up-compare-goal local-total <= 0); save point of where villagers entered
(up-compare-goal remote-total <= 0)); and then unload if not moving and X tiles away
=>
(up-full-reset-search)
(up-filter-garrison c: 1 c: -1)
(up-filter-exclude -1 actionid-move -1 -1)
(up-find-local c: transport-ship c: maxtransports)
(up-set-target-object search-local c: 0)
(up-get-point position-object point-x)
; (up-get-point-zone point-x temporary-goal8)
(up-remove-objects search-local object-data-map-zone-id g:== starting-zone)
(up-remove-objects search-local object-data-map-zone-id g:== temporary-goal6)
; (up-chat-data-to-self "starting-zone: %d" g: starting-zone)
; (up-chat-data-to-self "temporary-goal6: %d" g: temporary-goal6)
; (up-chat-data-to-self "temporary-goal8: %d" g: temporary-goal8)
(up-get-search-state local-total)
(up-chat-data-to-self "local-total unload #2: %d" g: local-total)
(set-goal temporary-goal5 1)); end jump
(defrule
(goal temporary-goal5 1)
(up-compare-goal local-total >= 1)
=>
(up-set-target-object search-local c: 0)
(up-get-point position-object point-x)
(up-set-target-point point-x)
; (up-send-flare point-x)
(up-lerp-tiles point-x migration-point-x c: 1)
(up-target-point 0 action-unload -1 -1)
; (up-lerp-tiles point-x migration-point-x c: 1);
; (up-target-point 0 action-unload -1 -1);
(chat-local-to-self "Ungarrison.")
; (up-ungarrison c: transport-ship)
(set-goal transport-state 2))
(defrule
(up-compare-goal temporary-goal2 <= 0)
(or (up-compare-goal temporary-goal5 <= 0);
(up-compare-goal local-total <= 0))
(unit-type-count transport-ship >= 1)
=>
(up-full-reset-search)
(up-filter-garrison c: 1 c: -1)
(up-filter-exclude -1 actionid-move -1 -1)
(up-find-local c: transport-ship c: maxtransports)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone)
(up-get-search-state local-total)
(up-chat-data-to-self "local-total move0: %d" g: local-total)
(set-goal temporary-goal5 25))
(defrule
(goal temporary-goal5 25)
(up-compare-goal local-total >= 1)
(unit-type-count transport-ship >= 1)
=>
(up-chat-data-to-self "local-total move: %d" g: local-total)
(up-set-target-point migration-point-x)
; (up-send-flare migration-point-x)
(up-target-point 0 action-move -1 -1)
(up-jump-rule 3))
(defrule
(unit-type-count transport-ship >= 1)
(unit-type-count villager >= 1)
(strategic-number sn-percent-attack-soldiers <= 0)
(strategic-number sn-number-attack-groups <= 0)
=>
(up-full-reset-search)
(up-filter-garrison c: 1 c: -1)
(up-filter-include -1 actionid-move -1 -1)
(up-find-local c: transport-ship c: maxtransports)
(up-remove-objects search-local object-data-map-zone-id g:== migration-zone)
(up-remove-objects search-local object-data-index >= 1)
(up-get-search-state local-total))
(defrule
(up-compare-goal local-total >= 1)
(unit-type-count transport-ship >= 1)
(unit-type-count villager >= 1)
(strategic-number sn-percent-attack-soldiers <= 0)
(strategic-number sn-number-attack-groups <= 0)
=>
(up-set-target-object search-local c: 0)
(up-get-object-data object-data-move-x point-x)
(up-get-object-data object-data-move-y point-y))
(defrule
(up-point-distance point-x migration-point-x >= 1)
(up-compare-goal local-total >= 1)
(unit-type-count transport-ship >= 1)
(unit-type-count villager >= 1)
(strategic-number sn-percent-attack-soldiers <= 0)
(strategic-number sn-number-attack-groups <= 0)
=>
(chat-local-to-self "Trying to fix transport-ship.")
(set-goal temporary-goal5 25)
(up-jump-rule -4)); end jump
|
|