stratagus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Stratagus-CVS] demogame/ccl ai.ccl stratagus.ccl ui.ccl allian...


From: Martin Renold
Subject: [Stratagus-CVS] demogame/ccl ai.ccl stratagus.ccl ui.ccl allian...
Date: Wed, 08 Oct 2003 05:14:01 -0400

CVSROOT:        /cvsroot/stratagus
Module name:    demogame
Branch:         
Changes by:     Martin Renold <address@hidden>  03/10/08 05:14:01

Modified files:
        ccl            : ai.ccl stratagus.ccl ui.ccl 
Added files:
        ccl/alliance   : ai.ccl 
        ccl/mythical   : ai.ccl 

Log message:
        split ai into races; stripped down mythical ai; merged engine changes

Patches:
Index: demogame/ccl/ai.ccl
diff -u demogame/ccl/ai.ccl:1.5 demogame/ccl/ai.ccl:1.6
--- demogame/ccl/ai.ccl:1.5     Tue Oct  7 15:18:54 2003
+++ demogame/ccl/ai.ccl Wed Oct  8 05:14:00 2003
@@ -26,12 +26,21 @@
 ;;      along with this program; if not, write to the Free Software
 ;;      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 ;;
-;;     $Id: ai.ccl,v 1.5 2003/10/07 19:18:54 martinxyz Exp $
+;;     $Id: ai.ccl,v 1.6 2003/10/08 09:14:00 martinxyz Exp $
 
-;(define (ai:sleep) () #t)
+;; AI fallback script
+(define-ai "idle-o-matic" "*" "passive"
+  '(
+    (ai:sleep  10000)
+    (ai:restart)
+    ))
 
