Community Garden/Ruleset

Time
All times mentioned in this ruleset are in UTC. Days start at 00:00 UTC.

Players
Any person may become a player by sending any message in any channel in The Community Garden category. A player may stop being a player by announcing their intent in any channel in The Community Garden category or by leaving the Discord server.

Measurement
Unless otherwise specified, all measurements of the plant are conducted using centimetres.

Seasons
At every point in time, it is one of three seasons, ordered as follows: Growth, Harvest, or Frost. On the first and fifteenth day of each month, the season changes to the next in the list.

Actions
Players and non-player persons may perform actions. Any player rolling dice or randomly selecting from weighted pools to resolve the result of a previous action is not, itself, an action.

The Plant
At the beginning of the cycle, the plant has a trunk with 0 features and a height of 0 centimetres.

Branches
The plant consists of a number of branches. Every branch has a parent branch, except for the trunk. When a branch comes into existence, it does so with 0 leaves and a length of 1 centimeter. The trunk is considered to be a branch for the purposes of this Ruleset.

Nesting Level
Every branch has a Nesting Level, defined in the following way: The trunk has a Nesting Level of 0, and every other branch has a Nesting Level equal to one more than the Nesting Level of its parent branch.

Position
All features on the plant have a position, which is equal to the length of their parent branch upon the feature coming into existence. This position does not change if the length of the parent branch does.

Identifiers (ID)
Every unique feature with a Nesting Level of 1 or more will additionally have a unique identifier or "ID", defined in the following way: Each unique feature identifier will begin with its position in centimetres (eg. 7 for 7cm) on its parent feature. Additionally, any feature on a shared position will incrementally be further identified with a lowercase English character in the sequence of the English alphabet, beginning with a and progressing to z. If additional features require identifiers beyond z, continue incrementing by doubling, then tripling the character identifier. (Ex. aa => zz, then aaa => zzz). Subsequent features will continue to be identified with this pattern as necessary.

Additionally, each unique feature identifier will contain positional information, starting with the unique identifier of each of its parent features beginning with Nesting Level 1 and proceeding to the feature's Nesting Level.

As a result, any unique feature can be referred to using the following format:

{Feature Type}@{Parent Identifiers}-{Unique Identifier}

Example references to features may look like:


 * leaf@7c: A leaf with Nesting Level 1, which is the 3rd feature at position 7cm.
 * branch@13c-4d: A branch with Nesting Level 2, which is the 4th feature at position 4cm growing from parent feature branch@13c.
 * flower@17e-3b-6: A flower with Nesting Level 3, which is the only feature at position 6cm growing from parent feature branch@3b, which in turn is growing from parent feature branch@17e.

Features
The plant may have any number of additional features, created via interaction with role-specific and plant-specific actions. The following type of features exist:


 * Leaves
 * Buds
 * Branches
 * Flowers
 * Fruits

Parents & Children
When a feature comes into existence, the feature it grows upon is referred to as its parent. Additionally, any features that are grown from a feature are referred to as its children. The Trunk has no parent.

General Growth
When the plant attempts to grow, any player may randomly select a weighted result from the General Growth Pool according to the current season.

Photosynthesis
When the plant is eligible for photosynthesis, any player prompt the plant to photosynthesise by posting their intent to do so as a single message in #plant-actions. When a successful photosynthesis action is made, the plant enters a photosynthesis cycle, then may immediately attempt to grow 1d6 times. The duration of the photosynthesis cycle is measured in days, and can be determined using the following formula and rounding up to the nearest integer: (Total length of the plant in centimeters)/√(Total number of leaves on the plant) = Photosynthesis cycle duration A photosynthesis cycle will count down at the start of each day, regardless of what time it starts. When the photosynthesis cycle ends, the plant becomes eligible for photosynthesis again.

Development
When the plant is eligible for a development roll, any player may choose a bud and make a development roll for that bud by posting their intent to do so as a single message in #plant-actions.

