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

Changelings #30094

Closed
wants to merge 18 commits into from
Closed

Conversation

whateverusername0
Copy link

@whateverusername0 whateverusername0 commented Jul 16, 2024

About the PR

Added changelings, based on Paradise Station wiki entry with a bit of this design doc. They have their differences but they're mostly the same.
With custom objectives to make them somewhat different from a tot.

Objectives:

  • Survive. Pretty obvious, since your biomass is running out.
  • Extract 6-9 genomes. You can either absorb someone to get their DNA or use the stealth sting ability.
  • Escape on the shuttle while being "person". Simply transform into that person and escape on the shuttle.

Some can say they're entirely based on round removal.

Absorption gives you bonus evolution points and increases the maximum amount of chemicals. Absorbing another changeling gives you half of it's max chemicals, biomass and evolution points.

Why / Balance

:trollface:
image
EDIT: thank god someone made an actually approved and merged design doc for clings ™️

Technical details

shitcode!! need 3000 refactors and 1984 comments

Media

Since i for some reason can't build it because of some git pull robust toolbox clustershit I'm showing media taken from Goobstation, where changelings were playtested before PRing it to wizden.

Basic abilities, objectives, blabla
if icons ever tell you anything
image
image
image
image

Gaming setup (space adaptation + armblade + shield)
image
image

  • I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

none i believe.

TODO

  • Wait for changeling's design doc to be passed. Holy shit
  • Playtest it
  • Listen to other people's opinions

NEW TODO:

  • Listen to even more opinions
  • Do bandaid fixes
  • Add a ling check

NEW NEW TODO:

  • Refactor ability system because it's dogshit at the moment

All of the mechanics are fully implemented so this can be copied/merged and happily used.
Downstream maintainers go crazy ❤️😔

Changelog
🆑

  • add: The changeling hive has boarded the station, ready to take anything it desires - be it your faces, equipment or your lives!

whateverusername0 added 2 commits July 16, 2024 21:40
@github-actions github-actions bot added the Changes: Sprites Changes: Might require knowledge of spriting or visual design. label Jul 16, 2024
Copy link
Contributor

github-actions bot commented Jul 16, 2024

RSI Diff Bot; head commit 5a3a30e merging into 7244b9b
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Changeling/Guidebook/guidebook_changeling.rsi

State Old New Status
icon Added

Resources/Textures/Changeling/arm_blade.rsi

State Old New Status
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/Changeling/bone_shard.rsi

State Old New Status
icon Added

Resources/Textures/Changeling/changeling_abilities.rsi

State Old New Status
absorb_dna Added
anatomic_panacea Added
armblade Added
augmented_eyesight Added
biodegrade Added
bone_shard Added
chameleon_skin Added
chitinous_armor Added
epinephrine_overdose Added
evolution_menu Added
fleshmend Added
hivemind_access Added
lesser_form Added
organic_shield Added
shriek_dissonant Added
shriek_resonant Added
space_adaptation Added
stasis_enter Added
stasis_exit Added
sting_armblade Added
sting_blind Added
sting_cryo Added
sting_extractdna Added
sting_lethargic Added
sting_mute Added
sting_transform Added
strained_muscles Added
tentacle Added
transform Added
transform_cycle Added

Resources/Textures/Changeling/changeling_biomass.rsi

State Old New Status
0 Added
1 Added
10 Added
11 Added
12 Added
13 Added
14 Added
15 Added
16 Added
2 Added
3 Added
4 Added
5 Added
6 Added
7 Added
8 Added
9 Added

Resources/Textures/Changeling/changeling_chemicals.rsi

State Old New Status
0 Added
1 Added
10 Added
11 Added
12 Added
13 Added
14 Added
15 Added
16 Added
17 Added
18 Added
2 Added
3 Added
4 Added
5 Added
6 Added
7 Added
8 Added
9 Added

Resources/Textures/Changeling/ling_armor.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added

Resources/Textures/Changeling/ling_armor_helmet.rsi

State Old New Status
equipped-HELMET Added
icon Added

Resources/Textures/Changeling/ling_spacesuit.rsi