-(define race1 'alliance)
-(define race2 'mythical)
+;; Load the race specific ai
+(load "ccl/alliance/ai.ccl" #f #t)
+(load "ccl/mythical/ai.ccl" #f #t)
+
+; The rest of this file contains only docu comments, which should be removed
+; from here and added to stratagus/doc/ccl/ai.html if necessary.
 
 ;;=============================================================================
 ;;
@@ -45,184 +54,6 @@
 ;;     (define-ai-helper (list))
 ;;
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;     * Race alliance.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-ai-helper
-    ;;
-    ;; Unit can build which buildings.
-    ;;
-    (list 'build 'unit-peasant
-       'unit-farm 'unit-alliance-barracks 'unit-town-hall 
'unit-elven-lumber-mill
-       'unit-alliance-blacksmith 'unit-alliance-watch-tower 'unit-human-wall
-       'unit-alliance-shipyard 'unit-alliance-foundry 'unit-human-refinery
-       'unit-inventor 'unit-stables 'unit-mage-tower 'unit-church
-       'unit-gryphon-aviary 'unit-dark-portal 'unit-runestone)
-    (list 'build 'unit-human-oil-tanker 'unit-alliance-oil-platform)
-    ;;
-    ;; Building can train which units.
-    ;;
-    (list 'train 'unit-farm 'unit-critter)
-    (list 'train 'unit-town-hall 'unit-peasant)
-    (list 'train 'unit-keep 'unit-peasant)
-    (list 'train 'unit-castle 'unit-peasant)
-    (list 'train 'unit-alliance-barracks
-       'unit-footman 'unit-archer 'unit-ranger 'unit-ballista 'unit-knight
-       'unit-paladin)
-    (list 'train 'unit-inventor
-       'unit-balloon 'unit-dwarves)
-    (list 'train 'unit-mage-tower 'unit-mage)
-    (list 'train 'unit-gryphon-aviary 'unit-gryphon-rider)
-    (list 'train 'unit-alliance-shipyard
-       'unit-human-oil-tanker 'unit-alliance-destroyer 'unit-alliance-transport
-       'unit-alliance-submarine 'unit-battleship)
-    ;;
-    ;; Building can upgrade which upgrades.
-    ;;
-    (list 'upgrade 'unit-town-hall 'unit-keep)
-    (list 'upgrade 'unit-keep 'unit-castle)
-    (list 'upgrade 'unit-alliance-watch-tower
-       'unit-alliance-guard-tower 'unit-alliance-cannon-tower)
-    ;;
-    ;; Building can research which spells or upgrades.
-    ;;
-    (list 'research 'unit-alliance-blacksmith
-       'upgrade-sword1 'upgrade-sword2
-       'upgrade-alliance-shield1 'upgrade-alliance-shield2
-       'upgrade-ballista1 'upgrade-ballista2)
-    (list 'research 'unit-elven-lumber-mill
-       'upgrade-arrow1 'upgrade-arrow2 'upgrade-ranger
-       'upgrade-ranger-scouting 'upgrade-longbow 'upgrade-ranger-marksmanship)
-    (list 'research 'unit-church
-       'upgrade-paladin 'upgrade-healing 'upgrade-exorcism)
-    (list 'research 'unit-mage-tower
-       'upgrade-slow 'upgrade-flame-shield 'upgrade-invisibility
-       'upgrade-polymorph 'upgrade-blizzard)
-    (list 'research 'unit-alliance-foundry
-       'upgrade-alliance-ship-cannon1 'upgrade-alliance-ship-cannon2
-       'upgrade-alliance-ship-armor1 'upgrade-alliance-ship-armor2)
-    ;;
-    ;; Unit can repair which units.
-    ;;
-    (list 'repair 'unit-peasant
-       'unit-farm 'unit-alliance-barracks 'unit-town-hall 'unit-keep 
'unit-castle
-       'unit-elven-lumber-mill 'unit-alliance-blacksmith 
'unit-alliance-watch-tower
-       'unit-alliance-guard-tower 'unit-alliance-cannon-tower 'unit-human-wall
-       'unit-alliance-shipyard 'unit-alliance-foundry 'unit-human-refinery
-       'unit-inventor 'unit-stables 'unit-mage-tower 'unit-church
-       'unit-gryphon-aviary 'unit-dark-portal 'unit-runestone
-       'unit-alliance-transport)
-    ;;
-    ;; Reduce unit limits.
-    ;;
-    (list 'unit-limit 'unit-farm 'food)
-    ;;
-    ;; Equivalence of units for the resource manager.
-    ;;
-    (list 'unit-equiv 'unit-town-hall
-       'unit-keep 'unit-castle)
-    (list 'unit-equiv 'unit-keep
-       'unit-castle)
-    (list 'unit-equiv 'unit-archer
-       'unit-ranger)
-    (list 'unit-equiv 'unit-knight
-       'unit-paladin)
-    (list 'unit-equiv 'unit-peasant)
-    (list 'unit-equiv 'unit-human-oil-tanker)
-    (list 'unit-equiv 'unit-alliance-watch-tower
-        'unit-alliance-guard-tower 'unit-alliance-cannon-tower) )
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;     * Race mythical.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-ai-helper
-    ;;
-    ;; Unit can build which buildings.
-    ;;
-    (list 'build 'unit-faun
-       'unit-pig-farm 'unit-mythical-barracks 'unit-great-hall
-       'unit-troll-lumber-mill 'unit-mythical-blacksmith 
'unit-mythical-watch-tower
-       'unit-orc-wall 'unit-mythical-shipyard 'unit-mythical-foundry 
'unit-orc-refinery
-       'unit-alchemist 'unit-ogre-mound 'unit-temple-of-the-damned
-       'unit-altar-of-storms
-       'unit-dragon-roost 'unit-dark-portal 'unit-runestone)
-    (list 'build 'unit-orc-oil-tanker 'unit-mythical-oil-platform)
-    ;;
-    ;; Building can train which units.
-    ;;
-    (list 'train 'unit-pig-farm 'unit-critter)
-    (list 'train 'unit-great-hall 'unit-faun)
-    (list 'train 'unit-stronghold 'unit-faun)
-    (list 'train 'unit-fortress 'unit-faun)
-    (list 'train 'unit-mythical-barracks
-       'unit-grunt 'unit-axethrower 'unit-berserker 'unit-catapult 'unit-ogre
-       'unit-ogre-mage)
-    (list 'train 'unit-alchemist
-       'unit-zeppelin 'unit-goblin-sappers)
-    (list 'train 'unit-temple-of-the-damned 'unit-death-knight)
-    (list 'train 'unit-dragon-roost 'unit-dragon)
-    (list 'train 'unit-mythical-shipyard
-       'unit-orc-oil-tanker 'unit-mythical-destroyer 'unit-mythical-transport
-       'unit-mythical-submarine 'unit-ogre-juggernaught)
-    ;;
-    ;; Building can upgrade which upgrades.
-    ;;
-    (list 'upgrade 'unit-great-hall 'unit-stronghold)
-    (list 'upgrade 'unit-stronghold 'unit-fortress)
-    (list 'upgrade 'unit-mythical-watch-tower
-       'unit-mythical-guard-tower 'unit-mythical-cannon-tower)
-    ;;
-    ;; Building can research which spells or upgrades.
-    ;;
-    (list 'research 'unit-mythical-blacksmith
-       'upgrade-battle-axe1 'upgrade-battle-axe2
-       'upgrade-mythical-shield1 'upgrade-mythical-shield2
-       'upgrade-catapult1 'upgrade-catapult2)
-    (list 'research 'unit-troll-lumber-mill
-       'upgrade-throwing-axe1 'upgrade-throwing-axe2 'upgrade-berserker
-       'upgrade-berserker-scouting 'upgrade-light-axes
-       'upgrade-berserker-regeneration)
-    (list 'research 'unit-altar-of-storms
-       'upgrade-ogre-mage 'upgrade-bloodlust 'upgrade-runes)
-    (list 'research 'unit-temple-of-the-damned
-       'upgrade-haste 'upgrade-raise-dead 'upgrade-whirlwind
-       'upgrade-unholy-armor 'upgrade-death-and-decay)
-    (list 'research 'unit-mythical-foundry
-       'upgrade-mythical-ship-cannon1 'upgrade-mythical-ship-cannon2
-       'upgrade-mythical-ship-armor1 'upgrade-mythical-ship-armor2)
-    ;;
-    ;; Unit can build which units.
-    ;;
-    (list 'repair 'unit-faun
-       'unit-pig-farm 'unit-mythical-barracks 'unit-great-hall 'unit-stronghold
-       'unit-fortress 'unit-troll-lumber-mill 'unit-mythical-blacksmith
-       'unit-mythical-watch-tower 'unit-mythical-guard-tower 
'unit-mythical-cannon-tower
-       'unit-orc-wall 'unit-mythical-shipyard 'unit-mythical-foundry 
'unit-orc-refinery
-       'unit-alchemist 'unit-ogre-mound 'unit-temple-of-the-damned
-       'unit-altar-of-storms 'unit-dragon-roost 'unit-dark-portal
-       'unit-runestone 'unit-mythical-transport)
-    ;;
-    ;; Reduce unit limits.
-    ;;
-    (list 'unit-limit 'unit-pig-farm 'food)
-    ;;
-    ;; Equivalence of units for the resource manager.
-    ;;
-    (list 'unit-equiv 'unit-great-hall
-       'unit-stronghold 'unit-fortress)
-    (list 'unit-equiv 'unit-stronghold
-       'unit-fortress)
-    (list 'unit-equiv 'unit-axethrower
-       'unit-berserker)
-    (list 'unit-equiv 'unit-ogre
-       'unit-ogre-mage)
-    (list 'unit-equiv 'unit-faun)
-    (list 'unit-equiv 'unit-orc-oil-tanker)
-    (list 'unit-equiv 'unit-mythical-watch-tower
-        'unit-mythical-guard-tower 'unit-mythical-cannon-tower) )
-
 ;;=============================================================================
 ;;
 ;;     AI Script commands
@@ -319,2419 +150,4 @@
 ;;     class   class of the AI for map editor.
 ;;     script  Main AI script.
 ;;
-(define-ai "wc2-passive" "*" "passive"
-  '(
-    ;; Define the main AI script.
-    (ai:sleep  10000)
-    (ai:restart)
-    ))
-
-;;=============================================================================
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;  grunt-rush tactics
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define ai:mythical-land-rush-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 0 'unit-grunt 15 'unit-ogre-mage 9 'unit-catapult 3)
-    (ai:force 1 'unit-grunt 20)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:mythical-land-rush-endloop) ) )
-
-(define-ai 'rush race2 "gruntrush"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:need (unit-type 'unit-great-hall))
-    (ai:set  'unit-faun 1)
-    (ai:wait 'unit-great-hall)
-    (ai:wait 'unit-faun)       ;; start hangs if nothing available
-
-    (ai:set  'unit-faun 10)
-    (ai:set  'unit-pig-farm 2)
-    (ai:need 'unit-mythical-barracks)
-    (ai:need 'unit-mythical-blacksmith)
-    (ai:force 1 'unit-grunt 1)
-    (ai:force 0 'unit-grunt 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-
-    (ai:force 0 'unit-grunt 2)
-    (ai:research 'upgrade-battle-axe1)
-    (ai:research 'upgrade-mythical-shield1)
-    (ai:research 'upgrade-battle-axe2)
-    (ai:research 'upgrade-mythical-shield2)
-    (ai:set  'unit-faun 20)
-    (ai:force 1 'unit-grunt 6)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:set 'unit-mythical-barracks 3)
-    (ai:force 1 'unit-grunt 20)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:set 'unit-mythical-barracks 6)
-    (ai:force 1 'unit-grunt 40)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:set  'unit-pig-farm 25)
-
-
-    (ai:force 0 'unit-grunt 9)
-    (ai:force 2 'unit-grunt 20)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:force 0 'unit-grunt 15)
-    (ai:force 1 'unit-grunt 20)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:need (unit-type 'unit-great-hall))
-
-    (ai:force 0 'unit-grunt 15)
-    (ai:force 2 'unit-grunt 80)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:force 1 'unit-grunt 20)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 2 'unit-grunt 20)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:force 1 'unit-grunt 20)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 2 'unit-grunt 20)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-
-
-
-
-    (ai:force 1 'unit-grunt 9)
-    (ai:force 2 'unit-grunt 4)
-    (ai:force 3 'unit-grunt 5)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:set 'unit-ogre-mound 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:force 0 'unit-grunt 9)
-    (ai:force 4 'unit-grunt 9)
-
-    (ai:set  'unit-faun 25)
-
-    (ai:set  'unit-pig-farm 20)
-    (ai:force 0 'unit-grunt 9 'unit-ogre 1)
-    (ai:force 1 'unit-grunt 9)
-    (ai:force 2 'unit-grunt 9)
-    (ai:force 3 'unit-grunt 12)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:set 'unit-mythical-barracks 9)
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:force 0 'unit-grunt 9 'unit-ogre 3)
-    (ai:force 1 'unit-grunt 14)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 3)
-
-    (ai:force 0 'unit-grunt 14 'unit-axethrower 2 'unit-ogre 5 'unit-catapult 
1)
-    (ai:force 1 'unit-grunt 9)
-    (ai:force 2 'unit-grunt 9)
-    (ai:force 3 'unit-grunt 9)
-    (ai:force 4 'unit-grunt 4)
-    (ai:force 5 'unit-grunt 9 'unit-ogre 3)
-    (ai:wait-force 4)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-    (ai:attack-with-force 4)
-
-    (ai:force 6 'unit-grunt 19)
-    (ai:force 7 'unit-grunt 19)
-
-    (ai:force 0 'unit-grunt 9 'unit-axethrower 9 'unit-ogre 9 'unit-catapult 2)
-    (ai:force 1 'unit-grunt 9 'unit-ogre 3)
-    (ai:wait-force 5)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 5)
-    (ai:attack-with-force 6)
-    (ai:attack-with-force 7)
-
-    (ai:force 1 'unit-grunt 9 'unit-ogre 2)
-    (ai:force 2 'unit-grunt 9)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:force 1 'unit-grunt 11 'unit-ogre 4)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 1 'unit-grunt 15)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 1 'unit-grunt 11 'unit-ogre 4)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 1 'unit-grunt 15)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-       (ai:sleep 500)
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 0 'unit-ranger 2
-       'unit-ogre-mage 6 'unit-catapult 1 'unit-death-knight 5)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 0 'unit-ranger 2
-       'unit-ogre-mage 2 'unit-catapult 1 'unit-death-knight 1)
-    (ai:force 2 'unit-dragon 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    ;;(ai:sleep 500)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-cannon-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:research 'upgrade-catapult1)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-cannon-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:research 'upgrade-catapult2)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-cannon-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:set  'unit-faun 25)
-
-    ;; Everything researched...
-
-    (ai:script ai:mythical-land-rush-endloop) ))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;  goldfever tactics
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define ai:mythical-goldfever-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 0 'unit-grunt 15)
-
-    (ai:sleep 500)
-    (ai:script ai:mythical-goldfever-endloop) ) )
-
-(define-ai 'goldfever race2 "goldfever"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:need (unit-type 'unit-great-hall))
-    (ai:set  'unit-faun 1)
-    (ai:wait 'unit-great-hall)
-    (ai:wait 'unit-faun)       ;; start hangs if nothing available
-
-    (ai:set  'unit-pig-farm 1)
-
-    (ai:set  'unit-faun 5)
-    (ai:wait 'unit-faun)
-
-    (ai:need 'unit-mythical-barracks)
-
-    (ai:set  'unit-faun 50)
-    (ai:script ai:mythical-goldfever-endloop) ))
-
-;;=============================================================================
-;;     Air Attack AI, this is an example for a multi race AI.
-;;=============================================================================
-
-;;
-;;     City-center of the current race.
-;;
-(define (ai:city-center)
-  (if (eq? (ai:get-race) race1)
-      'unit-town-hall 'unit-great-hall) )
-
-;;
-;;     Better city-center of the current race.
-;;
-(define (ai:better-city-center)
-  (if (eq? (ai:get-race) race1)
-      'unit-keep 'unit-stronghold) )
-
-;;
-;;     Best city-center of the current race.
-;;
-(define (ai:best-city-center)
-  (if (eq? (ai:get-race) race1)
-      'unit-castle 'unit-fortress) )
-
-;;
-;;     Worker of the current race.
-;;
-(define (ai:worker)
-  (if (eq? (ai:get-race) race1)
-      'unit-peasant 'unit-faun) )
-
-;;
-;;     Lumber mill of the current race.
-;;
-(define (ai:lumber-mill)
-  (if (eq? (ai:get-race) race1)
-      'unit-elven-lumber-mill 'unit-troll-lumber-mill) )
-
-;;
-;;     Blacksmith of the current race.
-;;
-(define (ai:blacksmith)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-blacksmith 'unit-mythical-blacksmith) )
-
-;;
-;;     Upgrade armor 1 of the current race.
-;;
-(define (ai:upgrade-armor-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-alliance-shield1 'upgrade-mythical-shield1) )
-
-;;
-;;     Upgrade armor 2 of the current race.
-;;
-(define (ai:upgrade-armor-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-alliance-shield2 'upgrade-mythical-shield2) )
-
-;;
-;;     Upgrade weapon 1 of the current race.
-;;
-(define (ai:upgrade-weapon-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-sword1 'upgrade-battle-axe1) )
-
-;;
-;;     Upgrade weapon 2 of the current race.
-;;
-(define (ai:upgrade-weapon-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-sword2 'upgrade-battle-axe2) )
-
-;;
-;;     Upgrade missile 1 of the current race.
-;;
-(define (ai:upgrade-missile-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-arrow1 'upgrade-throwing-axe1) )
-
-;;
-;;     Upgrade missile 2 of the current race.
-;;
-(define (ai:upgrade-missile-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-arrow2 'upgrade-throwing-axe2) )
-
-;;
-;;     Upgrade catapult 1 of the current race.
-;;
-(define (ai:upgrade-catapult-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-ballista1 'upgrade-catapult1) )
-
-;;
-;;     Upgrade catapult 2 of the current race.
-;;
-(define (ai:upgrade-catapult-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-ballista2 'upgrade-catapult2) )
-
-;;
-;;     Research of the current race.
-;;
-(define (ai:scientific)
-  (if (eq? (ai:get-race) race1)
-      'unit-inventor 'unit-alchemist) )
-
-;;
-;;     Cavalry of the current race.
-;;
-(define (ai:cavalry)
-  (if (eq? (ai:get-race) race1)
-      'unit-stables 'unit-ogre-mound) )
-
-;;
-;;     Temple of the current race.
-;;
-(define (ai:temple)
-  (if (eq? (ai:get-race) race1)
-      'unit-church 'unit-altar-of-storms) )
-
-;;
-;;     Airport of the current race.
-;;
-(define (ai:airport)
-  (if (eq? (ai:get-race) race1)
-      'unit-gryphon-aviary 'unit-dragon-roost) )
-
-;;
-;;     Barracks of the current race.
-;;
-(define (ai:barracks)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-barracks 'unit-mythical-barracks) )
-
-;;
-;;     Soldier of the current race.
-;;
-(define (ai:soldier)
-  (if (eq? (ai:get-race) race1)
-      'unit-footman 'unit-grunt) )
-
-;;
-;;     Shooter of the current race.
-;;
-(define (ai:shooter)
-  (if (eq? (ai:get-race) race1)
-      'unit-archer 'unit-axethrower) )
-
-;;
-;;     Elite Shooter of the current race.
-;;
-(define (ai:elite-shooter)
-  (if (eq? (ai:get-race) race1)
-      'unit-ranger 'unit-berserker) )
-
-;;
-;;     Cavalrie of the current race.
-;;
-(define (ai:cavalrie)
-  (if (eq? (ai:get-race) race1)
-      'unit-knight 'unit-ogre) )
-
-;;
-;;     Cavalrie mages of the current race.
-;;
-(define (ai:cavalrie-mage)
-  (if (eq? (ai:get-race) race1)
-      'unit-paladin 'unit-ogre-mage) )
-
-;;
-;;     Mage of the current race.
-;;
-(define (ai:mage)
-  (if (eq? (ai:get-race) race1)
-      'unit-mage 'unit-death-knight) )
-
-;;
-;;     Catapult of the current race.
-;;
-(define (ai:catapult)
-  (if (eq? (ai:get-race) race1)
-      'unit-ballista 'unit-catapult) )
-
-;;
-;;     Scout of the current race.
-;;
-(define (ai:scout)
-  (if (eq? (ai:get-race) race1)
-      'unit-balloon 'unit-zeppelin) )
-
-;;
-;;     Flyer of the current race.
-;;
-(define (ai:flyer)
-  (if (eq? (ai:get-race) race1)
-      'unit-gryphon-rider 'unit-dragon) )
-
-;;
-;;     Tower of the current race.
-;;
-(define (ai:tower)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-watch-tower 'unit-mythical-watch-tower) )
-
-;;
-;;     Guard-Tower of the current race.
-;;
-(define (ai:guard-tower)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-guard-tower 'unit-mythical-guard-tower) )
-
-;;
-;;     Cannon-Tower of the current race.
-;;
-(define (ai:cannon-tower)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-cannon-tower 'unit-mythical-cannon-tower) )
-
-;;
-;;     Harbor of the current race.
-;;
-(define (ai:harbor)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-shipyard 'unit-mythical-shipyard) )
-
-;;
-;;     Refinery of the current race.
-;;
-(define (ai:refinery)
-  (if (eq? (ai:get-race) race1)
-      'unit-human-refinery 'unit-orc-refinery) )
-
-;;
-;;     Foundry of the current race.
-;;
-(define (ai:foundry)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-foundry 'unit-mythical-foundry) )
-
-;;
-;;     Ship armor 1 of the current race.
-;;
-(define (ai:upgrade-ship-armor-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-alliance-ship-armor1 'upgrade-mythical-ship-armor1) )
-
-;;
-;;     Ship armor 2 of the current race.
-;;
-(define (ai:upgrade-ship-armor-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-alliance-ship-armor2 'upgrade-mythical-ship-armor2) )
-
-;;
-;;     Ship weapon 1 of the current race.
-;;
-(define (ai:upgrade-ship-cannon-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-alliance-ship-cannon1 'upgrade-mythical-ship-cannon1) )
-
-;;
-;;     Ship weapon 2 of the current race.
-;;
-(define (ai:upgrade-ship-cannon-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-alliance-ship-cannon2 'upgrade-mythical-ship-cannon2) )
-
-;;
-;;     Platform of the current race.
-;;
-(define (ai:platform)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-oil-platform 'unit-mythical-oil-platform) )
-
-;;
-;;     Tanker of the current race.
-;;
-(define (ai:tanker)
-  (if (eq? (ai:get-race) race1)
-      'unit-human-oil-tanker 'unit-orc-oil-tanker) )
-
-;;
-;;     Submarine of the current race.
-;;
-(define (ai:submarine)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-submarine 'unit-mythical-submarine) )
-
-;;
-;;     Destroyer of the current race.
-;;
-(define (ai:destroyer)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-destroyer 'unit-mythical-destroyer) )
-
-;;
-;;     Battleship of the current race.
-;;
-(define (ai:battleship)
-  (if (eq? (ai:get-race) race1)
-      'unit-battleship 'unit-ogre-juggernaught) )
-
-;;
-;;     Transporter of the current race.
-;;
-(define (ai:transporter)
-  (if (eq? (ai:get-race) race1)
-      'unit-alliance-transport 'unit-mythical-transport) )
-
-;;
-;;     1st Elite Shooter of the current race.
-;;
-(define (ai:upgrade-elite-shooter)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-ranger 'upgrade-berserker) )
-
-;;
-;;     1st Upgrade of elite Shooter of the current race.
-;;
-(define (ai:upgrade-elite-shooter-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-ranger-scouting 'upgrade-berserker-scouting) )
-
-;;
-;;     2nd Upgrade of elite Shooter of the current race.
-;;
-(define (ai:upgrade-elite-shooter-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-longbow 'upgrade-light-axes) )
-
-;;
-;;     3th Upgrade of elite Shooter of the current race.
-;;
-(define (ai:upgrade-elite-shooter-3)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-ranger-marksmanship 'upgrade-berserker-regeneration) )
-
-;;
-;;     Upgrade cavalrie to cavalrie mages of the current race.
-;;
-(define (ai:upgrade-cavalrie-mage)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-paladin 'upgrade-ogre-mage) )
-
-;;
-;;     1st spell of the cavalrie mages of the current race.
-;;
-(define (ai:cavalrie-mage-spell-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-healing 'upgrade-bloodlust))
-
-;;
-;;     2nd spell of the cavalrie mages of the current race.
-;;
-(define (ai:cavalrie-mage-spell-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-exorcism 'upgrade-runes))
-
-;;
-;;     1st spell of the mages of the current race.
-;;
-(define (ai:mage-spell-1)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-slow 'upgrade-haste))
-
-;;
-;;     2nd spell of the mages of the current race.
-;;
-(define (ai:mage-spell-2)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-flame-shield 'upgrade-raise-dead))
-
-;;
-;;     3th spell of the mages of the current race.
-;;
-(define (ai:mage-spell-3)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-invisibility 'upgrade-whirlwind))
-
-;;
-;;     4th spell of the mages of the current race.
-;;
-(define (ai:mage-spell-4)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-polymorph 'upgrade-unholy-armor))
-
-;;
-;;     5th spell of the mages of the current race.
-;;
-(define (ai:mage-spell-5)
-  (if (eq? (ai:get-race) race1)
-      'upgrade-blizzard 'upgrade-death-and-decay))
-
-;;=============================================================================
-;;
-;;     Define an AI engine.
-;;
-;;     (define-ai name race class script)
-;;
-;;     name    name of the AI for selection.
-;;     class   class of the AI for map editor.
-;;     script  Main AI script.
-;;
-(define ai:air-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 1 (ai:flyer) 2)
-    (ai:force 2 (ai:flyer) 2)
-    (ai:force 3 (ai:flyer) 2)
-    (ai:force 4 (ai:flyer) 2)
-    (ai:force 5 (ai:flyer) 2)
-    (ai:force 6 (ai:flyer) 1)
-    (ai:wait-force 5)
-    (ai:wait-force 6)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-    (ai:attack-with-force 4)
-    (ai:attack-with-force 5)
-    (ai:sleep 500)
-    (ai:script ai:air-attack-endloop) ))
-
-(define-ai "wc2-air-attack" "*" "air-attack"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set-reserve! #( 0  0 0 0  0 0 0))
-    (ai:need (ai:city-center))
-    (ai:set  (ai:worker) 1)
-    (ai:wait (ai:city-center))
-    (ai:wait (ai:worker))      ;; start hangs if nothing is available
-
-    (ai:set  (ai:worker) 9)
-    (ai:need (ai:lumber-mill))
-    (ai:need (ai:barracks))
-    (ai:force 0 (ai:soldier) 2)
-    (ai:wait-force 0)          ;; wait until defence is ready
-
-    (ai:need (ai:blacksmith))
-    (ai:upgrade-to (ai:better-city-center))
-    (ai:set  (ai:worker) 15)
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 3)
-    (ai:wait (ai:better-city-center))
-
-    (ai:need (ai:cavalry))
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:upgrade-to (ai:best-city-center))
-    (ai:wait (ai:best-city-center))    ;; need this for airport!
-
-    (ai:need (ai:airport))
-    (ai:force 2 (ai:flyer) 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep 500)
-    (ai:need (ai:city-center))
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:airport))
-    (ai:force 2 (ai:flyer) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-
-    (ai:need (ai:city-center))
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:airport))
-    (ai:set  (ai:worker) 20)
-    (ai:force 1 (ai:flyer) 2)
-    (ai:attack-with-force 2)
-
-    (ai:sleep 500)
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:cannon-tower))
-    (ai:force 2 (ai:flyer) 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:force 1 (ai:flyer) 2)
-    (ai:force 2 (ai:flyer) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:force 1 (ai:flyer) 1)
-    (ai:force 2 (ai:flyer) 2)
-    (ai:force 3 (ai:flyer) 2)
-    (ai:wait-force 2)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-
-    (ai:sleep 500)
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:force 1 (ai:flyer) 2)
-    (ai:force 2 (ai:flyer) 2)
-    (ai:force 3 (ai:flyer) 2)
-    (ai:wait-force 2)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-
-    (ai:sleep 500)
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:force 1 (ai:flyer) 2)
-    (ai:force 2 (ai:flyer) 2)
-    (ai:force 3 (ai:flyer) 3)
-    (ai:wait-force 2)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-
-    (ai:sleep 500)
-    (ai:need (ai:tower))
-    (ai:upgrade-to (ai:guard-tower))
-    (ai:need (ai:tower))
-    (ai:force 1 (ai:flyer) 2)
-    (ai:force 2 (ai:flyer) 3)
-    (ai:force 3 (ai:flyer) 3)
-    (ai:wait-force 2)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-
-    (ai:sleep 500)
-    (ai:force 1 (ai:flyer) 1)
-    (ai:force 2 (ai:flyer) 2)
-    (ai:force 3 (ai:flyer) 2)
-    (ai:force 4 (ai:flyer) 2)
-    (ai:force 5 (ai:flyer) 2)
-    (ai:wait-force 5)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-    (ai:attack-with-force 3)
-    (ai:attack-with-force 4)
-    (ai:attack-with-force 5)
-
-    (ai:sleep 500)
-    (ai:script ai:air-attack-endloop) ))
-
-;;=============================================================================
-;;
-;;     Define an AI engine.
-;;
-;;     (define-ai name race class script)
-;;
-;;     name    name of the AI for selection.
-;;     class   class of the AI for map editor.
-;;     script  Main AI script.
-;;
-(define ai:sea-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 1 (ai:destroyer) 6 (ai:battleship) 7 (ai:scout) 1)
-    (ai:force 2 (ai:soldier) 4 (ai:cavalrie) 4 (ai:catapult) 4
-       (ai:transporter) 2)
-    (ai:wait-force 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-    (ai:sleep 500)
-    (ai:script ai:sea-attack-endloop) ))
-
-(define-ai "wc2-sea-attack" "*" "sea-attack"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:need (ai:city-center))
-    (ai:set  (ai:worker) 1)
-    (ai:wait (ai:city-center))
-    (ai:wait (ai:worker))      ;; start hangs if nothing is available
-
-    (ai:set  (ai:worker) 9)
-    (ai:need (ai:lumber-mill))
-    (ai:need (ai:barracks))
-    (ai:force 0 (ai:soldier) 3)
-    (ai:wait-force 0)          ;; wait until defence is ready
-
-    (ai:need (ai:harbor))
-    (ai:upgrade-to (ai:better-city-center))
-    (ai:need (ai:refinery))
-    (ai:need (ai:scientific))
-    (ai:set  (ai:worker) 15)
-    (ai:set  (ai:tanker) 1)
-    (ai:need (ai:platform))
-    (ai:wait (ai:better-city-center))
-
-    (ai:set  (ai:tanker) 3)
-    (ai:force 1 (ai:submarine) 3)
-    (ai:wait-force 1)          ;; wait until attack force is ready
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:need (ai:foundry))
-    (ai:research (ai:upgrade-ship-armor-1))
-    (ai:research (ai:upgrade-ship-armor-2))
-    (ai:set  (ai:tanker) 4)
-    (ai:force 1 (ai:submarine) 4)
-    (ai:wait-force 1)          ;; wait until attack force is ready
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:need (ai:harbor))
-    (ai:need (ai:blacksmith))
-    (ai:force 1 (ai:submarine) 5 (ai:scout) 1)
-    (ai:wait-force 1)          ;; wait until attack force is ready
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:research (ai:upgrade-catapult-1))
-    (ai:need (ai:cavalry))
-    (ai:force 0 (ai:soldier) 3 (ai:catapult) 1 (ai:scout) 1)
-    (ai:force 1 (ai:submarine) 1 (ai:destroyer) 2 (ai:battleship) 1
-       (ai:scout) 2)
-    (ai:sleep 3000)
-    (ai:wait-force  1)
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 3 (ai:catapult) 1 (ai:scout) 1)
-    (ai:force 3 (ai:destroyer) 1 (ai:scout) 1)
-    (ai:force 1 (ai:submarine) 1 (ai:destroyer) 2 (ai:battleship) 2
-       (ai:scout) 2)
-    (ai:force 2 (ai:catapult) 2 (ai:transporter) 1)
-    (ai:wait-force  1)
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:research (ai:upgrade-catapult-2))
-    (ai:research (ai:upgrade-ship-cannon-1))
-    (ai:force 0 (ai:soldier) 3 (ai:catapult) 1 (ai:scout) 1)
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:scout) 1)
-    (ai:force 1 (ai:submarine) 1 (ai:destroyer) 2 (ai:battleship) 3
-       (ai:scout) 1)
-    (ai:force 2 (ai:cavalrie) 1 (ai:catapult) 3 (ai:transporter) 1)
-    (ai:wait-force  1)
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:research (ai:upgrade-ship-cannon-2))
-    (ai:need (ai:city-center))
-    (ai:force 0 (ai:soldier) 3 (ai:catapult) 1 (ai:scout) 1)
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:scout) 1)
-    (ai:force 1 (ai:submarine) 1 (ai:destroyer) 3 (ai:battleship) 4
-       (ai:scout) 1)
-    (ai:force 2 (ai:cavalrie) 3 (ai:catapult) 3 (ai:transporter) 1)
-    (ai:wait-force  1)
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:need (ai:harbor))
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:research (ai:upgrade-armor-1))
-    (ai:research (ai:upgrade-weapon-2))
-    (ai:research (ai:upgrade-armor-2))
-    (ai:set  (ai:tanker) 5)
-    (ai:force 0 (ai:soldier) 3 (ai:catapult) 1 (ai:scout) 1)
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:scout) 1)
-    (ai:force 1 (ai:submarine) 1 (ai:destroyer) 4 (ai:battleship) 5
-       (ai:scout) 1)
-    (ai:force 2 (ai:cavalrie) 3 (ai:catapult) 3 (ai:transporter) 1)
-    (ai:wait-force  1)
-    (ai:attack-with-force 1)
-
-    (ai:sleep 500)
-    (ai:force 0 (ai:soldier) 3 (ai:catapult) 1 (ai:scout) 1)
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:scout) 1)
-    (ai:force 1 (ai:submarine) 1 (ai:destroyer) 5 (ai:battleship) 6
-       (ai:scout) 1)
-    (ai:force 2 (ai:cavalrie) 4 (ai:catapult) 2 (ai:transporter) 1)
-    (ai:wait-force  1)
-    (ai:wait-force  2)
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep 500)
-    (ai:script ai:sea-attack-endloop) ))
-
-;;=============================================================================
-;;
-;;     Define an AI engine.
-;;
-;;     (define-ai name race class script)
-;;
-;;     name    name of the AI for selection.
-;;     class   class of the AI for map editor.
-;;     script  Main AI script.
-;;
-(define ai:alliance-land-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 0 'unit-footman 1 'unit-ranger 2 'unit-paladin 4 'unit-ballista 1
-       'unit-mage 4)
-    (ai:force 1 'unit-footman 1 'unit-ranger 2 'unit-paladin 4 'unit-ballista 1
-       'unit-mage 2)
-    (ai:force 2 'unit-gryphon-rider 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep 500)
-    (ai:script ai:alliance-land-attack-endloop) ) )
-
-(define-ai 'my-ai1 race1 "land-attack"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:need (unit-type 'unit-town-hall))
-    (ai:set  'unit-peasant 1)
-    (ai:wait 'unit-town-hall)
-    (ai:wait 'unit-peasant)    ;; start hangs if nothing available
-
-    (ai:set  'unit-peasant 4)
-    (ai:need 'unit-elven-lumber-mill)
-    (ai:need 'unit-alliance-barracks)
-    (ai:force 0  'unit-footman 2)
-    (ai:force 1  'unit-footman 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:set  'unit-peasant 9)
-    (ai:sleep  500)
-    (ai:need 'unit-alliance-blacksmith)
-    (ai:force 0 'unit-footman 2 'unit-archer 1)
-    (ai:force 1 'unit-footman 2 'unit-archer 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:research 'upgrade-sword1)
-    (ai:research 'upgrade-alliance-shield1)
-    (ai:research 'upgrade-arrow1)
-    (ai:research 'upgrade-sword2)
-    (ai:research 'upgrade-alliance-shield2)
-    (ai:research 'upgrade-arrow2)
-    (ai:need 'unit-alliance-barracks)
-
-    (ai:force 0 'unit-footman 3 'unit-archer 2)
-    (ai:force 1 'unit-footman 3 'unit-archer 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:set  'unit-peasant 15)
-    (ai:force 0 'unit-footman 3 'unit-archer 2)
-    (ai:force 1 'unit-footman 3 'unit-archer 1 'unit-ballista 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:upgrade-to 'unit-keep)
-    (ai:wait 'unit-keep)
-
-    (ai:force 1 'unit-footman 3 'unit-archer 1 'unit-ballista 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-town-hall)
-    (ai:need 'unit-stables)
-    (ai:force 0 'unit-footman 1 'unit-archer 2 'unit-knight 6 'unit-ballista 1)
-    (ai:force 1 'unit-footman 1 'unit-archer 2 'unit-knight 2 'unit-ballista 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-alliance-barracks)
-    (ai:upgrade-to 'unit-castle)
-    (ai:set  'unit-peasant 19)
-    (ai:wait 'unit-castle)
-
-    (ai:force 0 'unit-footman 1 'unit-archer 2 'unit-knight 6 'unit-ballista 1)
-    (ai:force 1 'unit-footman 1 'unit-archer 2 'unit-knight 2 'unit-ballista 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-church)
-    (ai:research 'upgrade-paladin)
-    (ai:research 'upgrade-healing)
-    (ai:research 'upgrade-exorcism)
-
-    (ai:force 0 'unit-footman 1 'unit-archer 2 'unit-knight 0 'unit-paladin 5
-       'unit-ballista 1)
-    (ai:force 1 'unit-footman 1 'unit-archer 2 'unit-knight 0 'unit-paladin 3
-       'unit-ballista 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-mage-tower)
-    (ai:research 'upgrade-polymorph)
-    (ai:research 'upgrade-blizzard)
-
-    (ai:force 0 'unit-footman 1 'unit-archer 2 'unit-paladin 6 'unit-ballista 1
-       'unit-mage 2)
-    (ai:force 1 'unit-footman 1 'unit-archer 2 'unit-paladin 2 'unit-ballista 1
-       'unit-mage 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:research 'upgrade-slow)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:research 'upgrade-invisibility)
-
-    (ai:force 0 'unit-footman 1 'unit-archer 2 'unit-paladin 6 'unit-ballista 1
-       'unit-mage 5)
-    (ai:force 1 'unit-footman 1 'unit-archer 2 'unit-paladin 2 'unit-ballista 1
-       'unit-mage 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-gryphon-aviary)
-
-    (ai:force 0 'unit-footman 1 'unit-archer 2 'unit-paladin 6 'unit-ballista 1
-       'unit-mage 5)
-    (ai:force 1 'unit-footman 1 'unit-archer 2 'unit-paladin 2 'unit-ballista 1
-       'unit-mage 1)
-    (ai:force 2 'unit-gryphon-rider 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep  500)
-    (ai:research 'upgrade-ranger)
-    (ai:research 'upgrade-ranger-scouting)
-    (ai:research 'upgrade-flame-shield)
-    (ai:force 0 'unit-footman 1 'unit-archer 0 'unit-ranger 2 'unit-paladin 6
-       'unit-ballista 1 'unit-mage 5)
-    (ai:force 1 'unit-footman 1 'unit-archer 0 'unit-ranger 2 'unit-paladin 2
-       'unit-ballista 1 'unit-mage 1)
-    (ai:force 2 'unit-gryphon-rider 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep  500)
-    (ai:need 'unit-town-hall)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:need 'unit-inventor)
-    (ai:research 'upgrade-longbow)
-
-    (ai:force 0 'unit-footman 1 'unit-archer 0 'unit-ranger 2 'unit-paladin 6
-       'unit-ballista 1 'unit-mage 5)
-    (ai:force 1 'unit-footman 1 'unit-archer 0 'unit-ranger 2 'unit-paladin 2
-       'unit-ballista 1 'unit-mage 1)
-    (ai:force 2 'unit-gryphon-rider 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep  500)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-cannon-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:research 'upgrade-ballista1)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-cannon-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:research 'upgrade-ballista2)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-cannon-tower)
-    (ai:need 'unit-alliance-watch-tower)
-    (ai:upgrade-to 'unit-alliance-guard-tower)
-    (ai:set  'unit-peasant 25)
-
-    ;; Everything researched...
-
-    (ai:script ai:alliance-land-attack-endloop) ))
-
-;;=============================================================================
-;;
-;;     Define an AI engine.
-;;
-;;     (define-ai name race class script)
-;;
-;;     name    name of the AI for selection.
-;;     class   class of the AI for map editor.
-;;     script  Main AI script.
-;;
-(define ai:mythical-land-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 0 'unit-grunt 1 'unit-berserker 2 'unit-ogre-mage 4
-       'unit-catapult 1 'unit-death-knight 4)
-    (ai:force 1 'unit-grunt 1 'unit-berserker 2 'unit-ogre-mage 4
-       'unit-catapult 1 'unit-death-knight 2)
-    (ai:force 2 'unit-dragon 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep 500)
-    (ai:script ai:mythical-land-attack-endloop) ) )
-
-(define-ai 'my-ai2 race2 "land-attack"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:need (unit-type 'unit-great-hall))
-    (ai:set  'unit-faun 1)
-    (ai:wait 'unit-great-hall)
-    (ai:wait 'unit-faun)       ;; start hangs if nothing available
-
-    (ai:set  'unit-faun 4)
-    (ai:need 'unit-troll-lumber-mill)
-    (ai:need 'unit-mythical-barracks)
-    (ai:force 0 'unit-grunt 2)
-    (ai:force 1 'unit-grunt 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:set  'unit-faun 9)
-    (ai:sleep  500)
-    (ai:need 'unit-mythical-blacksmith)
-    (ai:force 0 'unit-grunt 2 'unit-axethrower 1)
-    (ai:force 1 'unit-grunt 2 'unit-axethrower 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:research 'upgrade-battle-axe1)
-    (ai:research 'upgrade-mythical-shield1)
-    (ai:research 'upgrade-throwing-axe1)
-    (ai:research 'upgrade-battle-axe2)
-    (ai:research 'upgrade-mythical-shield2)
-    (ai:research 'upgrade-throwing-axe2)
-    (ai:need 'unit-mythical-barracks)
-
-    (ai:force 0 'unit-grunt 3 'unit-axethrower 2)
-    (ai:force 1 'unit-grunt 3 'unit-axethrower 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:set  'unit-faun 15)
-    (ai:force 0 'unit-grunt 3 'unit-axethrower 2)
-    (ai:force 1 'unit-grunt 3 'unit-axethrower 1 'unit-catapult 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:upgrade-to 'unit-stronghold)
-    (ai:wait 'unit-stronghold)
-
-    (ai:force 1 'unit-grunt 3 'unit-axethrower 1 'unit-catapult 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-great-hall)
-    (ai:need 'unit-ogre-mound)
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 2 'unit-ogre 6 'unit-catapult 1)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 2 'unit-ogre 2 'unit-catapult 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-mythical-barracks)
-    (ai:upgrade-to 'unit-fortress)
-    (ai:set  'unit-faun 19)
-    (ai:wait 'unit-fortress)
-
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 2 'unit-ogre 6 'unit-catapult 1)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 2 'unit-ogre 2 'unit-catapult 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-altar-of-storms)
-    (ai:research 'upgrade-ogre-mage)
-    (ai:research 'upgrade-bloodlust)
-    (ai:research 'upgrade-runes)
-
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 2 'unit-ogre 0 'unit-ogre-mage 5
-       'unit-catapult 1)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 2 'unit-ogre 0 'unit-ogre-mage 3
-       'unit-catapult 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-temple-of-the-damned)
-    (ai:research 'upgrade-unholy-armor)
-    (ai:research 'upgrade-death-and-decay)
-
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 2 'unit-ogre-mage 6
-       'unit-catapult 1 'unit-death-knight 2)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 2 'unit-ogre-mage 2
-       'unit-catapult 1 'unit-death-knight 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:research 'upgrade-haste)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:research 'upgrade-whirlwind)
-
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 2 'unit-ogre-mage 6
-       'unit-catapult 1 'unit-death-knight 5)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 2 'unit-ogre-mage 2
-       'unit-catapult 1 'unit-death-knight 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  500)
-    (ai:need 'unit-dragon-roost)
-
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 2 'unit-ogre-mage 6
-       'unit-catapult 1 'unit-death-knight 5)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 2 'unit-ogre-mage 2
-       'unit-catapult 1 'unit-death-knight 1)
-    (ai:force 2 'unit-dragon 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep  500)
-    (ai:research 'upgrade-berserker)
-    (ai:research 'upgrade-berserker-scouting)
-    (ai:research 'upgrade-raise-dead)
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 0 'unit-ranger 2
-       'unit-ogre-mage 6 'unit-catapult 1 'unit-death-knight 5)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 0 'unit-ranger 2
-       'unit-ogre-mage 2 'unit-catapult 1 'unit-death-knight 1)
-    (ai:force 2 'unit-dragon 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep  500)
-    (ai:need 'unit-great-hall)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:need 'unit-alchemist)
-    (ai:research 'upgrade-light-axes)
-
-    (ai:force 0 'unit-grunt 1 'unit-axethrower 0 'unit-ranger 2
-       'unit-ogre-mage 6 'unit-catapult 1 'unit-death-knight 5)
-    (ai:force 1 'unit-grunt 1 'unit-axethrower 0 'unit-ranger 2
-       'unit-ogre-mage 2 'unit-catapult 1 'unit-death-knight 1)
-    (ai:force 2 'unit-dragon 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:attack-with-force 2)
-
-    (ai:sleep  500)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-cannon-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:research 'upgrade-catapult1)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-cannon-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:research 'upgrade-catapult2)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-cannon-tower)
-    (ai:need 'unit-mythical-watch-tower)
-    (ai:upgrade-to 'unit-mythical-guard-tower)
-    (ai:set  'unit-faun 25)
-
-    ;; Everything researched...
-
-    (ai:script ai:mythical-land-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and tankers and oil platform.
-;;             Also if needed a farm.
-;;
-(define ai:mythical-03-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep 65535)
-    (ai:script ai:mythical-03-attack-endloop) ) )
-
-(define-ai 'mythical-03 "*" "mythical-03"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 2)
-    (ai:set  (ai:tanker) 1)
-    (ai:wait (ai:worker))      ;; start hangs if nothing available
-
-    (ai:need (ai:platform))
-
-    (ai:script ai:mythical-03-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and tankers and oil platform.
-;;             Also if needed a farm.
-;;             Attacks with soldier and shooter and destroyer.
-;;
-(define ai:hum-04-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep 25000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 22000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:script ai:hum-04-attack-endloop) ) )
-
-(define-ai 'hum-04 "*" "hum-04"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 4)
-    (ai:set  (ai:tanker) 1)
-    (ai:wait (ai:worker))      ;; start hangs if nothing available
-
-    (ai:need (ai:platform))
-
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 3 (ai:shooter) 4)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:sleep 27000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:set  (ai:transporter) 2)
-    (ai:sleep 22000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 22000)
-    (ai:force 0 (ai:destroyer) 0 (ai:soldier) 3 (ai:shooter) 3)
-    (ai:force 2 (ai:destroyer) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep 22000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 3 (ai:shooter) 3)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 2 (ai:transporter) 1)
-    (ai:force 2 (ai:destroyer) 0)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 18000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 3 (ai:shooter) 4)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-
-    (ai:sleep 27000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 2 (ai:shooter) 3)
-    (ai:force 1 (ai:soldier) 3 (ai:shooter) 2 (ai:transporter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-
-    (ai:sleep 24000)
-    (ai:force 0 (ai:destroyer) 0 (ai:soldier) 2 (ai:shooter) 3)
-    (ai:force 1 (ai:soldier) 3 (ai:shooter) 2 (ai:transporter) 1)
-    (ai:force 2 (ai:destroyer) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-
-    (ai:script ai:hum-04-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and tankers and oil platform.
-;;             Also if needed a farm.
-;;             Attacks with soldier and shooter and destroyer.
-;;
-(define ai:mythical-04-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep 10500)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 10500)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:script ai:mythical-04-attack-endloop) ) )
-
-(define-ai 'mythical-04 "*" "mythical-04"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 4)
-    (ai:set  (ai:tanker) 1)
-    (ai:wait (ai:worker))      ;; start hangs if nothing available
-
-    (ai:set  (ai:transporter) 1)
-    (ai:force 0 (ai:soldier) 3 (ai:shooter) 4 (ai:destroyer) 2)
-    (ai:need (ai:platform))
-
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1)
-    (ai:sleep 27000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:set  (ai:transporter) 2)
-    (ai:sleep 15000)
-    (ai:force 0 (ai:soldier) 3 (ai:shooter) 3 (ai:destroyer) 2)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 15000)
-    (ai:force 0 (ai:soldier) 3 (ai:shooter) 3 (ai:destroyer) 0)
-    (ai:force 2 (ai:destroyer) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep 19500)
-    (ai:force 0 (ai:soldier) 4 (ai:shooter) 4 (ai:destroyer) 0)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 12000)
-    (ai:force 0 (ai:soldier) 4 (ai:shooter) 4 (ai:destroyer) 1)
-    (ai:force 2 (ai:destroyer) 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep 13500)
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 3 (ai:destroyer) 1)
-    (ai:force 1 (ai:soldier) 3 (ai:shooter) 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 30500)
-
-    (ai:script ai:mythical-04-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and tankers and oil platform.
-;;             Also if needed a farm.
-;;             Attacks with soldier, shooter and destroyer.
-;;
-(define ai:hum-05-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep 18000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 12000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 1 (ai:shooter) 2)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 24000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 0 (ai:shooter) 1)
-    (ai:force 1 (ai:soldier) 3 (ai:shooter) 2 (ai:transporter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 14000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 0 (ai:shooter) 1)
-    (ai:force 2 (ai:destroyer) 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:script ai:hum-05-attack-endloop) ) )
-
-(define-ai 'hum-05 "*" "hum-05"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 4)
-    (ai:set  (ai:tanker) 1)
-    (ai:set  (ai:transporter) 1)
-    (ai:wait (ai:worker))      ;; start hangs if nothing available
-
-    (ai:need (ai:platform))
-
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 2 (ai:shooter) 2)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:force 2 (ai:destroyer) 1)
-    (ai:sleep 6000)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep 3000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 4000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 4000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 12000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 1 (ai:shooter) 2)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 14000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 12000)
-    (ai:force 0 (ai:destroyer) 2 (ai:soldier) 2 (ai:shooter) 2)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-05-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers, blacksmith.
-;;             Also if needed a farm.
-;;             Upgrades weapon and missile.
-;;             Attacks with soldier, shooter and cavalrie.
-;;
-(define ai:hum-06-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 1 )
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 3 (ai:cavalrie) 2 )
-    (ai:sleep 14000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 3 (ai:cavalrie) 2 )
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 1 )
-    (ai:sleep 11000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 3 (ai:cavalrie) 2 )
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 )
-    (ai:sleep 8000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 2 (ai:cavalrie) 2 )
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 2 (ai:cavalrie) 1 )
-    (ai:sleep 11000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 4 (ai:cavalrie) 1 )
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 2 )
-    (ai:sleep 9000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-06-attack-endloop) ) )
-
-(define-ai 'hum-06 "*" "hum-06"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 4)
-    (ai:wait (ai:worker))      ;; start hangs if nothing available
-
-    (ai:force 0 (ai:soldier) 3 (ai:shooter) 3)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1)
-    (ai:sleep 4000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 3000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 4000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:need (ai:blacksmith))
-    (ai:research (ai:upgrade-missile-1))
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 2)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 2)
-    (ai:sleep 9000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:upgrade-weapon-1))
-
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 2)
-    (ai:force 1 (ai:soldier) 3 (ai:shooter) 2)
-    (ai:sleep 13000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 3 (ai:cavalrie) 1 )
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 2 )
-    (ai:sleep 14000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:upgrade-armor-1))
-
-    (ai:script ai:hum-06-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only worker and tanker.
-;;
-(define-ai 'hum-07 "*" "hum-07"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 2)
-    (ai:set  (ai:tanker) 1)
-    (ai:sleep  10000)
-    (ai:restart)))
-
-;;=============================================================================
-;;     This AI script builds only workers, blacksmith.
-;;             Also if needed a farm.
-;;             Upgrades weapon and missile.
-;;             Attacks with soldier, shooter and cavalrie.
-;;
-(define ai:hum-08-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep 16000)
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 4 (ai:cavalrie) 2)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 14000)
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 4 (ai:cavalrie) 1 (ai:catapult) 1)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 2 (ai:catapult) 0)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 12000)
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 4 (ai:cavalrie) 0 (ai:catapult) 0)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 3 (ai:catapult) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-08-attack-endloop) ) )
-
-(define-ai 'hum-08 "*" "hum-08"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:worker) 3)
-    (ai:wait (ai:worker))      ;; start hangs if nothing available
-
-    (ai:force 0 (ai:soldier) 3 (ai:shooter) 3)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1)
-    (ai:sleep 14000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 5 (ai:shooter) 5 (ai:cavalrie) 0)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 2)
-    (ai:sleep 10000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 4 (ai:cavalrie) 1)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 2)
-    (ai:sleep 15000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:upgrade-cavalrie-mage))
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:upgrade-missile-1))
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 5 (ai:cavalrie) 1)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 2 (ai:catapult) 1)
-    (ai:sleep 15000)
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:research (ai:upgrade-armor-1))
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep 21000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:upgrade-elite-shooter))
-    (ai:sleep 12000)
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 5 (ai:cavalrie) 2)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 1 (ai:catapult) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-08-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only worker and tanker.
-;;
-(define-ai 'hum-09 "*" "hum-09"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f) (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 2)
-    (ai:set  (ai:tanker) 1)
-    (ai:sleep  10000)
-    (ai:restart)))
-
-;;=============================================================================
-;;     This AI script builds only worker and tanker.
-;;             Upgrades very much.
-;;             Attacks with land units and water units.
-;;
-(define ai:hum-10-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep  5000)
-    (ai:force 0 (ai:soldier) 3 (ai:shooter) 3 (ai:cavalrie) 2 (ai:catapult) 1)
-    (ai:force 2 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 2 (ai:catapult) 1
-       (ai:transporter) 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep  6000)
-    (ai:force 1 (ai:destroyer) 1 (ai:battleship) 0)
-    (ai:force 3 (ai:destroyer) 2 (ai:battleship) 1)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:sleep  5000)
-    (ai:force 1 (ai:destroyer) 3 (ai:battleship) 1)
-    (ai:force 3 (ai:destroyer) 0 (ai:battleship) 0)
-    (ai:force 0 (ai:soldier) 4 (ai:shooter) 2 (ai:cavalrie) 2 (ai:catapult) 2)
-    (ai:force 2 (ai:soldier) 0 (ai:shooter) 2 (ai:cavalrie) 2 (ai:catapult) 0)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:force 1 (ai:destroyer) 1 (ai:battleship) 1)
-    (ai:force 3 (ai:destroyer) 2 (ai:battleship) 0)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:script ai:hum-10-attack-endloop) ) )
-
-(define-ai 'hum-10 "*" "hum-10"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'defend)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:worker) 7)
-    (ai:set  (ai:tanker) 3)
-    (ai:wait (ai:worker))      ;; Wait for the workers
-
-    (ai:set  (ai:transporter) 1)
-    (ai:force 0 (ai:destroyer) 2)
-    (ai:force 2 (ai:transporter) 1)
-    (ai:sleep  6000)
-    (ai:force 2 (ai:transporter) 0)
-    (ai:force 0 (ai:soldier) 4 (ai:shooter) 4
-      (ai:destroyer) 0 (ai:transporter) 1)
-    (ai:force 1 (ai:destroyer) 2)
-
-    (ai:research (ai:upgrade-cavalrie-mage))
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:mage-spell-1))
-    (ai:research (ai:mage-spell-2))
-    (ai:research (ai:upgrade-missile-1))
-
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 2 (ai:transporter) 0)
-    (ai:force 2 (ai:soldier) 2 (ai:shooter) 2 (ai:transporter) 1)
-    (ai:force 1 (ai:destroyer) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:sleep  4000)
-    (ai:research (ai:upgrade-armor-1))
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:sleep  5000)
-    (ai:force 1 (ai:destroyer) 3 (ai:battleship) 1)
-    (ai:research (ai:upgrade-missile-2))
-    (ai:research (ai:upgrade-weapon-2))
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:research (ai:upgrade-ship-cannon-1))
-    (ai:sleep  3000)
-    (ai:research (ai:upgrade-armor-2))
-    (ai:research (ai:upgrade-ship-armor-1))
-    (ai:research (ai:upgrade-elite-shooter))
-    (ai:force 0 (ai:soldier) 2 (ai:shooter) 3)
-    (ai:force 2 (ai:soldier) 2 (ai:shooter) 1 (ai:transporter) 1)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:research (ai:upgrade-catapult-1))
-    (ai:research (ai:upgrade-ship-cannon-2))
-    (ai:research (ai:upgrade-ship-armor-2))
-    (ai:research (ai:upgrade-elite-shooter-1))
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 2 (ai:mage) 1)
-    (ai:sleep  5000)
-    (ai:research (ai:upgrade-elite-shooter-2))
-    (ai:research (ai:upgrade-elite-shooter-3))
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:force 0 (ai:soldier) 4 (ai:shooter) 3 (ai:cavalrie) 2 (ai:catapult) 1)
-    (ai:force 2 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 2 (ai:catapult) 1
-       (ai:transporter) 1)
-    (ai:sleep  5000)
-
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-
-    (ai:script ai:hum-10-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers.
-;;             Upgrades very much.
-;;             Attacks with land units.
-;;
-(define ai:hum-11-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep  12000)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 0)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 3)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  8000)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 1)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  13000)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 0)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 3)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-11-attack-endloop) ) )
-
-(define-ai 'hum-11 "*" "hum-11"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:force-role 2 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-    (ai:set  (ai:worker) 8)
-    (ai:wait (ai:worker))      ;; Wait for the workers
-
-    (ai:sleep  6000)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 2 (ai:cavalrie) 2)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 0 (ai:cavalrie) 0)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  6000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  7000)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 1 (ai:cavalrie) 2)
-    (ai:force 1 (ai:soldier) 2 (ai:shooter) 1 (ai:cavalrie) 0)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  5000)
-    (ai:force 1 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0)
-    (ai:force 0 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 2 (ai:catapult) 1)
-    (ai:research (ai:upgrade-missile-1))
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:research (ai:upgrade-armor-1))
-
-    (ai:sleep  6000)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 3)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  9000)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 1)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  7000)
-    (ai:research (ai:upgrade-elite-shooter))
-    (ai:research (ai:upgrade-elite-shooter-1))
-    (ai:sleep  13000)
-
-    (ai:force 2 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 1)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 1)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 2)
-    (ai:wait-force 2)          ;; wait until attack party is completed
-    (ai:attack-with-force 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:upgrade-elite-shooter-2))
-    (ai:research (ai:mage-spell-1))
-
-    (ai:research (ai:upgrade-cavalrie-mage))
-    (ai:sleep  7000)
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:mage-spell-2))
-    (ai:research (ai:upgrade-weapon-2))
-    (ai:sleep  12000)
-    (ai:force 2 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 0)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 2)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-    (ai:research (ai:upgrade-armor-2))
-    (ai:research (ai:mage-spell-3))
-    (ai:research (ai:mage-spell-4))
-    (ai:research (ai:upgrade-catapult-1))
-
-    (ai:sleep  8000)
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 1)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:mage-spell-5))
-    (ai:sleep  13000)
-
-    (ai:force 1 (ai:soldier) 1 (ai:shooter) 1 (ai:cavalrie) 1 (ai:catapult) 1
-       (ai:mage) 0)
-    (ai:force 0 (ai:soldier) 0 (ai:shooter) 0 (ai:cavalrie) 0 (ai:catapult) 0
-       (ai:mage) 3)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-11-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and tankers.
-;;             Upgrades very much.
-;;             Attacks with land and water units.
-;;
-(define ai:hum-12-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep  10000)
-    (ai:force 0 (ai:soldier) 1 (ai:cavalrie) 7 (ai:mage) 1)
-    (ai:force 1 (ai:soldier) 1 (ai:cavalrie) 3 (ai:mage) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  5000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  7000)
-    (ai:force 2 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 4
-       (ai:scout) 1) 
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 1
-       (ai:scout) 1) 
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:script ai:hum-12-attack-endloop) ) )
-
-(define-ai 'hum-12 "*" "hum-12"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:force-role 2 'defend) (ai:force-role 3 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:tanker) 3)
-    (ai:set  (ai:worker) 7)
-    (ai:wait (ai:worker))      ;; Wait for the workers
-
-    (ai:need (ai:platform))
-    (ai:set  (ai:transporter) 2)
-
-    (ai:force 1 (ai:soldier) 2)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:soldier) 2)
-    (ai:sleep  2000)
-
-    (ai:force 2 (ai:destroyer) 2 (ai:battleship) 1 (ai:submarine) 3) 
-    (ai:force 3 (ai:destroyer) 0 (ai:battleship) 1 (ai:submarine) 1) 
-
-    (ai:sleep  3000)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:force 0 (ai:soldier) 1 (ai:cavalrie) 10 (ai:mage) 2)
-    (ai:force 1 (ai:soldier) 1 )
-
-    (ai:research (ai:mage-spell-1))
-    (ai:research (ai:upgrade-cavalrie-mage))
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:mage-spell-2))
-    (ai:research (ai:mage-spell-3))
-    (ai:research (ai:mage-spell-4))
-    (ai:research (ai:cavalrie-mage-spell-2))
-    (ai:research (ai:mage-spell-5))
-    (ai:research (ai:upgrade-ship-cannon-1))
-    (ai:research (ai:upgrade-ship-armor-1))
-    (ai:sleep  4000)
-
-    (ai:force 2 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 3) 
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 1) 
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:research (ai:upgrade-ship-cannon-2))
-    (ai:research (ai:upgrade-ship-armor-2))
-    (ai:research (ai:upgrade-catapult-1))
-    (ai:research (ai:upgrade-catapult-2))
-    (ai:sleep  6000)
-
-    (ai:force 2 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 3) 
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 2) 
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:sleep  7000)
-    (ai:force 2 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 2) 
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 1 (ai:submarine) 3) 
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:sleep  5000)
-    (ai:force 2 (ai:destroyer) 1 (ai:battleship) 0 (ai:submarine) 2) 
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 2 (ai:submarine) 3) 
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:force 0 (ai:soldier) 1 (ai:cavalrie) 10 (ai:mage) 2 (ai:catapult) 1)
-    (ai:force 1 (ai:soldier) 1 (ai:catapult) 1)
-
-    (ai:force 2 (ai:destroyer) 1 (ai:battleship) 0 (ai:submarine) 2
-       (ai:scout) 1) 
-    (ai:force 3 (ai:destroyer) 1 (ai:battleship) 2 (ai:submarine) 3
-       (ai:scout) 1) 
-
-    (ai:research (ai:upgrade-missile-1))
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:research (ai:upgrade-armor-1))
-    (ai:research (ai:upgrade-missile-2))
-
-    (ai:research (ai:upgrade-elite-shooter))
-    (ai:research (ai:upgrade-elite-shooter-1))
-    (ai:research (ai:upgrade-elite-shooter-2))
-    (ai:research (ai:upgrade-elite-shooter-3))
-    (ai:research (ai:upgrade-weapon-2))
-    (ai:research (ai:upgrade-armor-2))
-
-    (ai:script ai:hum-12-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and tankers.
-;;             Upgrades very much.
-;;             Attacks with land and air units.
-;;
-(define ai:hum-13-attack-endloop
-  '((writes nil "Looping !\n")
-
-    (ai:sleep  12000)
-    (ai:force 0 (ai:cavalrie) 1 (ai:mage) 1 (ai:catapult) 2)
-    (ai:force 1 (ai:cavalrie) 2 (ai:shooter) 1 (ai:mage) 1 (ai:catapult) 0)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  14000)
-    (ai:force 2 (ai:flyer) 1)
-    (ai:force 3 (ai:flyer) 3)
-    (ai:sleep  14000)
-
-    (ai:force 0 (ai:cavalrie) 1 (ai:mage) 2 (ai:catapult) 1)
-    (ai:force 1 (ai:cavalrie) 2 (ai:shooter) 1 (ai:mage) 0 (ai:catapult) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-13-attack-endloop) ) )
-
-(define-ai 'hum-13 "*" "hum-13"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:force-role 2 'defend) (ai:force-role 3 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:tanker) 2)
-    (ai:set  (ai:worker) 5)
-    (ai:wait (ai:worker))      ;; Wait for the workers
-
-    (ai:need (ai:platform))
-    (ai:set  (ai:transporter) 2)
-
-    (ai:force 0 (ai:cavalrie) 3 (ai:mage) 2)
-
-    (ai:research (ai:mage-spell-1))
-    (ai:research (ai:upgrade-cavalrie-mage))
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:mage-spell-2))
-    (ai:research (ai:mage-spell-3))
-    (ai:research (ai:mage-spell-4))
-    (ai:research (ai:cavalrie-mage-spell-2))
-
-    (ai:sleep  4000)
-
-    (ai:force 0 (ai:cavalrie) 1 (ai:mage) 1)
-    (ai:force 1 (ai:cavalrie) 2 (ai:mage) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:cavalrie) 1 (ai:mage) 1)
-    (ai:force 1 (ai:cavalrie) 2 (ai:shooter) 1 (ai:mage) 1)
-    (ai:sleep  12000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  15000)
-    (ai:force 0 (ai:cavalrie) 0 (ai:mage) 1)
-    (ai:force 1 (ai:cavalrie) 3 (ai:shooter) 1 (ai:mage) 1)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:mage-spell-5))
-    (ai:research (ai:upgrade-ship-cannon-1))
-    (ai:research (ai:upgrade-ship-armor-1))
-    (ai:research (ai:upgrade-ship-cannon-2))
-    (ai:research (ai:upgrade-ship-armor-2))
-    (ai:force 0 (ai:cavalrie) 2 (ai:mage) 2 (ai:catapult) 1)
-    (ai:force 1 (ai:cavalrie) 1 (ai:shooter) 1 (ai:mage) 0 (ai:catapult) 1)
-    (ai:sleep  15000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 2 (ai:flyer) 1)
-    (ai:force 3 (ai:flyer) 3)
-    (ai:sleep  20000)
-    (ai:wait-force 3)          ;; wait until attack party is completed
-    (ai:attack-with-force 3)
-
-    (ai:sleep  14000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  18000)
-    (ai:force 0 (ai:cavalrie) 2 (ai:mage) 2 (ai:catapult) 2)
-    (ai:force 1 (ai:cavalrie) 1 (ai:shooter) 1 (ai:mage) 0 (ai:catapult) 0)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:research (ai:upgrade-catapult-1))
-    (ai:research (ai:upgrade-catapult-2))
-    (ai:research (ai:upgrade-missile-1))
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:research (ai:upgrade-armor-1))
-    (ai:research (ai:upgrade-missile-2))
-    (ai:research (ai:upgrade-elite-shooter))
-
-    (ai:script ai:hum-13-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and ogres.
-;;
-(define ai:hum-14-orange-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:script ai:hum-14-orange-attack-endloop) ) )
-
-(define-ai 'hum-14-orange "*" "hum-14-orange"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:worker) 5)
-    (ai:wait (ai:worker))      ;; Wait for the workers
-
-    (ai:force 0 (ai:cavalrie) 8)
-    (ai:force 1 (ai:cavalrie) 7)
-
-    (ai:script ai:hum-14-orange-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds nothing.
-;;             Does only upgrades.
-;;
-(define ai:hum-14-red-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep  30000)
-    (ai:sleep  30000)
-    (ai:script ai:hum-14-red-attack-endloop) ) )
-
-(define-ai 'hum-14-red "*" "hum-14-red"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:research (ai:mage-spell-1))
-    (ai:research (ai:mage-spell-2))
-    (ai:research (ai:mage-spell-3))
-    (ai:research (ai:mage-spell-4))
-    (ai:research (ai:mage-spell-5))
-
-    (ai:script ai:hum-14-red-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only workers and dragons.
-;;             Does only air attacks.
-;;
-;;     FIXME: This AI should only collect GOLD.
-;;
-(define ai:hum-14-white-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:force 0 (ai:flyer) 8)
-    (ai:force 1 (ai:flyer) 2)
-    (ai:sleep  19000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:flyer) 5)
-    (ai:force 1 (ai:flyer) 4)
-    (ai:sleep  20000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:flyer) 6)
-    (ai:force 1 (ai:flyer) 3)
-    (ai:sleep  21000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:force 0 (ai:flyer) 3)
-    (ai:force 1 (ai:flyer) 6)
-    (ai:sleep  20000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-14-white-attack-endloop) ) )
-
-(define-ai 'hum-14-white "*" "hum-14-white"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:worker) 9)
-    (ai:wait (ai:worker))      ;; Wait for the workers
-
-    (ai:force 0 (ai:flyer) 9)
-    (ai:force 1 (ai:flyer) 1)
-
-    (ai:sleep  64000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  12000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:sleep  18000)
-    (ai:wait-force 1)          ;; wait until attack party is completed
-    (ai:attack-with-force 1)
-
-    (ai:script ai:hum-14-white-attack-endloop) ))
-
-;;=============================================================================
-;;     This AI script builds only tanker.
-;;             Does only upgrades.
-;;
-;;     FIXME: This AI should only collect GOLD.
-;;
-(define ai:hum-14-black-attack-endloop
-  '((writes nil "Looping !\n")
-    (ai:sleep  30000)
-    (ai:script ai:hum-14-black-attack-endloop) ) )
-
-(define-ai 'hum-14-black "*" "hum-14-black"
-  '(
-    ;; Define the main AI script.
-    (begin (ai:debug #f)
-      (ai:force-role 0 'defend) (ai:force-role 1 'attack)
-      (ai:sleep (ai:get-sleep-cycles)))
-
-    (ai:set  (ai:tanker) 1)
-    (ai:research (ai:upgrade-cavalrie-mage))
-    (ai:research (ai:cavalrie-mage-spell-1))
-    (ai:research (ai:cavalrie-mage-spell-2))
-    (ai:research (ai:mage-spell-1))
-    (ai:research (ai:mage-spell-2))
-    (ai:research (ai:mage-spell-3))
-    (ai:research (ai:mage-spell-4))
-    (ai:research (ai:mage-spell-5))
-    (ai:research (ai:upgrade-weapon-1))
-    (ai:research (ai:upgrade-armor-1))
-    (ai:research (ai:upgrade-weapon-2))
-    (ai:research (ai:upgrade-armor-2))
-    (ai:research (ai:upgrade-elite-shooter))
-    (ai:research (ai:upgrade-elite-shooter-1))
-    (ai:research (ai:upgrade-elite-shooter-2))
-    (ai:research (ai:upgrade-elite-shooter-3))
-    (ai:research (ai:upgrade-ship-cannon-1))
-    (ai:research (ai:upgrade-ship-armor-1))
-    (ai:research (ai:upgrade-ship-cannon-2))
-    (ai:research (ai:upgrade-ship-armor-2))
 
-    (ai:script ai:hum-14-black-attack-endloop) ))
Index: demogame/ccl/stratagus.ccl
diff -u demogame/ccl/stratagus.ccl:1.8 demogame/ccl/stratagus.ccl:1.9
--- demogame/ccl/stratagus.ccl:1.8      Tue Oct  7 09:28:00 2003
+++ demogame/ccl/stratagus.ccl  Wed Oct  8 05:14:00 2003
@@ -26,7 +26,7 @@
 ;;      along with this program; if not, write to the Free Software
 ;;      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 ;;
-;;     $Id: stratagus.ccl,v 1.8 2003/10/07 13:28:00 martinxyz Exp $
+;;     $Id: stratagus.ccl,v 1.9 2003/10/08 09:14:00 martinxyz Exp $
 
 ;; For documentation see stratagus/doc/ccl/ccl.html
 
@@ -168,10 +168,6 @@
 (shadow-sprite "graphics/missiles/unit_shadow.png"     3 42    32 32)
 (spell-sprite "graphics/ui/bloodlust,haste,slow,invisible,shield.png"
   1 1  16 16)
-
-;;     Edit this to enable/disable the original game resource line.
-(set-original-resources! #f)
-;(set-original-resources! #t)
 
 ;;     Uncomment next, to enable fancy building (random mirroring buildings)
 (set-fancy-buildings! #t)
Index: demogame/ccl/ui.ccl
diff -u demogame/ccl/ui.ccl:1.5 demogame/ccl/ui.ccl:1.6
--- demogame/ccl/ui.ccl:1.5     Mon Oct  6 17:10:13 2003
+++ demogame/ccl/ui.ccl Wed Oct  8 05:14:00 2003
@@ -26,7 +26,7 @@
 ;;      along with this program; if not, write to the Free Software
 ;;      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 ;;
-;;     $Id: ui.ccl,v 1.5 2003/10/06 21:10:13 martinxyz Exp $
+;;     $Id: ui.ccl,v 1.6 2003/10/08 09:14:00 martinxyz Exp $
 
 (define color-dark-green       149)    ; FIXME: move to central position
 
@@ -70,7 +70,7 @@
         'pos (list (- screen_width 16 68) 0) 'size '(14 14) 'text-pos (list (+ 
(- screen_width 16 68) 18) 1)))
 
     'completed-bar (list
-      'color 149
+      'color '(48 100 4)
       'pos (list (+ infox 14) (+ infoy 151))
       'size '(152 14)
       'text "% Complete"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]