Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/entityExtend.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/ai/petra/entityExtend.js +++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/entityExtend.js @@ -168,8 +168,13 @@ return !target.decaying(); let antiCapture = target.defaultRegenRate(); - if (target.isGarrisonHolder() && target.garrisoned()) - antiCapture += target.garrisonRegenRate() * target.garrisoned().length; + if (target.isGarrisonHolder()) + { + const garrisonRegenRate = target.garrisonRegenRate(); + for (const garrisonedEntity of target.garrisoned()) + antiCapture += garrisonRegenRate * (gameState.getEntityById(garrisonedEntity)?.captureStrength() || 0); + } + if (target.decaying()) antiCapture -= target.territoryDecayRate(); Index: ps/trunk/binaries/data/mods/public/simulation/ai/petra/garrisonManager.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/ai/petra/garrisonManager.js +++ ps/trunk/binaries/data/mods/public/simulation/ai/petra/garrisonManager.js @@ -316,7 +316,7 @@ return around.meleeSiege; return holder.buffHeal() && ent.needsHeal(); case PETRA.GarrisonManager.TYPE_DECAY: - return this.decayingStructures.has(holder.id()); + return ent.captureStrength() && this.decayingStructures.has(holder.id()); case PETRA.GarrisonManager.TYPE_EMERGENCY: // f.e. hero in regicide mode if (holder.buffHeal() && ent.isHealable() && ent.healthLevel() < this.Config.garrisonHealthLevel.high) return true;