Recently I've been making more of a habit of micromanaging my dwarves' jobs to encourage them to take breaks. It frustrates me that this is something they want, but that they won't do themselves (X feels frustrated at not seeing friends, etc). I think there's an increasing need to be able to mandate particular holidays for our dwarves, either as a one-off or as a recurring event. I suggest:
1. First pass: set a holiday.
Pick a calendar date to start and stop. During this time dwarves will only take "idle" jobs (prayer, parties, eating, drinking, etc). Military dwarves stop training but follow other orders. The holiday should have an option to occur once, or recur annually, and should get a procgen name ("the feasts of shaming" here we come).
2. Second pass: job filters
Once the basic framework for getting dwarves to take a break is in we should have filters for certain jobs that still get done. For example, I think most forts would like people to still do Orderly and medical labours on holiday, but sometimes we might want to make sure everyone, even the nurses, gets a break. This might also allow us to choose whether or not military dwarves get a break from training. in my fort I'd leave food hauling on, eg. If a dwarf misses a holiday because they wind up working extra labours, they might have a chance to get a bad thought and memory.
There's a few ways this could be done... Maybe we micromanage which labours are done on which holiday, or maybe each labour detail has a tick box for "observe holidays", and if ticked then that labour disables when the holidays do. I prefer doing it by detail myself, generally, but there's a lot to be said for allowing just your haulers or just your fisher dwarves to get a break, and that would be a feature that requires each holiday to be able to be set individually. Perhaps it should be still done via the work details window, where you can click "observe holidays" or expand to specify which holidays a particular detail is disabled by. Similarly, I think squads should have an "observe holidays" ticky box so that we can keep our trainee squads working hard through dwarfmas because they need to be ready for goblins.
I think this step of implemention is probably needed for the feature to be player released. Steps 3 and 4 would be fun but are flavour, it's feature-complete at this point for playability.
3. Observance details
Next pass is to integrate holidays into dwarf culture. We should be able to define a number of historical events or individuals commemorated by a holiday, and (optionally) associate it with particular materials and foods as well. For example, "The Feasts of Shaming" could commemorate the founding of the fortress Shieldwax and be associated with crowns, nickel, and plump helmet wine. Dwarves will preferentially seek these objects and materials during the festival, and get extra happy thoughts for them. Being unable to get a particular associated food or material should generate a minor bad thought ("Couldn't properly celebrate the Feasts of Shaming without a crown"). This should help discourage players from over-stacking associated materials. However, personally, I think the idea of the Feasts of Shaming ending with your fort drained of plump helmet wine and the meeting hall littered with crowns and sterling silver trinkets that the dwarves discarded as the festival ended is delightful. On the other hand, a simple break from work doesn't need any such associations and will then give no significant extra happy thoughts, but will at least let our dwarves take a dang break.
Three specific types of festivals would be religious, memorial, and trade. Religious festivals are associated with a deity as their historical figure. If you have a temple to that deity, the festival will take place there. Dwarves who follow that deity will get extra happy thoughts, but may get a bad memory for missing. The materials for the festival should be limited to symbols associated with the deity's spheres.
If the festival is a memorial, dwarves who knew the memorialized entity may get extra happy thoughts for participating in a festival dedicated to their friend, or the festival might help reduce bad memories from their death (and vice versa for missing it). This allows us to throw funerals, or even grand annual celebrations of life for that epic hammerdwarf that sacrificed herself against the swamp titan. The choices for materials for the festival should be limited to those that were in the memorialized entity's preferences.
If the festival is dedicated to a trade, it takes place in their guildhall, and associated labour must be disabled automatically. Guild members get extra happiness but also they might put on little demonstrations during the festival, giving attendees a bit of xp in whatever trade is relevant. I think it would be hard to limit materials for this to appropriate ones without making new RAW lists, but it would be very nice if the individual possibilities for guilds had their own lists of appropriate festival symbols.
4. Later developments
Going forward we might see randomly generated festivals in adventure mode, or festivals that are associated with a civilization that are prearranged when you get your fort. It could also be interesting to have other subtypes like "military" which comes with a parade, or "artifact" where dwarves gather around an artifact and commemorate its creation. The same code on a smaller scale might be used to get dwarves to celebrate personal achievements: perhaps there could be random "hidden"festivals dwarves create for themselves for their own personal achievements, which they'd invite friends to. That would probably integrate with the "throw a party" mechanic so that we'd know what the party was about.
For example, a dwarf might set up their own annual party to:
- commemorate the birth of a child or death of a loved one
- celebrate the time they made an artifact or their first masterpiece item
- celebrate killing a particular foe
- remember getting appointed to a position
- sit alone in the inn drinking and dwelling on a recurring bad memory
- remember the time they named an item
The likelihood of this happening would have to be defined by the dwarf's traits, and so would the duration and number of parties. Dwarves with a low work ethic or a high preference for memorializing things may wind up developing a roster of annual celebrations they honour for a few days at a time; this would make them less effective workers, but also, would make them naturally less likely to become frustrated at being overworked.
It might be reasonable to have the dwarf's personal festivals listed somewhere in their examine window, and allow us to toggle certain ones off; if we do so, though, that dwarf should get a fairly significant bad thought for being forced to work through it.