To make a development roll, roll 1d10 and add 1 to the result for every development roll that has been made for that bud previous to the current one. If the sum is 10 or more, the development roll succeeds. Regardless of the result, the plant stops being eligible for a development roll.

When a development roll succeeds, any person can roll 1dN, where N is one plus the Nesting Level of the branch the chosen bud grew from. If the result of this roll is 1, the chosen bud becomes a branch, and its parent branch is the branch the chosen bud grew from. Otherwise, the chosen bud becomes a flower.

Coronation
If no branch is specified when rolling for coronation, the specified branch is the 0th level branch on the plant.

When the plant becomes eligible for a coronation roll, any player may make a coronation roll on the specified branch. To make a coronation roll, randomly select a child branch among the direct children of the selected branch, then roll on the Coronation Pool for the selected child branch according to the current season. Regardless of the result, the plant stops being eligible for a coronation roll.

Roles
Players may have a role. The roles a player may have are defined by the rules with 'Role:' in their title, and actions defined with that rule are actions specific to that role. Players may perform actions specific to their role by posting their intent to do so as a single message in #plant-actions.

If a player does not have a role or has not changed roles within the past 7 days, the player may change roles by posting their intent to perform any action specific to that role as a single message in #plant-actions. The players role is changed, and then the action is performed.

Admiration
Any Admirer may admire the plant or its branches. When they admire the plant, they may optionally specify a valid result that could exist in the current Trunk Growth Pool. When they admire one of its branches, they may optionally specify a valid result that could exist in the current Coronation Pool.

If the plant has been admired at least once previously during a day it attempts to grow, add 1 entry of the specified result to the Trunk Growth Pool for that roll attempt. If no result is specified, add 1 entry of the following result for that roll attempt:

"The plant becomes eligible for a coronation roll today."

If the plant's branches have been admired at least once previously during a day it attempts to grow, add 1 entry of the specified result to the Coronation Pool for that roll attempt. If no result is specified, add 1 entry of the following result for that roll attempt:

"The branch grows 1 centimeter."

Forecasting
Any Admirer may observe the weather as a role-specific action. When they do, any player may randomly select a weighted result from the Weather Pool according to the season it will be the next day. When they do, any player may randomly select a weighted result from the Weather Pool according to the current season. Observing the weather for the plant any additional times on a day has no effect, as the weather hasn't changed.

Criticism
Any Critic may critique the plant or a player's action that was done that day.

If the plant has been critiqued at least once previously during a day it attempts to grow, then for that roll attempt:

If a watering action is critiqued, the plant that was watered can attempt to grow again on the second time the plant is watered that day, but only if the second watering comes after the critique, and from the player who did the critiqued action.
 * Add 2 entries of "The plant becomes eligible for a development roll today."
 * If the plant had not been also admired at least once previously during that day, instead add 1 entry of "Nothing Happens."

If an admire action is critiqued, the second time the plant or its branches are admired, double the number of entries added via the admiration for that plant, but only if the second admiration happens after the critique and from the player who did the critiqued action.

If a caretaker action is critiqued, the player of that action will learn from the inefficiency, and will not become fatigued on their first action the next day, unless they fall off the plant.

After a Critic has performed their third critique in a day, additional critiques from that player on that day have no effect. These additional critiques can not be taken seriously.

Watering
Any Gardener may water the plant. The first time the plant is watered each day, the plant may attempt to grow.

Composting
Any Gardener may create a bag of fertilizer for the plant. The bag of fertilizer is made from features in the composting pile. If a feature was in the composting pile at the beginning of a day, it has decomposed some and can be used to make one bag of fertilizer that day. When a bag of fertilizer is made from a feature, that feature is destroyed.

Fertilizing
Any Gardener may apply bags of fertilizer to the plant, as long as fertilizer is available. Bags of fertilizer are kinda tiny, so they can only be applied in integer quantities. Once a bag is applied, it is consumed whether or not the fertilizer has an effect.

