I spent most of today working on and testing the ability to exit battle peaceably. At first, I was going to call it "armistice" or "disengage," but then I noticed someone use the word "ceasefire." Since that word seems pretty clear, I went with that.
Here's a preview of one of the tests in action:
In the above picture, the player and two looters have agreed to a ceasefire. And in the right side inset, you can see two new moves: request ceasefire and accept ceasefire.
For the most part, all that matters is this: if everyone in battle chooses a passive move in the same turn, the battle ends with all combatants in the same hex. So if everybody requests a ceasefire, the game won't wait for everyone to agree/accept the requests, it just goes straight to ceasefire.
There are still some tricky parts to sort out (of course!). For one thing, I need to handle cases where some AI retreats while others are passive. Effectively, this should also end the battle, but it doesn't right now (retreat is considered fight/flight, not passive in the game).
I also need to work out some other modes of passive battle moves. Things like kicking off a conversation, or trading (if I can find a way).
However, this new ceasefire move is mostly working now. And the AI respects the local leader, too. So the subordinate AI shouldn't fight if the leader is passive, and vice versa.
The names of the looters you see above are just the old creature name with their leadership rating, for debugging purposes. One of the changes I'd like to make is the aforementioned "stranger" nomenclature, so players don't know motive just from seeing the name. Part of this will be adding "leader" or similar to the leader of any packs, so players know to whom they should direct ceasefires or talking for best effect.
We're making progress! Even at this stage, it's nice to see looters gradually decide to back off from a fight if you're nice to them for a few turns. Hopefully, we'll be seeing more nuance in their behavior soon!
That's all for this week. Have a good weekend, all!