In CivIII, a barbarian unit hitting an undefended city does those actions:
Destroy building/production (if any),
Plunder gold (depending on city number, around 15 for 10 cities, until your treasury is empty),
Kill a citizen (probably, not the last one).
The problems to solve about reproducing this behaviour:
Can we make action fallbacks for specific cases? Like, a Diplomat possibly should not steal gold if found no sabotage target.
Just checking, does having no buildings or shield stock in a city trigger fallback actions for sabotage at all?
Sabotage resistance of buildings should be ignored (maybe a separate action for plundering barbarians and Civ3-style bombers that is like sabotage but uses another resistance effects, maybe rewrite to abandon hardcoded sabotage resistances for specific effects)
No diplomatic fight should happen (well, in CivIII that all happens after all units are wiped and it has no Diplomats at all, but still; separate non-diplomatic Sabotage/StealGold actions would do the trick but I would prefer a flexible system of "if action A by unit B attempted to a location C protected by unit D then action E(B, C) happens instead")
The amount of stolen gold for now is 1 + random(0..city bonus), it can't be related to the player's other cities. The CivIII's mechanics are not ideal though, probably 1 + player.gold * city.pop / player.sum_pop value should be used, how to demand it?
For the last option, we have "Poison City" but again need a non-diplomatic action, and better with another text message.
Also, all these actions shoyld be actor consuming (for barbarians, but not for bombers).