So everyone knows this issue needs some work. Hawks and workers do not a strategy make. Here is my proposal (difficult/impossible codework be damned!)
The Guardsman promotion, instead of guaranteeing protection against all assassins and being relatively difficult to get, should have some chance of protecting against an assassin's attack. So when an assassin attacks, the code goes through the stack Guardsman first, and gives a roll. If the guardsman's roll comes up, he defends. If not, the code rolls for the next guardsman, etc, until there are no more, and then the assassin targets the weakest combat unit and leaves the poor workers and birds out of it.
Example:
Defending stack = 2 guardsman (50% defend chance) axemen and a mage
Attacking stack = 3 assassins
Assassin attack 1: rolls a .6, bypasses first axeman. Rolls a .3, attacks second guardsman, damages him and dies.
Assassin attack 2: rolls a .4, attacks first axeman and gets a lucky kill.
Assassin attack 3: rolls a .9, bypasses wounded axeman. Attacks and kills mage, saves city from certain fiery death.
I think this makes sense in context - assassins are trying to bypass the 'hard' targets and attack the 'soft' ones, but they are not always successful. Furthermore, those trained against assassins are also not superhumans, and have a chance to fail.
This also makes the assassin/mage dynamic more fun. No more worker/hawk stacks, and no longer can a single high level guardsman protect 30 mages with impunity - some assassins will get through.
It also opens up two lines of promotions - Guardsman I-III and Evasion I-III which would buff/debuff the roll chance to defend. Also, traits and civs could get bonuses as well (Defensive, I'm looking at you
)
Comments?
The Guardsman promotion, instead of guaranteeing protection against all assassins and being relatively difficult to get, should have some chance of protecting against an assassin's attack. So when an assassin attacks, the code goes through the stack Guardsman first, and gives a roll. If the guardsman's roll comes up, he defends. If not, the code rolls for the next guardsman, etc, until there are no more, and then the assassin targets the weakest combat unit and leaves the poor workers and birds out of it.
Example:
Defending stack = 2 guardsman (50% defend chance) axemen and a mage
Attacking stack = 3 assassins
Assassin attack 1: rolls a .6, bypasses first axeman. Rolls a .3, attacks second guardsman, damages him and dies.
Assassin attack 2: rolls a .4, attacks first axeman and gets a lucky kill.
Assassin attack 3: rolls a .9, bypasses wounded axeman. Attacks and kills mage, saves city from certain fiery death.
I think this makes sense in context - assassins are trying to bypass the 'hard' targets and attack the 'soft' ones, but they are not always successful. Furthermore, those trained against assassins are also not superhumans, and have a chance to fail.
This also makes the assassin/mage dynamic more fun. No more worker/hawk stacks, and no longer can a single high level guardsman protect 30 mages with impunity - some assassins will get through.
It also opens up two lines of promotions - Guardsman I-III and Evasion I-III which would buff/debuff the roll chance to defend. Also, traits and civs could get bonuses as well (Defensive, I'm looking at you

Comments?