Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/attackPlan.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/ai/petra/attackPlan.js +++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/attackPlan.js @@ -368,7 +368,7 @@ return false; let civ = gameState.getPlayerCiv(); - let classes = [["Siege", "Melee"], ["Siege", "Ranged"], ["Elephant", "Melee"]]; + const classes = [["Siege+Melee"], ["Siege+Ranged"], ["Elephant+Melee"]]; let hasTrainer = [false, false, false]; for (let ent of gameState.getOwnTrainingFacilities().values()) { @@ -625,7 +625,7 @@ { // find the actual queue we want let queue = this.queue; - if (MatchesClassList(firstOrder[3].classes, ["Siege", "Elephant+Melee+Champion"])) + if (firstOrder[4] == "Siege") queue = this.queueSiege; else if (firstOrder[3].classes.indexOf("Hero") != -1) queue = this.queueSiege; Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/headquarters.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/ai/petra/headquarters.js +++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/headquarters.js @@ -721,10 +721,9 @@ let units; if (classes.indexOf("Hero") != -1) units = gameState.findTrainableUnits(classes, []); - else if (classes.indexOf("Siege") != -1) // We do not want siege tower as AI does not know how to use it - units = gameState.findTrainableUnits(classes, ["SiegeTower"]); - else // We do not want hero when not explicitely specified - units = gameState.findTrainableUnits(classes, ["Hero"]); + // We do not want siege tower as AI does not know how to use it nor hero when not explicitely specified. + else + units = gameState.findTrainableUnits(classes, ["Hero", "SiegeTower"]); if (!units.length) return undefined;