diff --git a/binaries/data/config/default.cfg b/binaries/data/config/default.cfg
index 6aa93992dd..85be121037 100644
--- a/binaries/data/config/default.cfg
+++ b/binaries/data/config/default.cfg
@@ -348,7 +348,6 @@ scale = 1.0 ; GUI scaling factor, for improved compatibili
enabletips = true ; Enable/Disable tips during gamesetup (for newcomers)
assignplayers = everyone ; Whether to assign joining clients to free playerslots. Possible values: everyone, buddies, disabled.
aidifficulty = 3 ; Difficulty level, from 0 (easiest) to 5 (hardest)
-aibehavior = "random" ; Default behavior of the AI (random, generalist, aggressive or defensive)
[gui.session]
camerajump.threshold = 40 ; How close do we have to be to the actual location in order to jump back to the previous one?
diff --git a/binaries/data/mods/public/gui/aiconfig/aiconfig.js b/binaries/data/mods/public/gui/aiconfig/aiconfig.js
index f70c938cc7..153d341023 100644
--- a/binaries/data/mods/public/gui/aiconfig/aiconfig.js
+++ b/binaries/data/mods/public/gui/aiconfig/aiconfig.js
@@ -1,11 +1,6 @@
-var g_AIBehaviorList = [{
- "Name": "random",
- "Title": translateWithContext("AI Behavior", "Random")
-}].concat(g_Settings.AIBehaviors);
-
var g_PlayerSlot;
-var g_AIDescriptions = [{
+const g_AIDescriptions = [{
"id": "",
"data": {
"name": translateWithContext("ai", "None"),
@@ -13,37 +8,28 @@ var g_AIDescriptions = [{
}
}].concat(g_Settings.AIDescriptions);
-var g_AIControls = {
- "aiSelection": {
- "labels": g_AIDescriptions.map(ai => ai.data.name),
- "selected": settings => g_AIDescriptions.findIndex(ai => ai.id == settings.id)
- },
- "aiDifficulty": {
- "labels": prepareForDropdown(g_Settings.AIDifficulties).Title,
- "selected": settings => settings.difficulty
- },
- "aiBehavior": {
- "labels": prepareForDropdown(g_AIBehaviorList).Title,
- "selected": settings => g_AIBehaviorList.findIndex(b => b.Name == settings.behavior)
- }
-};
-
function init(settings)
{
// Remember the player ID that we change the AI settings for
g_PlayerSlot = settings.playerSlot;
- for (let name in g_AIControls)
- {
- let control = Engine.GetGUIObjectByName(name);
- control.list = g_AIControls[name].labels;
- control.selected = g_AIControls[name].selected(settings);
- control.hidden = !settings.isController;
+ 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 label = Engine.GetGUIObjectByName(name + "Text");
- label.caption = control.list[control.selected];
- label.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;
}
function selectAI(idx)
@@ -62,7 +48,6 @@ function returnAI(save = true)
"id": g_AIDescriptions[idx].id,
"name": g_AIDescriptions[idx].data.name,
"difficulty": Engine.GetGUIObjectByName("aiDifficulty").selected,
- "behavior": g_AIBehaviorList[Engine.GetGUIObjectByName("aiBehavior").selected].Name,
"playerSlot": g_PlayerSlot
});
}
diff --git a/binaries/data/mods/public/gui/aiconfig/aiconfig.xml b/binaries/data/mods/public/gui/aiconfig/aiconfig.xml
index ac2d867170..ec333ffc50 100644
--- a/binaries/data/mods/public/gui/aiconfig/aiconfig.xml
+++ b/binaries/data/mods/public/gui/aiconfig/aiconfig.xml
@@ -8,7 +8,7 @@
-