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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fully removes devil and affiliated shitcode #53612

Merged
merged 11 commits into from Sep 22, 2020

Conversation

TiviPlus
Copy link
Member

@TiviPlus TiviPlus commented Sep 10, 2020

About The Pull Request

What it says on the tin.
Timberpoes okayed this on discord

Why It's Good For The Game

Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.

Fixes #48167
Fixes #43245
Fixes #37831
Fixes #32872
Fixes #29609
Fixes #26261
Fixes #25768
Fixes #21192
Fixes #52551

Changelog

馃啈
del: Removed devil and affiliated shitcode
/:cl:

@tgstation-server tgstation-server added Config Update Time to bother the headadmins for three months to get your config applied Removal This was too fun, too fun! I'm turning this feature around labels Sep 10, 2020
@Mothblocks
Copy link
Member

how did you fuck up the tests that badly

@Timberpoes
Copy link
Member

I am supportive of this PR (as long as Tivi fixes all the errors uwu) and I'll bring the crib notes of my discussions on Discord here.

Devil is a game mode that is conceptually flawed and difficult to balance. The primary antag has to flat out reveal themselves to accomplish anything. The crew accepting contracts and getting powers actively works towards the Devil's win conditions. The powers aren't even that good and don't justify not robusting, buckle-cuffing and killing the Devil as soon as they out themselves. Making the powers more powerful would be a balancing nightmare in a different way.

However, I am willing to listen to arguments as to why the game mode should be kept. I understand our mantra of "improve don't remove" - How can this be kept as a good, fun and interesting antag type? Sometimes imbalance can be fun, but only if everyone is having fun and not just a select few people at the expense of others.

From what discussions I have gathered, Devil code is dotted in a number of areas of the code base and working around it may impact other PRs and even prevent them from being attempted or completed in the first place because of some integration or interaction required, but I have not personally experienced this so giving concrete examples would cement further support for Devil's removal.

@Son-of-Space
Copy link
Contributor

I'd like to see it stay as an interesting TC/antag trade occasionally.

@Barhandar
Copy link
Contributor

The few rounds where I've seen the devil (always admemery) it was full-on roleplaying, not "immediate robusting" you describe. But as a separate gamemode? Lolno, like any RP-heavy thing it needs supervision to work out and should be antagtrade/adminspawn antag.

@wesoda25
Copy link
Contributor

I'd like to see it stay as an interesting TC/antag trade occasionally.

If we鈥檙e removing it, go all the way

@davethwave
Copy link
Contributor

davethwave commented Sep 11, 2020

I personally enjoy it as a rare admin trade, it's kinda moved away from being a game mode from itself and I enjoy the times a devil manages to appear in a round. If played right, devil can be a very fun character for the crew and the player playing it if a little of roleplay is added to the mix. I support the removing the round type and such but please leave the actual devil code itself untouched for us who enjoy it. I just don't see any real reason for the removal as of yet in the first place. Also for those wondering, you can make it so the devil can't ascend, making them more round ending if need be.

@ArcaneMusic
Copy link
Contributor

Please attach the issues that would be closed by removing this game mode, in order to see the impact that removal would have.
Closes #48167, #43245, #37831, #32872, #29609, #26261, #25768, and #21192.

@81Denton 81Denton added the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label Sep 11, 2020
@tgstation-server tgstation-server removed the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label Sep 12, 2020
Copy link
Member

@Timberpoes Timberpoes left a comment

Choose a reason for hiding this comment

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

code\modules\mob\living\silicon\ai\ai.dm:1000:error: target: undefined var

@Winterous
Copy link
Contributor

In my opinion the only way that Devils can be a good antag is if they have demi-admin powers to grant wishes in exchange for your soul.
There's no room for roleplay otherwise, the first time I played devil I had no idea how it worked, I offered someone insulated gloves, and when prompted with the "what do you offer" I thought it was just flavour. No, Wealth (what I chose) just gives you occasional coins, hooray?

You need to be a goddamn genie, change someone's species, spawn items, change an entire area of the station's walls and floors into plasma. Otherwise you're just a toothless imitation of what you're SUPPOSED to be.

People don't sell their eternal soul to throw little zappy bundles at people, they sell it for their innermost desire, and that usually requires fundamentally changing reality in some way; making them powerful, influential, immortal, desirable, wealthy; all of these require changing the world, tweaking the variables behind the curtain.

It's a cool idea, tragically restrained by the nature of its ambition.

@MrDoomBringer
Copy link
Contributor

this was testmerged on #146249 and uh
melee combat got broken
like melee attacks except for punches don't do any damage
馃

@ExcessiveUseOfCobblestone
Copy link
Contributor

@lordpidey

Copy link
Contributor

