Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Morale is a stat which defaults to zero, meaning no penalties. There are no benefits to morale above zero, except that it is a buffer against receiving morale penalties. The penalty for negative morale applies to incapacitation.

To determine a characters' morale, all of the positive and negative factors are first separately consolidated via a function that adds them with diminishing returns. Essentially this function sorts the effects from highest to lowest, then iterates through them, adding each subsequent effect at a reduced penalty. It may look something like this:

let mut positive_effects: Vec<f32> = ...;
positive_effects.sort().reverse();
let mut negative_effects: Vec<f32> = ...;
negative_effects.sort().reverse();

fn cumulative_morale(effects: &[f32]) -> f32 {
	effects.iter()
		.enumerate()
		.fold(0., |acc, (effect, i)| 
			acc + effect / (i + 1) as f32
		)
}

// or maybe this
fn cumulative_morale_alt(effects: &[f32]) -> f32 {
	effects.iter()
		.fold(0., |acc, effect| 
			acc + effect / acc
		)
}

let cumulative_positive = cumulative_morale(&positive_effects);
let cumulative_negative = cumulative_morale(&negative_effects);
let final_morale = cumulative_positive - cumulative_negative / character.skill_check(will);

Positive Morale Effects

  • Charisma skill check from each party member
    • Multiplied by mutual faith of the given party member and that of oneself
    • Divided by total conflicting faith of the pair (could alternatively be negative)
  • Food quality
    • Higher quality food (like well-seasoned) = more expensive
  • Recent successes
    • Each enemy routed/killed at the tactical layer, each encounter won at the strategic layer
  • Allied power / enemy power
    • If the total strength of your force is greater than the enemy, apply the difference as positive morale

Negative Morale Effects

  • Injuries
  • Disease
  • Recent defeats
    • Huge penalty when seeing an ally die or flee
  • Enemy power / allied power
    • Multiplied by the "fear multiplier" of the enemy. For most this would be 1.0, but we would give undead high multipliers and demons a huge multiplier.
    • This should be one of the reasons that player characters are better at dealing with fantasy enemies than knights and soldiers. Adventurers (especially when accompanied by bards and/or clerics) should have much higher morale bonuses than normal characters.