Proposal: Memory Management
Reached quorum 7 votes to 1. Enacted by Kevan.
Adminned at 03 Mar 2023 19:30:45 UTC
If the Proposal “Pretty Little Rows and Columns” was not enacted, then this Proposal has no further effect.
Add a new dynastic rule, titled “Disks”:
There exists a number of Disks, each of which has a name by which it is referred to, a Size, and an Effect. The list of all types of Disk is as follows:
{| class="wikitable"
|+ Disks
|-
! Name !! Size !! Effect
|-
| yank.c || 2 || You may Push a Disk from the Heap which shares a row or column with your Location.
|}When a Disk is Activated by a Runner, the Runner follows the instructions in that Disk’s Effect; a Disk’s Effect may only be carried out when it is Activated.
Add a new dynastic rule, titled “The Stack”:
Every Runner has a Stack, which is a publicly tracked ordered list of Disks defaulting to the empty list. Every Stack has a Capacity, which is a non-negative integer defaulting to 10. If the total Size of Disks on a Stack ever exceeds its Capacity, that Stack has Overflowed; the Runner or Gridmaster whose action caused a Stack to Overflow must repeatedly Pop that Stack until it is empty.
As a Weekly Action, a Runner with an empty Stack may add a copy of yank.c to their Stack.
When a Stack is Popped, its rightmost Disk is removed and added to the Heap in a Cell of the Popper’s choice (or a random Cell if the Gridmaster Popped it). At any time, a Runner may Pop their Stack.
When a Disk is Pushed, it is added to a Stack of the Pusher’s choice at the rightmost position and that instance of the Disk is removed from where it was previously being tracked.
Add a new dynastic rule, titled “The Heap”:
The Heap is a publicly tracked unordered list of Disks and the respective Cells of the Grid they are currently in, defaulting to the empty list. Every Disk in the Heap is tracked as a pair of its name and Cell (e.g. (yank.c, E4)).
An inventory system with a computer-y theme. Note that you can pop to any square on the grid; it’s this way so you can do so without revealing your location to others. Similarly, pushing is intended to always be able to be done remotely so that you can do so without completely revealing your location. This also provides no way of Activating Disks yet, but the intention is for you to only be able to activate disks near the top of your stack (maybe the top two disks).
JonathanDark: he/him
Thanks for going with C. Kids and their Haskell and Go these days… old man grumbling