State Old New Status
equipped-OUTERCLOTHING Added
icon Added

Resources/Textures/Changeling/ling_spacesuit_helmet.rsi

State Old New Status
equipped-HELMET Added
icon Added

Resources/Textures/Changeling/shields.rsi

State Old New Status
ling-icon Added
ling-inhand-left Added
ling-inhand-right Added

Resources/Textures/Interface/Misc/job_icons.rsi

State Old New Status
Changeling Added

Edit: diff updated after 5a3a30e

@whateverusername0
Copy link
Author

forgot to port the gamerule my bad og

@github-actions github-actions bot added the S: Needs Review Status: Requires additional reviews before being fully accepted label Jul 16, 2024
@whateverusername0
Copy link
Author

@ARMOKS you can pull up w/ the design doc here ❤️ :trollface:

@Verbalase
Copy link

Verbalase commented Jul 16, 2024

Hooray, I hope you fixed the slow chem regen.

true (shitcode :trollface:) peak

@whateverusername0
Copy link
Author

Hooray, I hope you fixed the slow chem regen.

hope dies last :trollface:

@Djungelskog2
Copy link

armok made a doc? can someone reply me the pr?

Copy link
Contributor

@metalgearsloth metalgearsloth left a comment

Choose a reason for hiding this comment

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

  1. Please read through https://docs.spacestation14.com/en/general-development/codebase-info/conventions.html?highlight=conventions#conventions
  2. Almost all of this code is hardcoded to changelings and not generic.
  3. While goobstation may not care about asset licensing we do.

@metalgearsloth metalgearsloth added S: Awaiting Changes Status: Changes are required before another review can happen and removed S: Needs Review Status: Requires additional reviews before being fully accepted labels Jul 16, 2024
@whateverusername0
Copy link
Author

  1. Please read through https://docs.spacestation14.com/en/general-development/codebase-info/conventions.html?highlight=conventions#conventions

that's great but where does my code start being non-conventional?

  1. Almost all of this code is hardcoded to changelings and not generic.

it makes sense because changelings are kinda not supposed to be generic, because every ability requires chemicals and if you're not a changeling you're not supposed to use them, exception being an omnitraitor but it's easily mitigatable by simply adding a changeling component. methods are also are made as generic as possible i can't go any farther beyond making a million methods to do a single thing, it's just dumb imo.

  1. While goobstation may not care about asset licensing we do.

my bad og, forgot to reference a couple things, i'll do it tomorrow or sth

@Djungelskog2
Copy link

hope dies last 😔

@FaDeOkno
Copy link

Can you make a radial menu for transformation?
It's possible - you can save info about saved DNAs like markings, species and other, build each form on the client and use SpriteView to set your result as button sprite
Anyway nice work

@DVOniksWyvern

This comment was marked as off-topic.

@EmoGarbage404

This comment was marked as off-topic.

@whateverusername0
Copy link
Author

Can you make a radial menu for transformation? It's possible - you can save info about saved DNAs like markings, species and other, build each form on the client and use SpriteView to set your result as button sprite Anyway nice work

sure, i'll try 👍

@FaDeOkno
Copy link

Good luck with that

@DVOniksWyvern

This comment was marked as abuse.

@EmoGarbage404
Copy link
Member

you have some subpar """rules"""/"""conventions""" regarding how the code should be written

apologies for having standards. we should clearly just allow whatever code people submit because it's "cool." That has clearly never caused issues before in the past (disease, vehicles, executions, nukies)

If you are interested in your own project - help the man out with this PR, do some work yourselves

I know, it's harder than force-pushing some prideful prototypes, but you'll manage.

i know it's hard to pull your head out from your own ass but i think you'll get there one day. keep working at it.

Everyone is closely watching, how you leave cool feature in a ditch again, and are taking notes.

lol

@Verbalase
Copy link

we arent getting lings

sadge

Goobcode is superior to wizden code, it seems, can't have that here. Think about the admins, who might get confused by the shapeshifting!

oniks you are cool and all, but idk if taking that here would be good. all you though gng.

@idoffront

