Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traitor Backstories #9126

Merged
merged 29 commits into from Feb 10, 2024
Merged

Conversation

itsmeow
Copy link
Member

@itsmeow itsmeow commented May 30, 2023

About The Pull Request

Adds unique backstories to be assigned to traitors based on some preferences, including some involving the character being forced into it, others where they are doing it for gain, and then just the straight up insane.

Objectives will have general flavor text, and greet text somewhat related to your backstory.

An advanced objectives viewer TGUI will be created, allowing players to write custom objective motivations, backstories, etc. Because this is only for personal use there is little moderation needed. Potentially non-custom motivations could be added to roundend reports.

Players may be able to choose specific options in their generation such as if they have family, a desire for money, etc which can inspire their backstory.

Fixed probabilities will also remain regarding murderbone, not all backstories will allow dagd, but some will. Some backstories are locked specifically to dagd traitors. Disabling these backstories will mean you will just not get dagd, and only enabling those does not guarantee dagd, as there is still a fixed chance.

Backstories are selected by the player after their objectives are picked, but before they are given an uplink or codewords. The backstory determines whether you receive codewords or not, and your objectives provide hints to the backstory/faction selector (if you are murderbone or not) which will tell the user that certain backstories are recommended or not.

It is up to the player to choose a fitting backstory for their character, and there is no gameplay incentive to follow it or other mechanics related to it. This is purely a roleplay tool. The only gameplay interaction is that independent and black market traitors do not get codewords and thus may not be able to team with other traitors as effectively.

Why It's Good For The Game

Provides players with an easier way to motivate their roleplay as an antagonist, and better shows the player that roleplay is of a priority when playing as an antagonist through ingame means rather than external motivators like rules. It makes greentexts and objectives themselves less central and incentivizes thinking about the character.

Testing Photographs and Procedure

Screenshots&Videos

Integration with new antag tips UI

image
image

image

image

image

image

Flavor matches your faction - no codewords for black market

image

Roundend report

image

Traitor Panel

image

Changelog

🆑
add: Added a backstory selection system for Traitors, allowing easier determination of the roleplay motivations behind a traitor.
code: Cleaned up traitor objective generation and split AI vs human traitors into their own files.
tweak: Changed how murderbone is determined for traitors. It no longer depends directly on your objectives, but instead informs your objectives. As a consequence, lowered the 'base' probability to match the previous overall probability.
fix: Fixes a bug from when soft-tracked objectives were added, it accidentally lowered the rate of murderbone traitors. This has been corrected.
add: Enabled the 'neutral' theme for emagged ModPCs, for use by non-syndicate traitors.
admin: Added traitor faction and backstory display to Traitor Panel. Added logging for faction/backstory selection.
/:cl:

@Tsar-Salat
Copy link
Contributor

Finally.

Madlibs in my beestation.

😄

@PowerfulBacon
Copy link
Member

This and #9043 will have pretty heavy conflicts due to that PR replacing how objectives are organised in the file structure. Shouldn't be hard to resolve, but might be something worth noting.

@PowerfulBacon PowerfulBacon added the ☑️ Good PR I like it label May 31, 2023
@github-actions github-actions bot added Sprites TGUI-Changes Contains changes to TGUI. Make sure its up to date with TGUI 4.0 labels May 31, 2023
@PowerfulBacon PowerfulBacon added Golden ⭐ For high-effort PRs that make big and good improvements to the game. and removed ☑️ Good PR I like it labels Jun 2, 2023
@itsmeow itsmeow marked this pull request as ready for review June 3, 2023 10:46
@itsmeow itsmeow requested a review from Crossedfall as a code owner June 3, 2023 10:46
@Crossedfall
Copy link
Member

allowing players to write custom objective motivations, backstories, etc.

Should put it here as well just to document it. Currently against player-inputted text for backgrounds. But I'm willing to give it a few TMs to see how it goes.

@PowerfulBacon
Copy link
Member

PowerfulBacon commented Jun 16, 2023

Yea, I agree with crossed here. On top of that, I think we may potentially get better results from limiting the freedom we give to players in order to choose their backgrounds as the ability to choose tends to result in players choosing the 'safe' option which eventually results in little gameplay variation, leading to ignoring the system entirely.

@PowerfulBacon
Copy link
Member

The backstories are clear enough that I don't think it matters too much, a very simple explanation could be helpful but players don't need an understanding of the syndicate as an entire organisation to be an agent of it.
Also, the automatic selection of a back-story after some time is a little bit annoying and I think removing that could be good (with the uplink and stuff only assigned after you go through it)

Copy link
Member

@PowerfulBacon PowerfulBacon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth highlighting or displaying in either yellow/a bullet point list what mechanical changes the different factions have.

Independant:

  • No codewords.

Or just have yellow highlighting around the bit that says "no codewords"

etc.

There was a peice of feedback saying that it would be nice to have a way of knowing what changes depending on the background.

@HowToLoLu
Copy link
Contributor

https://discord.com/channels/427337870844362753/943311132007997490/1199203257185226873

Codewords are still highlighted for traitors who aren't given them, likely due to should_give_codewords (replaced with has_codewords) previously being a holopara only variable.

@HowToLoLu
Copy link
Contributor

Looking at the use of it on TG, the solution seems to just be adding an if statement checking for if you have codewords on Line 280 of code/modules/antagonists/traitor/datum_traitor.dm

@PowerfulBacon PowerfulBacon added this pull request to the merge queue Feb 10, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 10, 2024
@itsmeow itsmeow added this pull request to the merge queue Feb 10, 2024
Merged via the queue into BeeStation:master with commit 768340f Feb 10, 2024
8 checks passed
@itsmeow itsmeow deleted the objectives-backstory branch February 10, 2024 17:30
DrDuckedGoose pushed a commit to DrDuckedGoose/BeeStation-Hornet that referenced this pull request May 11, 2024
* Basic backstories

* Snapshot

* Progress

* The UI and faction update

* More progress

* UI code cleanup

* Fix NotFoundError (What the fuck)

* Code reorganization + gimmick config

* Fix list scrollability flow

* Cleanup

* Actually integrate it with the game

* Roundend report stuff

* Backstory view phase - now testmergeable

* Improve roundend report and recommendations

* Fix forced factions after selection

* Start rewriting obj briefings

* FInish

* Cleanup and integrate with antag tips

* Remove objective backstories for now and call it a day.

* More cleanup

* More direct murderbone logic

* Add logging and Traitor Panel for backstory

* Remove KILL text from Sadist

* Reorganize, make it required, remove the auto-timeout.

* Fixes soft-tracked objectives being non martyr-compatible, does the math to caclulate the old murderbone rate at 5%

* Add SSblackbox for selections

* Highlight no codewords

* Fix codewords always being given
DrDuckedGoose pushed a commit to DrDuckedGoose/BeeStation-Hornet that referenced this pull request May 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Administration Golden ⭐ For high-effort PRs that make big and good improvements to the game. Sprites Test Merged This PR is currently in rotation TGUI-Changes Contains changes to TGUI. Make sure its up to date with TGUI 4.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants