Description
In order to make levels more complex, we could add a feature to preset actions that are going to be triggered in a specific index, e.g. a bcast from 0 at index 7.
Also, we could implement network partitions, these are not strictly actions because I don't know which packets are going to be dropped, instead I want to say something like "all packets from 0 to 1 will be dropped between step 0 to 5".
Another thing that could improve the levels interaction is to restrict the payloads that could be sent from each process, the user no longer will choose any payload but it must use the payload "provided" by the AppState
.
This "provided" state will not be in the core but in the UI input implementation, because is not a restriction from the point of view of the abstractions (aka is not in the book).
This implies
- Draw predefined actions (in a different style, e.g. greyed)
- Add a condition to check that these actions are triggered (in case the user selected to crash the process before)
- Allow set predefined actions per level
- Show actions that are about to trigger in Action Selection (*)
- Forbid removing predefined actions
(*) I'm not sure if this is the best, and if we should keep the Action Selection at all, but for now is the cheapest way to do it.