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

[PORT] Custom antag objectives and a lot of changeling updates #1272

Merged
merged 23 commits into from
Mar 27, 2024

Conversation

KnigTheThrasher
Copy link
Contributor

@KnigTheThrasher KnigTheThrasher commented Feb 23, 2024

About The Pull Request

Ports:

Why It's Good For The Game

Keeps us up to date with tg, custom objectives are pretty fitting for an rp server too. I left out the stuff that buffs changelings since we don't want that here. Most of the stuff here is qol and fixes.

Testing Screenshots

prttype

hershy

getbeaned

This "Should" work with contractors, needs a tm first since I can't test it locally (contractor market still works so I'm assuming the rest works)
amogus

Changelog

🆑 Rhials, Jolly-66, MrMelbert, Jacquerel, cnleth, Ghommie, MelokGleb and KREKS, McRamon
sound: Revolutionaries now have their own stinger that plays upon becoming that antagonist.
spellcheck: Changeling hallucination sting will now tell you it costs 10 chemicals. It always did, but now its there. Cheers?
fix: Ling Augmented Eyesight now no longer causes you to lose the effects of your Meson glasses
fix: Ling Augmented Eyesight now more consistently tracks the flash protection / vulnerability it confers.
qol: Changeling Emporium is now sorted alphabetically.
qol: Changeling Emporium now has a search bar!
refactor: Refactored display-ing of antag objectives in their UIs
add: Traitors, Changelings, Heretics, Wizards, Malfunctioning AIs, and Ninjas can now all reject their original objectives and provide one of their own in its place. A Heretic doing this will no longer be able to ascend.
add: "Custom" objectives which aren't mechanically tracked will no longer report success or failure upon round end.
qol: Space Ninja spider charges will now display where they can be detonated when examined, if you are a ninja.
fix: Changeling tentacle and bloodchiller from xenobio will no longer stop working if you have antimagic
spellcheck: Replaced an irrelevant tip of the round about scars with a better one
add: Added a new 0 cost passive changeling ability, the Defibrillator Grasp.
add: DNA sing is now no longer innate, but 0 cost, allowing changelings to not take it if they don't plan on using it.
balance: The Changeling Space Suit has been replaced by a new ability which makes you passively spaceproof without replacing your clothing.
admin: Editing the atmos sensitivity variables on a basic mob during the game will now actually do something.
add: Added the daily (roundstart) message server key to the Chief Engineer's memories.
image: New sprites for changeling powers and items. Woooh.
fix: Fix ling revival for full-dead lings
/:cl:

Rhials and others added 19 commits February 22, 2024 11:51
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

Adds an antagonist gain stinger for Revolutionaries, created with
inspiration from the obsessed/traitor conversion sounds.

https://user-images.githubusercontent.com/28870487/235028674-170a4f9e-a873-4938-a700-536f005e539f.mp4

Raw audio:

https://cdn.discordapp.com/attachments/440978216484732934/1101964419203862548/revolutionary_tide.ogg

_A distant, hypnotic whistling. The heavy footfalls and clamoring voices
of an approaching crowd. The unstoppable revolutionary tide breaks its
waves upon an unsuspecting station._

I wanted to try and make something that felt like it fit in with the
other antagonist stingers we already have. Let me know what you think!

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

Gives a bit more flavor, and helps set the mood for the upcoming
bloodbath.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

:cl:
sound: Revolutionaries now have their own stinger that plays upon
becoming that antagonist.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
…6354)

## About The Pull Request
Title.

## Why It's Good For The Game
Informing players that an ability has some sort of "power consumption"
in a description would be very nice to know!

Also for the description text in code, I just did whatever its called to
make it slightly more legible, as it was just a long line that got
slightly cut off.

## Changelog

:cl: Jolly
spellcheck: Changeling hallucination sting will now tell you it costs 10
chemicals. It always did, but now its there. Cheers?
/:cl:
## About The Pull Request

- Fixes Augmented Eyesight causing you to lose sight granted by glasses
such as mesons.
- Replaced the setting of sight flags with, just, using `TRAIT_XRAY`.
Same flags.
- Fixes changeling eyeballs maintaining flash protection when removed
- Fixes ability to regenerate your eyeballs and gain all the upsides
with no downside

