As it stands now, dwarves will either:
a)Flee from a fight against a lesser/weaker foe, even if fully equipped.or more recently prevalent.
b)Charge dangerous creatures with nothing else but fists.I suggest a way for creatures to "size up", per se, a creature. By a creature checking the size and number of surrounding aggressors, dwarves and others can make decisions whether or not to attack, flee, or simply avoid.
This check for size and numbers could use the observer skill, with a percentage of a successful choice based on how high the skill is for a creature. It could also search for flags such as if the aggressor is armored, is attacking, is fleeing, etc. Equal battles (dwarf vs simiarly sized creature) would check discipline for a chance to flee.
Some examples:
>Urist McDwarf is outside gathering plants when he happens upon a elephant. Urist's observer skill checks to see if the elephant is actively pursuing him, which it isn't. He then checks the size of the elephant compared to himself, and decides to give the creature a wide berth to avoid it becoming aggressive, and continues about gathering plants. Had the elephant been attacking, Urist would have fled.
>Urist McDwarf is outside gathering logs when he is accosted by a buzzard. Urist's observer skill checks to see if the buzzard is actively pursuing him, which it is. He then checks the size of the buzzard compared to himself and discovers the buzzard is smaller. He also checks the area surrounding the buzzard for more buzzards, and finds only that single one, and decides to hold his ground against a single, small opponent. Had it been more than two attacking, Urist would have fled.
>Urist McDwarf is caught outside with a unarmed, hostile goblin. Urist's observer skill checks to see if the goblin is actively pursuing him, which he is. He then checks the size and finds both him and the goblin are nearly the same size. He then checks the goblin for weapons and finds none, then checks for numbers and finds only the single goblin. Urist stands his ground unless the battle tips in the goblins favor. Had the goblin been armed and Urist was unarmed, regardless of numbers, Urist also would have fled. An equal encounter also checks discipline for a chance to flee.
Animals would check for these flags less often than civilized humanoids, mostly checking for size and numbers. With dwarves at a size of 60,000 as an adult, I'm guessing a range of around 30,000 that the dwarf feels equal in stature to a creature. Any more and the creature is too big to fight for someone undisciplined, and any less being okay for possible engagement.
I am unaware how much processing power this will take, for each creature to check for a good amount of conditions. This is merely a suggestion, and can be stripped down to the bare bones in order to have similar function but fast implementation. Apologies if this has already been suggested, as my forum search turned up nothing like this.
Review:
1. Dwarves and other creatures flee creatures larger than themselves, unless the smaller creature's discipline skill is high enough to fight. This is mostly affects military attacking a large target. Civilians will give large, non-aggroed creatures a wide berth, and will run if attacked.
2. Dwarves and other creatures will not flee from creatures smaller than themselves, unless there is a significant amount of attackers. Civilians leave small, non-aggroed creatures alone.
3. Dwarves and other smart, civilized beings (human, elf, etc.) run from similarly sized, armored opponents if they themselves are unarmed. They also run from battles in which they are outnumbered either both are equally armed/unarmed. Military discipline negates this, allowing high disciplined dwarves to charge many armed assailants with little more than their fists.
4. Animals only check for size and numbers, and pay no attention to armor or weapons. Most creatures will run if they are losing a battle, and a setting for military retreat would keep players in control of not having high discipline dwarves fighting to the death.
5. The observer skill could come into play when creatures check size, armorment, etc., and could have an effect on whether they make the right choice.
TL;DR: dorfs run away from big things, punch small things, run from lots of small things