If the plant is not in a photosynthesis cycle, then when the total bags of applied fertilizer is at least (sum of length of all branches combined)/10 bags, 1 d6 is added to the number of growth rolls the next time a photosynthesis cycle is triggered on the plant. Fertilizer can only do so much, so this effect can only apply once to a photosynthesis cycle. The amount of applied fertilizer is reset to zero whenever the plant's cycle changes.

The first time per day a bag of fertilizer is applied to the plant while it is in a photosynthesis cycle, then the cycle time is reduced by one day.

Role: Caretaker
Caretakers are very small. When a player becomes a Caretaker, they shrink down to a hundredth their size (generally somewhere around 1.75cm tall) before they do anything else.

Because of their small size, Caretakers become fatigued very easily for even simple actions. If they are fatigued, a Caretaker is unable to do any action and must rest. Should they cease to be Caretakers, players return to the size they were before they became Caretakers.

Climbing
Caretakers may climb to a specific location on the plant. If no location is specified, the player will climb to the lowest feature that is the tip of a branch. In the event of a tie, this feature is chosen randomly among the tied features. After climbing, a Caretaker will be fatigued for the rest of the day.

Pruning
Any Caretaker may prune a leaf at their current location on the plant. By pruning the plant, the plant will lose the leaf at that location.

If a leaf is successfully pruned:
 * It falls below into the composting pile, stored as the kind of feature it was on the plant.
 * The plant will become eligible for a coronation roll at the beginning of the next day.
 * The Caretaker who pruned the plant rolls 1d3. If they roll a 1, they fall off the plant. Though unharmed, this takes a lot out of a little Caretaker! If they fall of the plant, they become fatigued for the rest of the day, and for the entirety of the next day. If they do not fall of the plant, they still become fatigued for the rest of the day due to the hard work involved.

If the plant has been pruned at least once on the day previous to a day it attempts to grow, add 1 entry of 'The plant becomes eligible for a coronation roll today ' for that roll attempt.

Pollinating
Any Caretaker may pollinate a flower at their current location. In doing so, they get fluffy pollen from that flower all over them. If they had pollen on them from a different flower than the one they are pollinating, that pollen is removed from them, and the flower becomes pollinated. After pollinating, a Caretaker will be fatigued for the rest of the day.

The Plant Keeper
The Plant Keeper is a player. There is never more than one Plant Keeper at a time. The Plant Keeper is responsible for resolving rules disputes. The Plant Keeper may cease being such by stating so in #plant-keeper.

A request for clarification is an action that shall take the form of a question or statement. The proper response to a question is an action in the form of an answer to that question, and the proper response to a statement is the truth value of that statement.

Upon formal request by a player other than themself, the Plant Keeper shall, as quickly as possible, issue a response to the request. This response shall be binding only to the extent that it reasonably directly pertains to the request, and only to the extent that it does not blatantly and obviously contradict rules text.

In order to be the Plant Keeper, a player must be a Gardener. The Plant Keeper cannot change roles or perform actions specific to a role other than a Gardener under any circumstances.

Any Gardener may attempt to become the Plant Keeper by posting their intent to do so as an action in #plant-keeper. If after 7 days the message sent by the player has at least 3 :+1: reactions, and has more :+1: reactions than :-1: reactions, that player becomes the new Plant Keeper.

Proposals
Any person may make a proposal by sending a message as an action in #plant-proposals. If that message is deleted or modified during its voting period, the proposal is retracted. If there is an active proposal made by a person in the last 7 days, any new proposal they make is immediately retracted. An "active proposal" refers to any proposal that hasn't been retracted and is still in its 7-day voting period.

The voting period for proposals is 7 days. Once a proposal's voting period ends, if there are more votes in favor than against, the proposal takes effect.

A 👍 or 👎 reaction on a Proposal message at the time when the voting period ends constitutes a vote in favor or against, respectively.