Liste des actions possibles

do-nothing
Cette action ne fait rien du tout. Elle est principalement utilisée comme un moyen de tester des objectifs. Vous noterez au passage que chaque règle nécessite au moins une action.

acknowledge-event <event-type> <event-id>
Cette action confirme la réception d'un événement et réinitialise son flag associé.

acknowledge-taunt <player-number> <taunt-id>
Cette action confirme la réception d'un message et réinitialise son flag associé.

attack-now
Cette action force le JGO à passer à l'attaque avec ses unités disponibles.

build <building>
Cette action provoque la construction du bâtiment passé en paramètre. Il est possible d'utiliser les paramètres jokers désignant une lignée de bâtiment à la place du paramètre <building>.

build-forward <building>
Cette action provoque la construction du bâtiment passé en paramètre près de l'ennemi. Il est possible d'utiliser les paramètres jokers désignant une lignée de bâtiment à la place du paramètre <building>.

build-gate <perimeter>
Cette action déclenche la construction d'une porte dans le mur désigné par le périmètre.

build-wall <perimeter> <wall>
Cette action provoque la construction d'un mur du type passé en paramètre sur le périmètre défini en paramètre. Il est possible d'utiliser les paramètres jokers désignant une lignée de mur à la place du paramètre <wall>.

buy-commodity <commodity>
Cette action lance l'ordre d'achat de la marchandise passée en paramètre.

cc-add-resource <resource-type> <amount>
Cette action est pipée, elle permet d'ajouter des ressources au JGO. Elle permet notamment d'éviter un comportement plutôt bizarre des villageois lorsque la partie dure depuis quelque temps, comme par exemple lorsque les péons traversent la carte dans tous les sens pour trouver les dernières onces d'or.

chat-local <string>
Cette action permet d'afficher un message local au JGO.

chat-local-using-id <string-id>
Action interne au concepteur de l'IA.

chat-local-using-range <string-id-start> <string-id-range>
Action interne au concepteur de l'IA.

chat-local-to-self <string>
Cette action permet d'afficher un message local. Le message n'est affiché que si l'utilisateur est le même joueur que le JGO qui a envoyé le message. Cette action n'est utile que pour le débogage.

chat-to-all <string>
Cette action envoie un message à tous les joueurs.

chat-to-all-using-id <string-id>
Action interne au concepteur de l'IA.

chat-to-all-using-range <string-id-start> <string-id-range>
Action interne au concepteur de l'IA.

chat-to-allies <string>
Cette action envoie un message à tous les joueurs alliés.

chat-to-allies-using-id <string-id>
Action interne au concepteur de l'IA.

chat-to-allies-using-range <string-id-start> <string-id-range>
Action interne au concepteur de l'IA.

chat-to-enemies <string>
Cette action envoie un message à tous les joueurs ennemis.

chat-to-enemies-using-id <string-id>
Action interne au concepteur de l'IA.

chat-to-enemies-using-range <string-id-start> <string-id-range>
Action interne au concepteur de l'IA.

chat-to-player <player-number> <string> ;
Cette action envoie un message au joueur passé en paramètre.

chat-to-player-using-id <player-number> <string-id>
Action interne au concepteur de l'IA.

chat-to-player-using-range <player-number> <string-id-start> <string-id-range>
Action interne au concepteur de l'IA.

chat-trace <value>
Cette action affiche la valeur passée en paramètre comme un message. Cette action n'est utilisée que lors du débogage pour vérifier qu'une règle est exécutée.

clear-tribute-memory <player-number> <resource-type>
Cette action remet à zéro le compteur de tribut du joueur passé en paramètre. Seul le compteur de la ressource spécifiée en paramètre est remis à zéro. Il est possible d'utiliser les paramètres jokers "any/"every" à la place du paramètre <player-number>. Il est aussi possible d'utiliser les variables de règle pour le paramètre <player-number>.

delete-building <building>
Cette action permet de détruire un et un seul bâtiment du type précisé en paramètre.

delete-unit <unit>
Cette action permet de détruire une et une seule unité du type précisé en paramètre.

disable-self
Cette action désactive la règle contenant l'action. La désactivation prend effet au prochain passage de règle. Les autres actions de la règle sont quand même exécutées une dernière fois.
Exemple :
(defrule
(game-time greater-than 30)
=>
(disable-self) ; désactive la règle
(chat-to-all "Déjà 30 secondes de passées ...") ; affiche le message au moins une fois.
)

disable-timer <timer-id>
Cette action désactive le timer précisé en paramètre.

enable-timer <timer-id> <value>
Cette action active le timer précisé en paramètre et l'initialise avec la valeur passée en paramètre

enable-wall-placement <perimeter>
Cette action active la pose d'un mur pour le périmètre spécifié. L'activation de la pose du mur provoque la planification du reste de la pose et place toutes les structures à au moins un carreau de distance du futur mur. Si vous planifier la construction d'un mur, vous devez définir explicitement quel périmètre vous souhaiter utiliser lorsque la partie commence. Cette action est exécutée une fois et sera utilisé pendant la configuration initiale.
Exemple :
(defrule
(enable-wall-placement 2)
=>
(disable-self)
)

