public boolean isUnderSiege() {
        int friendlyUnits = 0;
        int enemyUnits = 0;
        for (ColonyTile colonyTile : colonyTiles) {
            for (Unit unit : colonyTile.getWorkTile().getUnitList()) {
                if (unit.getOwner() == getOwner()) {
                    if (unit.isDefensiveUnit()) {
                        friendlyUnits++;
                    }
                } else if (getOwner().atWarWith(unit.getOwner())) {
                    if (unit.isOffensiveUnit()) {
                        enemyUnits++;
                    }
                }
            }
        }
        return enemyUnits > friendlyUnits;
    }