Index: binaries/data/mods/public/simulation/ai/petra/entityExtend.js =================================================================== --- binaries/data/mods/public/simulation/ai/petra/entityExtend.js +++ binaries/data/mods/public/simulation/ai/petra/entityExtend.js @@ -168,8 +168,11 @@ return !target.decaying(); let antiCapture = target.defaultRegenRate(); - if (target.isGarrisonHolder() && target.garrisoned()) - antiCapture += target.garrisonRegenRate() * target.garrisoned().length; + if (target.isGarrisonHolder()) + { + for (const garrisonedEntity of target.garrisoned()) + antiCapture += target.garrisonRegenRate() * (gameState.getEntityById(garrisonedEntity).captureStrength() || 0); + } if (target.decaying()) antiCapture -= target.territoryDecayRate(); Index: binaries/data/mods/public/simulation/ai/petra/garrisonManager.js =================================================================== --- binaries/data/mods/public/simulation/ai/petra/garrisonManager.js +++ 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;