apparently this isn’t supposed to be out yet lol
guess u got it early
apparently this isn’t supposed to be out yet lol
guess u got it early
this is maybe the realest post you’ve ever made
Ever heard of Linear Action Resolution? It’s what I used before I realized LAR was not NAR.
Example (Low Number = Higher Priority):
LAR (Sequential):
NAR (Priority is given to those who are the least affected by other roles):
yeah it’s not intended as permanent
at the moment you’re (well, atm I’m) not supposed to put in roles where that’s an issue
Actually I’m pretty sure this is.
The solution… IIRC differs per host:
Natural Action Resolution Guide Table of Contents Introduction to NAR But what if two actions modify each other (or nobody has an unmodified action)? Addendum: But what if two players have the same role priority? Other Systems of Action Resolution Introduction to NAR Natural Action Resolution (or NAR) is the most standard system of deciding what order to use for resolving actions during a mafia game. It was originally designed by Xylthixlm over on MafiaScum. To utilize NAR, start …
yeah it’s not intended as permanent
at the moment you’re (well, atm I’m) not supposed to put in roles where that’s an issue
I’ve pondered the idea of partial roleblocks and redirects, where the effects of an action are partially cancelled out or partially redirected, respectively
there are too many actions that don’t work at all with that though, so I didn’t put it into Zugbot
it’d make an interesting setup idea though
In the system I have slowly been working on (actually figuring out the algorithms to detect this has been hellish), the shot would fail because the natural chain would be RBer of Empowerer, Empowerer, RBer of Vigi, Vigi. (It’s not really a chain, but an RBer targeting another player goes before the player they’re targeting unless their target somehow affects the RBer, and an Empowerer similarly would go before their target, but the specific arrangement is irrelevant as long as those specific orderings are satisfied.)
Again, the detection algorithms are extremely complicated and potentially computationally expensive, so it’s a problem I pick up with and tinker around on for a bit before setting it back down. I think you’d need to construct graphs for scopes of influence, create a cycle detection algorithm for those graphs, and ways of breaking cycles that aren’t straight up deleting all of the problematic actions in the cycle which also asks a lot of questions. And when you start asking how abilities that trigger during resolution affect things timing wise that complicates things further, and then there are a lot of actions where it may not become clear to a program that things are potentially problematic until they’re partially resolved so it may require literally running resolution simulations or something. The point is it’s hard.
I’ve pondered the idea of partial roleblocks and redirects, where the effects of an action are partially cancelled out or partially redirected, respectively
IE
Player A is a Jailkeeper, and Player B is a Roleblocker and a Vig.
Player A Jailkeeps Player B, and Player B shoots Player C. Also, Player B is attacked by the factional that night.
Player A and Player B both get half-roleblocked, so Player A’s protection of Player B is only half as effective, and player B’s vig shot does half the damage.
So, Player B and C end the night at half health (assuming everyone started at full health).
Yeah I want my action resolution to not give a shit about slot order, alignment, or time stamp and be deterministic. Also the atomic unit is not actions, but effects i.e. a conventional JK action is the composition of protection and blocking effects. Tiebreaking when there’s a cycle looks at the maximum intrinsic effect priority of each ability involved, and their scope (which just means what exactly the ability is affecting with generally narrower scopes winning out over larger ones). That sounds complicated, but it’s just a attempted formalization of NAR.
it’s a simple resolution that works for misc conflicting abilities i think? assuming you can’t find a better one which you generally can, it’s a good default
conflicting redirections absolutely should be cancelled tho
for coding
- Roleblocker (No. 1) blocks Doctor (No. 4)
- Jailkeeper (No. 2) jails Roleblocker (No. 1)
- Bus Driver (No. 3) swaps Roleblocker (No. 1) and Redirector (No. 5)
- Doctor (No. 4) heals Roleblocker (No. 1)
- Redirector (No. 5) redirects Bus Driver (No. 3) to Doctor (No. 4) || Since Bus Driver has two targets, assume only the first target gets redirected
I think I would resolve this as:
Doctor (No. 4) heals themself.
Roleblocker (No. 1) gets jailed.
Roleblocker (No. 1) gets told their action failed. Everyone else gets told that their action succeeded.
with most abilities you should generally be able to find a better resolution tho
oh damn have you been like, thinking about coding that kind of thing?
but it’s just a attempted formalization of NAR.
whyd u become an aussie at the end there
alr guys im gonna write the wandering souls OP wish me luck
a second muer has hit the afterlife
I’ve personally referred to it as Chain Resolution.
The way I’ve tried approaching it is like a linked list, where you keep working backwards through a chain of “that person was targeted by this person, who was targeted by this person” until you find the earliest person not targeted by what I’d dub an “action-affecting effect” (RB, bus drive, etc). From there, you resolve things.
Yes. On and off for years lol. Like sometimes I don’t think about it for months, but I do think about it and I’ve made some progress. So much of mafia game rules is just kinda fiat and not formalized that it makes writing the code for how I want it to work really difficult because it forces me to consider all of these questions. And I want it to be generalizable so I really have to decide how things work and interact with each other.