Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/diplomacyManager.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/ai/petra/diplomacyManager.js +++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/diplomacyManager.js @@ -24,6 +24,7 @@ this.nextTributeRequest.set("all", 240); this.betrayLapseTime = -1; this.waitingToBetray = false; + this.betrayWeighting = 150; this.diplomacyRequests = new Map(); }; @@ -241,7 +242,29 @@ turnFactor = gameState.getEntities(i).length; if (gameState.isPlayerNeutral(i)) // be more inclined to turn against neutral players - turnFactor += 150; + turnFactor += this.betrayWeighting; + + if (gameState.getGameType() === "wonder") + { + let wonder = gameState.getEnemyStructures(i).filter(API3.Filters.byClass("Wonder"))[0]; + if (wonder) + { + let wonderProgess = wonder.foundationProgress(); + if (wonderProgess === undefined) + { + playerToTurnAgainst = i; + break; + } + turnFactor += wonderProgess * 2.5 + this.betrayWeighting; + } + } + + if (gameState.getGameType() === "capture_the_relic") + { + let relicsCount = gameState.updatingGlobalCollection("allRelics", API3.Filters.byClass("Relic")) + .filter(relic => relic.owner() === i).length; + turnFactor += relicsCount * this.betrayWeighting; + } if (turnFactor < max) continue; @@ -372,6 +395,7 @@ "nextTributeRequest": this.nextTributeRequest, "betrayLapseTime": this.betrayLapseTime, "waitingToBetray": this.waitingToBetray, + "betrayWeighting": this.betrayWeighting, "diplomacyRequests": this.diplomacyRequests }; };