## Why It's Good For The Game

Makes Augmented Eyesight a little more consistent. 

## Changelog

:cl: Melbert
fix: Ling Augmented Eyesight now no longer causes you to lose the
effects of your Meson glasses
fix: Ling Augmented Eyesight now more consistently tracks the flash
protection / vulnerability it confers.
/:cl:
- Sorts abilities alphabetically.
- Adds a search bar to the Changeling Emporium.

![image](https://github.com/tgstation/tgstation/assets/51863163/beb856ac-8615-4cda-bde4-c1b955fce8f7)

![image](https://github.com/tgstation/tgstation/assets/51863163/829e24e2-186e-4688-be58-67fbea6e91d3)

Makes it a bit easier to find the ability you're looking for.

:cl: Melbert
qol: Changeling Emporium is now sorted alphabetically.
qol: Changeling Emporium now has a search bar!
/:cl:
Fixes: #76972

- adds no dna stealing sting trait to plasmamen

Plasmaman can't get stung and turn others into plasmamens.

:cl:
fix: Plasmaman DNA can no longer be stolen by changelings.
/:cl:
Instead of copy-pasting this `Objective` type and component into every
UI, let's just import it yeah?

The only one I didn't remove this from is the one Blob uses, because it
did some unique things. Left it be.

<Details>

<Summary> UIs work </Summary>

![image](https://github.com/tgstation/tgstation/assets/51863163/4bd47675-98d5-4f02-825c-50cd3aa2fa63)

</Details>

Also removed a now-unused Family antag info ui.

Cleaner code

:cl: Melbert
refactor: Refactored display-ing of antag objectives in their UIs
/:cl:
![image](https://github.com/tgstation/tgstation/assets/7483112/12d3cf8d-4538-42c3-a962-bf2d6653ef55)

![image](https://github.com/tgstation/tgstation/assets/7483112/60981726-8495-47e8-8924-dd18c000fdfe)

This PR adds the ability for solo antagonists (Traitor, Changeling,
Heretic, Wizard, Malfunctioning AI, and Ninja) to "write-in" their own
objectives in place of the ones the game gave them.
For traitors this is located on the uplink (though the button is not
present if you aren't the owner of the uplink, thieves can't give you a
troll objective) and for everyone else it is on the antagonist
information panel.

Pressing this button will replace all of your objectives _except_ ones
like "escape alive" or "survive" or "die a glorious death".
By default a player can only do this once per round, but the Traitor
Panel admin tool contains a button which can display the prompt again.

Custom-entered objectives are not mechanically tracked in any way and do
not report success or failure on the round end screen, whether they were
successful or not is up to you the audience. Resultingly, doing this
will make you ineligible for getting the hardcore random points from
completing your objectives.

Admins are capable of using this button to show the prompt to _any_
antagonist, including team antagonists, but do so at their own risk. A
single cultist changing their objective to something else only updates
them, not their team.
Admins can also choose whether or not it replaces existing objectives or
just adds a new one entered by the player.

When someone sets a new objective, it informs any active administrators
of their choice and provides linked buttons to send them a syndicate
radio message or immediately smite them, because unfortunately our
players cannot always be trusted with arbitrary text entry.
I _didn't_ make this a system which requires approval because I don't
think admins _want_ that level of micromanagement, although plausibly if
it is thought to be a good idea I could add a time delay and reject
button similar to the "rename the station" charter item.

Heretics work slightly differently and have an "Are you sure?"
confirmation other antagonists lack.
This is because Heretic objectives are directly tied to ascension, thus
by replacing the objectives you are locking yourself out from being able
to do it.
I don't _necessarily_ think this is a terrible thing, because "try to
ascend" _is_ the default objective. There's no point entering a new one
if that is what you want to do anyway.

While I was in here I gave Ninjas a very rudimentary custom antagonist
panel, because they didn't have one.
I also made their C4 display where it can be detonated on examine, in
case you no longer have the relevant objective to reference.

<details>
  <summary>Other previews</summary>

![image](https://github.com/tgstation/tgstation/assets/7483112/55ca6ce5-a5a5-4201-9bc6-88dd4e4e35a1)

![image](https://github.com/tgstation/tgstation/assets/7483112/cba5b921-addd-4886-8d83-b0b383607efc)

![image](https://github.com/tgstation/tgstation/assets/7483112/69212c87-5a93-4524-ab9a-f2540fc61617)

![image](https://github.com/tgstation/tgstation/assets/7483112/fc5c1d26-18ef-4481-857d-ae4142e13f95)

![image](https://github.com/tgstation/tgstation/assets/7483112/046589ac-e7a5-4006-8087-42e9bcd1016e)
</details>

It's a reasonably frequent refrain that "Objectives are just guidelines"
and that more interesting players should strive to ignore them and do
something else, I would hope this would encourage that kind of
behaviour.
If you _are_ going off and doing your own thing, now other players can
actually see what it was that you were trying to do when the round ends
(and judge you based on whether you actually did it).

:cl:
add: Traitors, Changelings, Heretics, Wizards, Malfunctioning AIs, and
Ninjas can now all reject their original objectives and provide one of
their own in its place. A Heretic doing this will no longer be able to
ascend.
add: "Custom" objectives which aren't mechanically tracked will no
longer report success or failure upon round end.
qol: Space Ninja spider charges will now display where they can be
detonated when examined, if you are a ninja.
/:cl:
## About The Pull Request
Fixes #78198 
Tentacle and bloodchiller had antimagic flags that they inherited from
`gun/magic` and were unusable if you had magic immunity. I set those
flags to `NONE`
## Why It's Good For The Game
Fixes a bug
## Changelog
:cl:
fix: Changeling tentacle and bloodchiller from xenobio will no longer
stop working if you have antimagic
/:cl:
…ter one (#78294)

## About The Pull Request
Replaced a tip of the round about using fleshmend/carpotoxin to heal
scars after regenerating with a similar but better scar-related
changeling tip
## Why It's Good For The Game
Carpotoxin no longer removes scars (#59382), so that's misleading and
nobody cares about regenerate leaving scars after wounds just like
normally-healed wounds do. Knowledge about scars transferring after
transformation is more useful in my opinion
## Changelog
:cl:
spellcheck: Replaced an irrelevant tip of the round about scars with a
better one
/:cl:
… support for 0 cost changeling abilities. (#76301)

![image](https://github.com/tgstation/tgstation/assets/51863163/190d0dda-6899-468d-9a3e-5df05d7b1414)

- Adds a new PASSIVE changeling ability, totally not stolen from The
Thing, called Defibrillator Grasp. If someone attempts to defibrillate
your body while you are in stasis or dead, you will instantly be revived
at full strength. Additionally, the person doing the defibbing will have
both of their arms removed (or if they're a cyborg they'll just be
stunned).

- Adds support for 0 cost changeling abilities. DNA sting is now 0 cost
/ optionally learned.

The intent of this ability to add a new avenue for stealthier
changelings to spring upon their victims - faking their death only to
get brought to medical, then springing up like a bat out of hell and
pouncing upon a now vulnerable medical doctor.

Or maybe pretending to be another type of criminal to get brought to the
brig medbay and revived, then suddenly jumping up and striking out.

As for the DNA sting change - Ling gets a ton of buttons to start and
people don't often use a lot of them. DNA sting is a prime example. By
moving some to just "zero cost, optional", trims down on some action
ability bloat.

:cl: Melbert
add: Added a new 0 cost passive changeling ability, the Defibrillator
Grasp.
add: DNA sing is now no longer innate, but 0 cost, allowing changelings
to not take it if they don't plan on using it.
/:cl:
…MI (#78342)

- If a changeling's decoy brain is placed in an MMI, they will now be
prompted to speak through it.
- They can speak through the decoy even if incapacitated or dead (or
fake-dead).

https://github.com/tgstation/tgstation/assets/51863163/804bd48a-c4b8-4feb-b021-019ea70e4b8e

The oft-controversial ling MMI test has been brought up time and time
again so I figure I throw my cards in for a solution.

We want as few ways as possible for people to hard and fast discover
whether someone is an antag, especially changling which is supposed to
revel in paranoia. This soft-patches out a big way, the MMI test, in
which you place a ling's brain in an MMI to determine if it's vestigial
and therefore, a ling.

Now the ling player can provide some benefit of the doubt by speaking
through the brain as normal, appearing active while actually in their
body still.

:cl: Melbert
add: Changelings can now speak through their decoy brain if it is placed
in an MMI, to maintain the illusion they are actually dead and have been
debrained.
/:cl:
Fixes #74168

I was going to make changes to the changeling spacesuit so that it works
on Icebox but then I thought, why not _not_ do that.
This isn't a commonly picked adaption so why don't we make it a little
better.

What's more spooky, hearing a knock on the window and seeing a fat suit
outside? Or this?

![image](https://github.com/tgstation/tgstation/assets/7483112/b87dec0c-5e98-45a5-8f83-f7a2967c743f)

Picking Void Adaption will now make you immune to low temperature and
pressure (but not high temperature and pressure) and you will stop
breathing. If you enter an area with low temperature or pressure then
your chemical regeneration rate will decrease until you leave that area.
Because it doesn't put a suit on you, it now also works during Lesser
Form.

While testing this I noticed that we weren't calling `Grant` on passive
changeling abilities for some reason, I replaced that with the
already-written interface for making "an action which doesn't give you a
button".

If people really _really_ miss the fat suit I guess I'll rework that
instead, but I think I like this more.

Makes a niche-pick ability more useful and easier to use.
Meteor Changelings who land on Icebox now don't roll a dice to see if
they get instantly knocked out by the atmosphere there.

:cl:
balance: The Changeling Space Suit has been replaced by a new ability
which makes you passively spaceproof without replacing your clothing.
admin: Editing the atmos sensitivity variables on a basic mob during the
game will now actually do something.
/:cl:
Like the captain has innate knowledge of the golden safe code, the Chief
Engineer should know the daily key of the message server.

It's a perk of the job.

:cl:
add: Added the daily (roundstart) message server key to the Chief
Engineer's memories.
/:cl:

---------

Co-authored-by: distributivgesetz <[email protected]>
…hen nothing was purchased (#80480)

## About The Pull Request

#80108 added `on_purchase` calls to `regain_powers` as a bugfix, due to
some powers having effects ONLY in "purchase".

Unfortunately we put blackbox logging in there.

So every time `regain_powers` is called, it incremented the tally by one
despite the fact that they weren't purchasing anything, they were
already purchased.
…cRamon) (#81394)

The original PR has went stale for a long while now, which is a pity,
since it's an overall improvement on lingus' sprites: #80702

>Old changeling sprites look old and boring, we thought they should get
an update

:cl: MelokGleb and KREKS, McRamon, Ghommie
image: New sprites for changeling powers and items. Woooh.
/:cl:

---------

Co-authored-by: MelokGleb <[email protected]>
@DexeeXI
Copy link
Collaborator

DexeeXI commented Mar 22, 2024

Does the changes for Changling require the custom antagonist objective framework? Or no?

@KnigTheThrasher
Copy link
Contributor Author

Does the changes for Changling require the custom antagonist objective framework? Or no?

Nah I was generally porting a lot of antag related stuff, most of it was changeling and the the custom objectives. I left it at that because I didn't want this pr to be a a pain to review due to the amount of changes it did with just changeling stuff and custom objectives. The branch is named tgantagstuff after all heh.

@DexeeXI
Copy link
Collaborator

DexeeXI commented Mar 23, 2024

That's true. I was just curious if the custom antag objectives were required with the rest of this or not in case we want to have that separated out for one reason or another.

KnigTheThrasher and others added 2 commits March 25, 2024 23:45
## About The Pull Request

Fixes #76665

`fakedeath` early returned if the mob was dead, I guess it assumed if
you were dead dead you wouldn't want to become fake dead as well

I removed that because it's definitely a valid use case, in my eyes,
that you would be able to apply the fakedeath traits to a mob who is
dead, for the event they are revived at some point (to still appear
dead)

## Why It's Good For The Game

Lings rely on this

## Changelog

:cl: Melbert
fix: Fix ling revival for full-dead lings
/:cl:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants