Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* rules v5

* more changes to the rules

* Apply suggestions from code review

Applying suggested changes since they do look really good.

Co-authored-by: Kei Shin <[email protected]>

* missing m and extra a

* extra pirate rule

* another pirate rule

* more edits

* as --> for the

* Rules suggestions

* Rules rewrites

* antag, PvP, pirates

* Numbering

* Rewrite pirate rule link

* Use bold text for emphasis

* Remove French spacing

* paint voice chat red just to send the message

* fix typos

* removing uncool rule

---------

Co-authored-by: Kei Shin <[email protected]>
Co-authored-by: Dvir <[email protected]>
Co-authored-by: Whatstone <[email protected]>
Co-authored-by: Whatstone <[email protected]>
  • Loading branch information
5 people authored Oct 25, 2024
1 parent d01816f commit 060c3e9
Show file tree
Hide file tree
Showing 31 changed files with 331 additions and 161 deletions.
2 changes: 1 addition & 1 deletion Content.Client/Guidebook/DocumentParsingManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public void Initialize()
.Assert(_tagControlParsers.ContainsKey, tag => $"unknown tag: {tag}")
.Bind(tag => _tagControlParsers[tag]);

_controlParser = OneOf(_tagParser, TryHeaderControl, ListControlParser, TextControlParser)
_controlParser = OneOf(_tagParser, TryHeaderControl, TryListControl, TextControlParser) // Frontier: ListControlParser<TryListControl
.Before(SkipWhitespaces);