@lordpidey lordpidey left a comment

Choose a reason for hiding this comment

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

As much as I like the concept, I realize that the execution is flawed.

If the maintainers believe excision is the best way to deal with it, then I will hold my tongue on my opinion, and only comment on the code changes itself.

Hopefully after work, I will be able to determine more.

code/modules/mob/living/carbon/human/species.dm Outdated Show resolved Hide resolved
//Eg: shared deaths
//Can be used to form a linked list of mob-hopping
//Does NOT transfer with minds
/datum/soullink
Copy link
Contributor

Choose a reason for hiding this comment

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

This was not added as part of devil.

Copy link
Member Author

Choose a reason for hiding this comment

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

This was used by devil and silicon(where a signal works better)

Copy link
Contributor

@lordpidey lordpidey left a comment

Choose a reason for hiding this comment

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

couple more things I noticed.

code/modules/projectiles/projectile/magic.dm Outdated Show resolved Hide resolved
code/modules/reagents/chemistry/reagents/other_reagents.dm Outdated Show resolved Hide resolved
@lordpidey
Copy link
Contributor

So, let me explain some of the intended mechanics of Devil.

There are two gamemodes. Devil and Devil agent. It's kinda like Traitor vs Double Agent. Devil is normal, but devil agent forms a "ring" of devils, where each one tries to get more souls than the next in line.

Devils have a spell that offers contracts to people. The contracts have the devil's truename on it, but not their mortal name. If signed, these contracts give a boon, and make the signer lose their soul (become unrevivable), as well as giving a soul point to the devil.

Devils also have FOUR attributes. A bane, something that hurts them extra (Like holy water, or people wearing white clothes, this is mechanically enforced); a ban, something they aren't allowed to do (Like cannot harm someone from stealth, this is NOT mechanically enforced); an obligation, something they MUST do under specific circumstances (Like accept any challenges to a musical duel, this is NOT mechanically enforced, though some come with an extra spell, such as summon fiddle); and Banishment ritual, which prevents a devil from reviving (Mechanically enforced, examples are being embalmed, or being given burial clothes). Note that in addition, devils are not allowed to intentionally harm other devils.

These attributes can be looked up in the Codex Gigas from the truename. It is faster for a Curator to look it up. Non curators have a chance of getting bad info.

A lawyer (or HOP with lower success rate), can hit soul sellers with their employment contract to recover the lost soul. The boon is NOT lost.

Soul sellers are NOT antagonists. They are explicitly told that selling their soul does not make them an antagonist. Soul sellers CAN sell their soul a second time, this takes the point away from the first devil and gives it to the second. The soul seller keeps BOTH boons. Obviously, this is really bad for the first devil, but is one of the things that is supposed to keep the devils in check, and prevent them from gaining too many souls.

When a devil dies, if they have at least one soul, they lose it, and will revive, UNLESS their banishment was completed.

Devils also gain more powers, and more obvious tells as they gain souls. With enough souls, a devil can ascend, and becomes an unkillable threat, akin to an ascended shadowling in power. It is possible for admins to make devils be non-ascendable, and is infact recommended for outside of the devil gamemode. The reason why: devils are supposed to be operating AGAINST each other against a limited resource, yet they are forbidden from directly hurting each other, all the while they are 'stealing' souls from each other, by offering contracts to those who have previously sold their soul to other devils.

@TiviPlus
Copy link
Member Author

This also possibly fixes #52551

@Rohesie Rohesie added the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label Sep 19, 2020
@Rohesie
Copy link
Member

Rohesie commented Sep 19, 2020

Will this need to be TMed after conflict solving?

@lordpidey
Copy link
Contributor

It was TMed once....

And it broke all non-unarmed attacks.

It should probably be TMed again.

@tgstation-server tgstation-server removed the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label Sep 22, 2020
@Timberpoes Timberpoes merged commit ff1631b into tgstation:master Sep 22, 2020
@TiviPlus TiviPlus deleted the removedevil branch September 22, 2020 23:46
Kei-Shin pushed a commit to TheCanoePirates/tgstation that referenced this pull request Sep 23, 2020
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
Kei-Shin pushed a commit to TheCanoePirates/tgstation that referenced this pull request Sep 23, 2020
@davethwave
Copy link
Contributor

davethwave commented Sep 23, 2020

Sad to see this merge.

GoryMoon pushed a commit to Ravenholdt/hdstation that referenced this pull request Oct 25, 2020
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
Tsar-Salat added a commit to Tsar-Salat/BeeStation-Salatland that referenced this pull request Aug 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Config Update Time to bother the headadmins for three months to get your config applied Removal This was too fun, too fun! I'm turning this feature around
Projects
None yet