generate-random-number <value>
Cette action génère un nombre entier aléatoire spécifique au JGO compris entre 1 et <value>. Ce nombre est stocké et sa valeur peut être testée. Les exécutions ultérieures de cette action généreront un nouveau nombre aléatoire qui remplacera celui existant.

log <string>
Cette action écrit le texte dans un fichier de log. Cette action n'est utile que pour les tests et ne fonctionne que si le mode log est actif.

log-trace <value>
Cette action écrit la valeur dans un fichier de log. Cette action n'est utile que pour les tests et ne fonctionne que si le mode log est actif.

release-escrow <resource-type>
Cette action libère les réserves de la ressource passée en paramètre.

research <research-item>
Cette action lance la recherche de la technologie passée en paramètre. Pour éviter de tricher, cette action utilise le même critère que l'information can-research pour être sûr que la technologie peut être recherchée.

research <age>
Cette action lance la progression vers l'age défini en paramètre.

resign
Cette action provoque l'abandon du JGO.

sell-commodity <commodity>
Cette action lance l'ordre de vente de la marchandise passée en paramètre.

set-difficulty-parameter <difficulty-parameter> <value>
Cette action modifie la valeur du paramètre de difficulté précisé en paramètre.

set-doctrine <value>
Cette action modifie la valeur de la doctrine

set-escrow-percentage <resource-type> <value>
Cette action définit le pourcentage de ressource mise en réserve pour la ressource précisée en paramètre. La valeur du pourcentage doit être compris entre 0 et 100.

set-goal <goal-id> <value>
Cette action définit la valeur de l'objectif précisé en paramètre.

set-shared-goal <shared-goal-id> <value>
Cette action définit la valeur de l'objectif partagé précisé en paramètre.

set-signal <signal-id>
Cette action lance le signal défini en paramètre. Ce signal peut être reconnu par le système de déclencheur (trigger).

set-stance <player-number> <diplomatic-stance>
Cette action permet de définir la politique diplomatique envers le joueur précisé en paramètre. Il est possible d'utiliser les paramètres jokers "any/&quo t;every" à la place du paramètre <player-number>.

set-strategic-number <strategic-number> <value>
Cette action permet de modifier la valeur du nombre stratégique passé en paramètre.

spy
Cette action exécute la commande d'espionnage.

taunt <value>
Cette action déclenche le message ou raillerie associé à la valeur passée en paramètre

taunt-using-range <taunt-start> <taunt-range>
Cette action déclenche un message aléatoire choisi parmi un intervalle de message.
Exemple:
(taunt-using-range 50 10) utilisera un message aléatoire compris entre 50 et 59.

train <unit>
Cette action lance l'entraînement du type d'unité passé en paramètre. Pour éviter de tricher, cette action utilise les mêmes crtières que l'information can-train pour s'assurer que l'unité peut être entraînée. Il est possible d'utiliser les paramètres jokers désignant une lignée d'unité à la place du paramètre <unit>.

tribute-to-player <player-number> <resource-type> <value>
Cette action provoque le versement d'une quantité de ressource au joueur défini dans les paramètres. Il y a des comportements spécifiques selon les cas :
- Si le JGO ne possède pas de marché, aucun tribut n'est distribué.
- Dans le cas où <value> est plus important que la quantité de ressource disponible, seules les ressources disponibles sont distribuées. Si par exemple, il y a 60 unités de nourriture et que le tribut est de 100 unités, seules 60 unités seront distribuées.
- Cette action est ignorée lorsqu'il n'y a pas de ressource du type précisé.
- Les taxes sur les tributs sont payés et déduits du montant du tribut (dans les cas applicables).
Il est possible d'utiliser les paramètres jokers "any/"every" à la place du paramètre <player-number>. Il est aussi possible d'utiliser les variables de règle pour le paramètre <player-number> ;.

Action d'entrée / sortie
chat-local
chat-local-using-id
chat-local-using-range
chat-local-to-self
chat-to-all
chat-to-all-using-id
chat-to-all-using-range
chat-to-allies
chat-to-allies-using-id
chat-to-allies-using-range
chat-to-enemies
chat-to-enemies-using-id
chat-to-enemies-using-range
chat-to-player
chat-to-player-using-id
chat-to-player-using-range
chat-trace
log
log-trace
taunt
taunt-using-range

Action de contrôle de règle
disable-self

Action sur les événements
acknowledge-event
acknowledge-taunt
disable-timer
enable-timer
set-signal

Actions commerciales
buy-commodity
sell-commodity

Action sur les tributs
clear-tribute-memory
tribute-to-player

Action de mise en réserve
release-escrow
set-escrow-percentage

Action en mo de régicide
spy

Action pipée
cc-add-resource

Autres actions
do-nothing
attack-now
build
build-forward
build-gate
build-wall
delete-building
delete-unit
enable-wall-placement
generate-random-number
research
resign
set-difficulty-parameter
set-doctrine
set-goal
set-shared-goal
set-stance
set-strategic-number
train