Index: binaries/data/mods/public/simulation/ai/petra/chatHelper.js =================================================================== --- binaries/data/mods/public/simulation/ai/petra/chatHelper.js +++ binaries/data/mods/public/simulation/ai/petra/chatHelper.js @@ -238,5 +238,42 @@ }); }; +/** + * Call all AI chats for internalization checks. + * As not all messages can fit on screen, they are subdivided in 2 parts. + * For example, the first part is displayed by adding + * m.chatTest(gameState, 1); + * at the beginning of headquerters::update + * + * Assume a 4 players game with human as 1 and AIs 2, 3 and 4, and 1 and 2 are allies. + */ +m.chatTest = function(gameState, part) +{ + if (PlayerID != 2 || gameState.ai.playedTurn % 10 != 1) + return; + + if (part == 1) + { + for (let attack in m.launchAttackMessages) + m.chatLaunchAttack(gameState, 3, attack); + for (let answer in m.answerRequestAttackMessages) + m.chatAnswerRequestAttack(gameState, 3, answer, 4); + m.chatSentTribute(gameState, 1); + m.chatRequestTribute(gameState, "food"); + m.chatNewTradeRoute(gameState, 1); + } + else + { + for (let stance in m.newDiplomacyMessages) + m.chatNewDiplomacy(gameState, 1, stance); + for (let request in m.sendDiplomacyRequestMessages) + for (let status in m.sendDiplomacyRequestMessages[request]) + m.chatNewRequestDiplomacy(gameState, 1, request, status); + for (let request in m.answerDiplomacyRequestMessages) + for (let answer in m.answerDiplomacyRequestMessages[request]) + m.chatAnswerRequestDiplomacy(gameState, 1, request, answer, { "wanted": 500, "type": "food" }); + } +}; + return m; }(PETRA); Index: binaries/data/mods/public/simulation/ai/petra/headquarters.js =================================================================== --- binaries/data/mods/public/simulation/ai/petra/headquarters.js +++ binaries/data/mods/public/simulation/ai/petra/headquarters.js @@ -2642,6 +2642,8 @@ */ m.HQ.prototype.update = function(gameState, queues, events) { + m.chatTest(gameState, 1); + Engine.ProfileStart("Headquarters update"); this.turnCache = {}; this.territoryMap = m.createTerritoryMap(gameState);