Index: binaries/data/mods/public/gui/aiconfig/aiconfig.js
===================================================================
--- binaries/data/mods/public/gui/aiconfig/aiconfig.js
+++ binaries/data/mods/public/gui/aiconfig/aiconfig.js
@@ -13,23 +13,30 @@
// Remember the player ID that we change the AI settings for
g_PlayerSlot = settings.playerSlot;
- let aiSelection = Engine.GetGUIObjectByName("aiSelection");
- aiSelection.list = g_AIDescriptions.map(ai => ai.data.name);
- aiSelection.selected = g_AIDescriptions.findIndex(ai => ai.id == settings.id);
- aiSelection.hidden = !settings.isController;
-
- let aiSelectionText = Engine.GetGUIObjectByName("aiSelectionText");
- aiSelectionText.caption = aiSelection.list[aiSelection.selected];
- aiSelectionText.hidden = settings.isController;
-
- let aiDiff = Engine.GetGUIObjectByName("aiDifficulty");
- aiDiff.list = prepareForDropdown(g_Settings.AIDifficulties).Title;
- aiDiff.selected = settings.difficulty;
- aiDiff.hidden = !settings.isController;
-
- let aiDiffText = Engine.GetGUIObjectByName("aiDifficultyText");
- aiDiffText.caption = aiDiff.list[aiDiff.selected];
- aiDiffText.hidden = settings.isController;
+ for (let elemName of ["aiSelection", "aiDifficulty", "aiBehavior"])
+ {
+ let elem = Engine.GetGUIObjectByName(elemName);
+ switch (elemName)
+ {
+ case "aiSelection":
+ elem.list = g_AIDescriptions.map(ai => ai.data.name);
+ elem.selected = g_AIDescriptions.findIndex(ai => ai.id == settings.id);
+ break;
+ case "aiDifficulty":
+ elem.list = prepareForDropdown(g_Settings.AIDifficulties).Title;
+ elem.selected = settings.difficulty;
+ break;
+ case "aiBehavior":
+ elem.list = prepareForDropdown(g_Settings.AIBehaviors).Title;
+ elem.selected = g_Settings.AIBehaviors.findIndex(b => b.Name == settings.behavior) || 0;
+ break;
+ }
+ elem.hidden = !settings.isController;
+
+ let elemText = Engine.GetGUIObjectByName(elemName + "Text");
+ elemText.caption = elem.list[elem.selected];
+ elemText.hidden = settings.isController;
+ }
}
function selectAI(idx)
@@ -48,6 +55,7 @@
"id": g_AIDescriptions[idx].id,
"name": g_AIDescriptions[idx].data.name,
"difficulty": Engine.GetGUIObjectByName("aiDifficulty").selected,
+ "behavior": g_Settings.AIBehaviors[Engine.GetGUIObjectByName("aiBehavior").selected].Name,
"playerSlot": g_PlayerSlot
});
}
Index: binaries/data/mods/public/gui/aiconfig/aiconfig.xml
===================================================================
--- binaries/data/mods/public/gui/aiconfig/aiconfig.xml
+++ binaries/data/mods/public/gui/aiconfig/aiconfig.xml
@@ -10,7 +10,7 @@
-