This comment was marked as spam.

@DVOniksWyvern

This comment was marked as abuse.

@Verbalase
Copy link

apologies for having standards. we should clearly just allow whatever code people submit because it's "cool." That has clearly never caused issues before in the past (disease, vehicles, executions, nukies)

Aren't you marked as reviewer on this PR? Then do it - review the code, tell the man, what exactly should be changed and how lines of code should be so aforementioned "issues" wouldn't be a stopper here. Whatever you are doing is a sad affair by now, you do not have anything that is considered "good", "cool" or "big". So yes, for the sake of pure competitiveness - it's me who should be telling you to "pull your head out from your own ass".

keep working at it.

Am I wrong in my observation? What exactly you've personally done in the past six month and that wasn't PRed by outside contributor?

oniks you are cool and all, but idk if taking that here would be good.

My G, there's always time for that. I am self-reflecting.

alrighty, ye be the boss

@Ilya246
Copy link
Contributor

Ilya246 commented Jul 16, 2024

"can't you just do <thing that may take a long while to complete> in 5 seconds the instant it becomes possible"
if you want to have criticisms i suggest learning what you're talking about first so they have more weight

@VigersRay
Copy link
Contributor

VigersRay commented Aug 7, 2024

Can head slug / lesser form actually vent crawl?

no and i believe we'll never get that feat

#18182

Formally, this is a fairly simple system, all you need to do is write controls similar to the shuttle, and also remove these unnecessary components and use connection checking.


return true;
}
public bool TryToggleItem(EntityUid uid, EntProtoId proto, ChangelingComponent comp, string? clothingSlot = null)
Copy link
Contributor

Choose a reason for hiding this comment

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

I will be very glad if you make a separate system for this that can be used not only for changeling.
At the very least, I need it for the cult of flesh and also for the IPC charging module.

@whateverusername0
Copy link
Author

forgot to port client side changes, now biomass and chemicals should render properly 😅

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Aug 9, 2024
Copy link
Contributor

github-actions bot commented Aug 9, 2024

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@whateverusername0
Copy link
Author

whateverusername0 commented Aug 9, 2024

a new batch of bugs got spammed into my DMs (again), expect update rolling out soon enough
also planning on refactor the whole thing because i agree that hardcoded reagents are bad (and other stuff too)
but that's gonna come in like a week™️ :trollface:

also new design doc is out, i can make it real 😄, it's just that i don't want to say byebye to all the abilities that are there already. suggestions?

@sad2284
Copy link

sad2284 commented Aug 9, 2024

Новая партия ошибок была заспамлена в моих личных сообщениях (снова), ожидайте обновления достаточно скоро, также планирую рефакторинг всего этого, потому что я согласен, что жестко запрограммированные реагенты плохи (и другие вещи тоже), но это произойдет примерно через неделю™️ :троллфейс:

Также вышел новый документ по дизайну, я могу воплотить его в жизнь 😄, просто я не хочу прощаться со всеми способностями, которые уже есть. Предложения?

Please bring your case to the end. I want this antagonist to appear in our favorite game

@RedNiloc
Copy link

RedNiloc commented Aug 10, 2024

a new batch of bugs got spammed into my DMs (again), expect update rolling out soon enough also planning on refactor the whole thing because i agree that hardcoded reagents are bad (and other stuff too) but that's gonna come in like a week™️ :trollface:

also new design doc is out, i can make it real 😄, it's just that i don't want to say byebye to all the abilities that are there already. suggestions?

when you say "I don't want to say byebye to all the abilities" does that mean they are going to be removed or reworked?

@whateverusername0
Copy link
Author

when you say "I don't want to say byebye to all the abilities" does that mean they are going to be removed or reworked?

removed to match the design doc

@RedNiloc
Copy link

RedNiloc commented Aug 10, 2024

How closely do you have to follow the design doc? Because the doc mentions that virology/surgery would have to be added before changelings due to the eye spiders inflicting a special disease. I was wondering if you could just use chems instead (for example ambuzol stopping zombie virus), That way you are not waiting on a update to add viro/surgery and you can just get changelings out the door.

