Les actions et les expressions
Une action est une ligne de script réalisant une ou plusieurs modification, au jeu ou au contexte d'exécution. Pour pouvoir paramétrer le fonctionnement d'une action, celles-si s'appuient sur des expressions. Cependant, une action peut fonctionner sans expression, tout comme une expression peut être utilisée en dehors d'une action, comme pour définir une variable, vérifier une condition, etc.
La principale différence entre les actions et les expressions réside dans le fait que les actions ne retournent aucun résultat, là où les expressions retournent forcément un résultat. Ce résultat peut être de n'importe quel type.
Tous les types primitifs peuvent être utilisés en tant que paramètre d'une expression ou d'une action. Par exemple, cos(5)
reconnaît le nombre 5 et lui applique la fonction cosinus. Autre exemple, l'expression numbers in range of {number}
retourne un tableau contenant tous les nombres allant de 0 à {number}
.
Cependant, l'action shuffle {array}
ne fait que mélanger aléatoirement un tableau, et ne retourne aucun résultat. Elle applique directement la modification sur la variable passée en paramètre.
Certaines expressions peuvent demander plusieurs paramètres pour pouvoir s'exécuter. Par exemple, l'expression {element} is in {array}
fonctionne avec n'importe quel élément en premier paramètre, et avec un tableau en second paramètre.
Warning
Les expressions sont reconnues en fonction de leur "position" dans la ligne, les expressions les plus à droites ayant la priorité. Cela permet une interprétation cohérente de la ligne, comme le ferait un lecteur humain.
Tip
Pour éviter les confusions, il est possible d'utiliser des parenthèses pour définir l'ordre dans lequel les expressions doivent s'appliquer aux données. Par exemple, l'expression ① random element of numbers in range of (50+20) + 10
sera sensiblement différente de l'expression ② random element of numbers in range of (50) + 20 + 10
. Dans ①, le résultat sera la somme d'un élément aléatoire du tableau contenant les nombres entiers jusqu'à 70, et de 10. L'expression ① retournera donc un nombre compris entre 10 et 80. Cependant, l'expression ② retournera la somme d'un élément aléatoire du tableau contenant les nombres entiers jusqu'à 50, et de 10 et de 20. L'expression ② retournera donc un nombre compris entre 30 et 80. Cela peut paraître évident, mais dans des expressions plus complexes l'usage des parenthèses est important, d'une part pour éviter des problèmes liés aux types des paramètres de l'expression, et d'autre part pour permettre une meilleure lecture du script.