you can use this to capture a wider range of camera positions when making cinematics, or just to
get a better view of your scenario.
o Aligning Units: The Align Selection option, under the Objects menu in the editor, will snap the
selected objects position to the grid. This is of particular note when placing unclaimed
Settlements by hand, because only properly aligned Settlements can be used by the computer
player AI for building new Town Centers.
o Scaling Units: K and SHIFT+K can be used in the editor to scale objects up and down. This can
give you some unique and interesting effects. Note however that objects with attachments (like
soldiers with swords) will not scale their attachment positions properly, so use with care.
o AI Debugging: In order to engage the AI debugger, you must first put "+aiDebug +showAIEchoes
+logAIErrors" on the command line when running Titans. When playing a scenario with AI
players, you can press ALT+SHIFT+D to open the AI debugger. The AI debugger is a complex
tool with many options that are beyond the scope of documentation here, but should be familiar
to anyone who is familiar with source level code debuggers. With those options on the command
line, when playing a game with AI players, some extra hotkeys will open AI diagnostic windows.
ALT+W will open an AI info dialog for a specific unit, and CTRL+ALT+W will open an info dialog
that will continually change based on the currently selected unit. CTRL+ALT+I will open a menu
to view the "brain" of the AI (its, plans, goals, and the like). ALT+Q will toggle the AI output
window.
o Setting AI Players: In order to use the new AI scripts and personalities in your own scenarios,
when choosing an AI script via the AI button in Scenario > Player Data, use any of the following
scripts:
aomxailoaderaggboom.xs (Conqueror personality)
aomxailoaderbalanced.xs (Standard personality)
aomxailoaderboom.xs (Builder personality)
aomxailoaderdefboom.xs (Protector personality)
aomxailoaderdefrush.xs (Defender personality)
aomxailoaderecorush.xs (Unused personality, quick jump to heroic age)
aomxailoaderrush.xs (Attacker personality)
aomxailoader.xs (Random personality)
o Trigger Copy: Trigger effects, trigger conditions, and entire triggers can now be copied. Press the
Copy button in the trigger editing UI panel.
o Variations: When in the editor, CTRL+ALT+V can be used to toggle between variations of units.
For example, this can be used to change between types of trees or switch villagers between
male and female versions. Cinematic objects from the single-player campaign often represent
completely different objects with different variations. This is the same as right-clicking when
placing down a unit in the editor.
o Condition Logic: When viewing the conditions of a trigger, you can now select OR and NOT from
the trigger editing UI panel. If OR is selected it will cause the trigger to fire when any individual
condition is true. If NOT is selected it will cause the trigger condition logic to be negated. Here is
a quick table showing the logical states of a trigger, assuming it has two conditions, A and B.
Nothing selected: A && B ; both A and B must be true for the condition to fire
OR selected: A || B ; either A or B must be true for the condition to fire
NOT selected: ! (A && B) ; if either A or B is false, the condition will fire
OR, NOT selected: ! (A || B ) ; A and B must both be false for the condition to fire
o Using God Powers: When invoking God Powers in a scenario from player zero, you are no longer
required to grant that God Power first.
New Trigger Content
o Condition—Unit on Lush: This condition will activate when Gaia Lush is underneath the selected
unit.
o Condition—Unit Is Garrisoned In: This condition is used to check when a specific unit has been
garrisoned into another unit of an appropriate type. For example setting this on a relic and setting
the Container Type to Temple will ensure that it only fires when the relic is contained in a
Temple, not when a Hero picks it up.
o Condition—Chat Contains: This condition will activate when a string matching the trigger's string