@whateverusername0
Copy link
Author

How closely do you have to follow the design doc?

good question. that's why i'm asking if i'll have to remove most of ling's abilities that already exist

@AverageNotDoingAnythingEnjoyer
Copy link
Contributor

so uh, how's changelings pr, what now?

@RedNiloc
Copy link

For now, we wait until he adds new stuff (hopefully) or reviewers get around to checking the PR.

@whateverusername0 whateverusername0 marked this pull request as draft August 20, 2024 13:35
Copy link
Contributor

@metalgearsloth metalgearsloth left a comment

Choose a reason for hiding this comment

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

Needs predicting.

After having coded AI I have a better idea of what needs doing. For starters all of the stings being hardcoded reagents is bad. These should just be components stored on the ling itself or on an action entity.

Another if you have actions applying component changes when we already have functionality to do this entirely in yaml via compregistry.

Once you've done the above we'll go from there.

@metalgearsloth metalgearsloth added S: Awaiting Changes Status: Changes are required before another review can happen and removed S: Needs Review Status: Requires additional reviews before being fully accepted labels Aug 23, 2024
@whateverusername0
Copy link
Author

Another if you have actions applying component changes when we already have functionality to do this entirely in yaml via compregistry.

ok cool. where can i find an example of that so that i can work my way up from there?

@whateverusername0
Copy link
Author

btw while i'm working on heretics this repo will be put on hold

@TokenStyle
Copy link
Contributor

TokenStyle commented Aug 29, 2024

ok cool. where can i find an example of that so that i can work my way up from there?

compregistry = ComponentRegistry, here's examples:
AntagSelectionComponent.cs, DataDefinition https://github.com/space-wizards/space-station-14/blob/master/Content.Server/Antag/Components/AntagSelectionComponent.cs#L144
NinjaAntag .yml as example using AntagSelectionComponent, DataDefinitions. Here also components have unique data in components https://github.com/space-wizards/space-station-14/blob/master/Resources/Prototypes/GameRules/events.yml#L199
AntagSelectionSystem https://github.com/space-wizards/space-station-14/blob/master/Content.Server/Antag/AntagSelectionSystem.cs#L162

As you can see, these components from ComponentRegistry will be aplied with all their changes in yml "as is" in AntagSelectionSystem, so you don't need to hard-code in c# classes or in Components, for example, you can make public ComponentRegistry CompsToAddOnStartup = new(); and all these components would applied (with some logic in System's class of course) to the entity with custom settings in CompsToAddOnStartup list/registry.

To find more examples, search for: ComponentRegistry keyword, and you'll find other cases/examples

@AverageNotDoingAnythingEnjoyer
Copy link
Contributor

are you going to keep the hunger system? your pr has been merged in one of the servers and from my experience it results in changelings slaughtering a lot of people, as every single changeling has to consume someone every 20-25 minutes

@whateverusername0
Copy link
Author

are you going to keep the hunger system? your pr has been merged in one of the servers and from my experience it results in

it's in the design doc so yes
perhaps we can add some more mutagen effects to simplemobs like turning monkeys into catatonic humans

@RedNiloc
Copy link

RedNiloc commented Sep 4, 2024

are you going to keep the hunger system? your pr has been merged in one of the servers and from my experience it results in changelings slaughtering a lot of people, as every single changeling has to consume someone every 20-25 minutes

I feel like it should be every 26 mins or so, but I feel like the point of a changeling is to consume alot and to be a very active and more threatening then syndicates, that way it puts pressure on the crew and on security to catch them.

@whateverusername0
Copy link
Author

can't bring myself to refactor it, heck can't even bring myself to actually do any coding. feel free to use this pr in any way you want, i'm out.

@beck-thompson
Copy link
Contributor

can't bring myself to refactor it, heck can't even bring myself to actually do any coding. feel free to use this pr in any way you want, i'm out.

I feel that ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Sprites Changes: Might require knowledge of spriting or visual design. S: Awaiting Changes Status: Changes are required before another review can happen S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted
Projects
None yet
Development

Successfully merging this pull request may close these issues.