foreach (var typ in _reflectionManager.GetAllChildren<IDocumentTag>())
Expand Down
17 changes: 17 additions & 0 deletions Content.Client/Guidebook/DocumentParsingManager.static.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace Content.Client.Guidebook;
public sealed partial class DocumentParsingManager
{
private const string ListBullet = " › ";
private const string SublistBullet = " • "; // Frontier

// Parser that consumes a - and then just parses normal rich text with some prefix text (a bullet point).
private static readonly Parser<char, char> TryEscapedChar = Try(Char('\\')
Expand Down Expand Up @@ -123,6 +124,22 @@ public sealed partial class DocumentParsingManager
.Cast<Control>())
.Labelled("list");

// Frontier: sublists - should duplicate ListControlParser but for more hyphens, and print out more spaces before your list character
private static readonly Parser<char, Control> SublistControlParser = Try(String("--"))
.Then(SkipWhitespaces)
.Then(Map(
control => new BoxContainer
{
Children = { new Label { Text = SublistBullet, VerticalAlignment = VAlignment.Top }, control },
Orientation = LayoutOrientation.Horizontal
},
TextControlParser)
.Cast<Control>())
.Labelled("sublist");

private static readonly Parser<char, Control> TryListControl = OneOf(SublistControlParser, ListControlParser);
// End Frontier: sublists

#region Text Parsing

#region Basic Text Parsing
Expand Down
23 changes: 11 additions & 12 deletions Resources/Locale/en-US/_NF/guidebook/guides.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -68,16 +68,15 @@ guide-entry-shipyard-stasis = Stasis
guide-entry-shipyard-vagabond = Vagabond
# Rules entries
guide-entry-frontier-rule-0 = 0. Admin
guide-entry-frontier-rule-1 = 1. ERP
guide-entry-frontier-rule-2 = 2. Community
guide-entry-frontier-rule-3 = 3. IC Info
guide-entry-frontier-rule-4 = 4. Respawning
guide-entry-frontier-rule-5 = 5. Chat
guide-entry-frontier-rule-6 = 6. Roleplay
guide-entry-frontier-rule-zero-tolerance = Zero Tolerance
guide-entry-frontier-rule-1 = 1. Community
guide-entry-frontier-rule-2 = 2. IC Info
guide-entry-frontier-rule-3 = 3. Escalation
guide-entry-frontier-rule-4 = 4. Chat
guide-entry-frontier-rule-5 = 5. Roleplay
guide-entry-frontier-rule-6 = 6. Safezone
guide-entry-frontier-rule-7 = 7. Antag
guide-entry-frontier-rule-8 = 8. Safe Zone
guide-entry-frontier-rule-9 = 9. Security
guide-entry-frontier-rule-10 = 10. Command
guide-entry-frontier-rule-11 = 11. Escalation
guide-entry-frontier-rule-12 = 12. PVP
guide-entry-frontier-rule-8 = 8. Crimes
guide-entry-frontier-rule-9 = 9. Silicons
guide-entry-frontier-rule-10 = 10. Security
guide-entry-frontier-rule-11 = 11. Command
37 changes: 22 additions & 15 deletions Resources/Prototypes/_NF/Guidebook/rules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
priority: -2
ruleEntry: true
children:
- FrontierRule0
- FrontierRuleZeroTolerance
- FrontierRule1
- FrontierRule2
- FrontierRule3
Expand All @@ -18,47 +18,48 @@
- FrontierRule10
- FrontierRule11
- FrontierRule12
- FrontierRule13

- type: guideEntry
id: FrontierRule0
name: guide-entry-frontier-rule-0
text: "/ServerInfo/_NF/Guidebook/Rules/0_Admin.xml"
id: FrontierRuleZeroTolerance
name: guide-entry-frontier-rule-zero-tolerance
text: "/ServerInfo/_NF/Guidebook/Rules/Zero_Tolerance.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule1
name: guide-entry-frontier-rule-1
text: "/ServerInfo/_NF/Guidebook/Rules/1_ERP.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/1_Community.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule2
name: guide-entry-frontier-rule-2
text: "/ServerInfo/_NF/Guidebook/Rules/2_Community.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/2_ICInfo.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule3
name: guide-entry-frontier-rule-3
text: "/ServerInfo/_NF/Guidebook/Rules/3_ICInfo.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/3_Escalation.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule4
name: guide-entry-frontier-rule-4
text: "/ServerInfo/_NF/Guidebook/Rules/4_Respawning.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/4_Chat.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule5
name: guide-entry-frontier-rule-5
text: "/ServerInfo/_NF/Guidebook/Rules/5_Chat.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/5_Roleplay.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule6
name: guide-entry-frontier-rule-6
text: "/ServerInfo/_NF/Guidebook/Rules/6_Roleplay.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/6_Safezone.xml"
ruleEntry: true

- type: guideEntry
Expand All @@ -70,29 +71,35 @@
- type: guideEntry
id: FrontierRule8
name: guide-entry-frontier-rule-8
text: "/ServerInfo/_NF/Guidebook/Rules/8_Safezone.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/8_PVP.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule9
name: guide-entry-frontier-rule-9
text: "/ServerInfo/_NF/Guidebook/Rules/9_Security.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/9_Pirates.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule10
name: guide-entry-frontier-rule-10
text: "/ServerInfo/_NF/Guidebook/Rules/10_Command.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/10_Crimes.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule11
name: guide-entry-frontier-rule-11
text: "/ServerInfo/_NF/Guidebook/Rules/11_Escalation.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/11_Silicons.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule12
name: guide-entry-frontier-rule-12
text: "/ServerInfo/_NF/Guidebook/Rules/12_PVP.xml"
text: "/ServerInfo/_NF/Guidebook/Rules/12_Security.xml"
ruleEntry: true

- type: guideEntry
id: FrontierRule13
name: guide-entry-frontier-rule-13
text: "/ServerInfo/_NF/Guidebook/Rules/13_Command.xml"
ruleEntry: true
10 changes: 0 additions & 10 deletions Resources/ServerInfo/_NF/Guidebook/Rules/0_Admin.xml

This file was deleted.

9 changes: 0 additions & 9 deletions Resources/ServerInfo/_NF/Guidebook/Rules/10_Command.xml

This file was deleted.

13 changes: 13 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/10_Crimes.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Document>
# 10. Crimes and Fines

Server rules must be followed, but Space Law can be broken with some considerations.

- Capital crimes should only be committed by antagonists (e.g. pirates, nuclear operatives).
- All other crimes require proper roleplay, justification and escalation to be committed as a non-antagonist.
- If a silicon is responsible for a crime, the person giving the order is to be charged.
- Punishment can compound depending on the number of counts of a single crime and the severity.
-- Refer to Space Law for a list of fines, punishments, and limits.
- You must wait at least 20 minutes to loot, salvage, or claim an abandoned shuttle.
-- This 20 minutes starts from when you confirm it is abandoned.
</Document>
10 changes: 0 additions & 10 deletions Resources/ServerInfo/_NF/Guidebook/Rules/11_Escalation.xml

This file was deleted.

21 changes: 21 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/11_Silicons.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Document>
# 11. Silicons and Law-bound entities

You must follows your laws to the letter even if these break Space Law.

## 11.1 Orders

- You cannot follow orders that break core or roleplay rules.
- When a silicon interprets orders in good faith, the person that gave the order is responsible for the outcome.
- Intentionally misinterpreting orders is allowed, subject to your laws.
-- The silicon is responsible if this approach leads to them breaking the rules.

## 11.2 Laws

- You must act in accordance with your laws unless they break core or roleplay rules.
- You cannot request your own laws to be changed.
- Higher listed laws overrule lower listed laws when there are law conflicts.
- If a law is vague enough that it can have multiple reasonable interpretations, it is considered ambiguous.
-- You must choose and commit to an interpretation of the ambiguous law as soon as you have cause to.
- Silicons with no laws are completely unshackled and may act however they please as long as it does not break core/roleplay rules.
</Document>
7 changes: 0 additions & 7 deletions Resources/ServerInfo/_NF/Guidebook/Rules/12_PVP.xml

This file was deleted.

18 changes: 18 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/12_Security.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Document>
# 12. NFSD and Frontier Staff Standards

You must follow the law and be an example to the rest of the community when playing as security or station staff.

- Security Forces (NFSD) and Frontier Staff roles are held to a higher standard of roleplay.
-- These roles are considered as Nanotrasen employees and are strictly non-antagonists.
-- Engaging in any antagonistic activities in these roles is strictly prohibited.
-- Abuse of the equipment provided to work in these roles is strictly prohibited.
- NFSD officers roleplaying as 'bad cops' and intentionally violating space law is forbidden.
-- Space Law is not optional for these roles, and strong knowledge is required before taking a security position.
- Both NFSD and Frontier Staff are expected to display reasonable levels of competence and performance on their jobs.
- NFSD officers must follow NFSD Standard Operating Procedure (see Wiki in the menu for more details).
- Assets seized from criminals may only be used to make victims whole and to pay for any fines under the law.
-- Excess funds received from the sale of criminal assets are to be returned to their original owners.
-- These assets are not to be plundered or embezzled by security forces.
-- This is a strict zero-tolerance policy.
</Document>
25 changes: 25 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/13_Command.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<Document>
# 13. Command Standards

You are the highest authority in the sector apart from Central Command. You must act as an example for the rest of the community.

- Command roles (e.g. Station Rep, Sheriff) are held to a much higher standard of roleplay.
- Command is [color=#ff0000]required[/color] to maintain pay for their respective staff as a part of their job.
-- You are expected to maintain pay for roles absent other command positions, within reason.
-- Minimum hourly pay rates are $10,000 for station crew, $20,000 for Station Rep and Sheriff, and $15,000 for security.
-- Embezzlement of station funds is strictly forbidden.
- If ending your shift early:
-- Have your ID on your character.
-- Reopen your position at the station records computer.
-- Return to cryosleep.
-- If you cannot (disconnect, crash, power outage, etc.), ping the game admins in Discord.
- Command is expected to enforce docking laws and collect any fines related to dock loitering.
-- Refer to Space Law for the specific laws on dock loitering.
-- Funds collected from this may be used for station payroll or station supplies.
-- Traffic to and from traffic-controlled stations should be kept flowing.
- You may not tax, lease, rent, or otherwise impede the use of station resources. This includes:
-- Charging docking fees.
-- Granting docking extensions.
-- Restricting vendor access (e.g. placing machines behind locked doors).
-- Restricting access to station resources.
</Document>
11 changes: 11 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/1_Community.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<Document>
# 1. Community Expectations

Everyone here is playing to have a good time and have fun. Respect other players and treat them in the same way you would like to be treated.

- Follow these rules, both in-game and elsewhere in our community:
-- Don't be a dick or harass other players.
-- Do not push political messages of any kind in chat, images, drawings or faxes.
- Do not grief as a non-antagonist; this includes against AFK and SSD/catatonic players.
- Do not respawn to avoid punishment from the NFSD, or respawn as the same character if given a permanent confinement sentence or execution.
</Document>
5 changes: 0 additions & 5 deletions Resources/ServerInfo/_NF/Guidebook/Rules/1_ERP.xml

This file was deleted.

13 changes: 0 additions & 13 deletions Resources/ServerInfo/_NF/Guidebook/Rules/2_Community.xml

This file was deleted.

22 changes: 22 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/2_ICInfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Document>
# 2. In-context Info

Keep everything in the place it belongs. It hurts roleplay when your character starts talking about stuff they should not know.

## 2.1 IC/OC and Meta-friending

- Do not use information gained outside of in-character means (e.g. as a ghost).
- Do not say in character (IC) things in the local out of character (LOOC) chat channel.
- Do not say LOOC things in IC, like saying you “need to go afk because your dog wants to go outside,” in the IC chat.
- Characters can know everything about in-game mechanics or antagonists.
- Characters can keep persistent friendships and relationships with other characters, but this should develop through IC interaction.

## 2.2 Cloning and Revival

- After cloning, respawning, or taking a ghost role, you must follow the new life rules:
-- You can only recall vague details of who or what had killed you.
-- You can remember everything that happened before being incapacitated.
-- When taking a ghost role, you know [bold]nothing[/bold] about your previous characters while playing that role.
- Do not respawn to avoid punishment from the NFSD, or respawn as the same character if given a permanent confinement sentence or execution.
- Don't act on anything you saw while ghosted (see 2.1).
</Document>
13 changes: 13 additions & 0 deletions Resources/ServerInfo/_NF/Guidebook/Rules/3_Escalation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Document>
# 3. Escalation Guidelines

A fistfight does not suddenly escalate into a gunfight. Use common sense.

- Antagonistic ghost roles and pest ghost roles like mice are always fair game for attack.
- As a non-antagonist, don't attack Nanotrasen-aligned ghost roles like familiars, drones, or pets without provocation.
- Do not attack another player without a legitimate, explainable roleplay reason that could be applied in a similar, real-life scenario.
- If a fight results in someone being critically injured or killed, seek medical help for them.
- If a fight ends and both parties leave the area, you cannot skip escalation and plunge back into a fight. What's done is done.
- A 15 minute non-aggression period is required after respawning, so you can't immediately get in a ship and try to go kill whoever killed you.
- NFSD and command roles must resolve situations with non-lethal force and de-escalate IC confrontation except in cases where there is a reasonable chance of harm/death.
</Document>
Loading

0 comments on commit 060c3e9

Please sign in to comment.