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

New Species: Plasmaman #1291

Draft
wants to merge 68 commits into
base: master
Choose a base branch
from

Conversation

angelofallars
Copy link
Contributor

@angelofallars angelofallars commented Nov 29, 2024

Description

Adds the Plasmamen as a playable species. Plasmamen are a skeletal species who depend on Plasma to live, and oxygen is highly fatal to them. Being exposed to oxygen will set them on fire, unless they wear their envirosuits.

Species Description

PROS:

  • Takes 15% less Slash and 25% less Piercing damage.
  • Immune to Radiation and Cold Damage.
  • Does not have blood and cannot bleed out.
  • Does not experience hunger or thirst.
  • Comes with an envirosuit helmet that provides a flashlight and welding protection.
  • Due to being skeletons, they can consume Milk to gain a positive moodlet and slowly heal Brute, Heat, Shock, and Caustic damage.
  • Can consume Plasma to gain a bigger positive moodlet and heal every damage type faster than Milk, except Cellular.

CONS:

  • Takes 50% more Blunt and 50% more Heat damage.
  • Being on fire passively fades out half as much, and stop, drop, and rolling is half as effective.
  • Can only breathe plasma, and oxygen is highly toxic when inhaled.
  • Being exposed to oxygen sets them on fire. This can be prevented by the following:
    • Wearing envirosuits, EVA suits or hardsuits with full-body coverage.
    • Using a stasis bed prevents them from self-igniting even without an envirosuit.
  • Cannot eat, drink, or consume pills without taking off their envirosuit helmet.

SPECIAL:

  • Plasmamen speak the language Calcic, a language they share with Skeletons.

Shitmed Integration

Plasmamen are the first ever species designed with Shitmed in mind, with one of their core mechanics (self-ignition) powered entirely by Shitmed.

Whether or not a Plasmaman ignites from oxygen exposure depends only on their body parts. A Plasmaman with only their head exposed will not burn as much as an entirely naked Plasmaman. You can transfer Plasmaman body parts to non-Plasmamen through surgery so that they also ignite from oxygen exposure. Meanwhile, a Plasmaman with a non-Plasmaman head can expose their head without self-igniting.

video-2024-11-28_12.52.mp4

Most Plasmaman organs can be butchered with a knife to gain a single plasma sheet, which can make organ harvesting on Plasmamen a worthwhile endeavor especially if you're running low on plasma. Plasmaman body parts (legs, arms, hands, torso, etc.) can also be juiced in a reagent grinder to extract some plasma.

video-2024-11-24_1747.mp4

Plasmamen will have two combat traits, Plasmafire Punch and Toxoplasmic Punch, that increase their melee damage but damage their hand body parts on each melee hit. This is an example of my intended theme of Plasmamen in combat sacrificing their health to deal devastating damage, like setting themselves on fire to spread the fire to others.

Health doll after punching with Plasmafire Punch several times

Loadouts

The CharacterItemGroup prototype has two new fields: MinItems for the minimum amount of items required from this group and Requirements for the requirements a character needs to be able to select any item from the group. The items in CharacterItemGroup.Items can now set a Priority field which determines their priority in being selected when adding items to satisfy MinItems.

This allows Plasmamen to be guaranteed to spawn with the gear necessary for their survival, one envirosuit and one plasma tank, even without the user touching loadouts. They start with the emergency plasma tank, but can choose to buy higher-capacity plasma tanks with loadout points to replace it.

I still need to deal with updating the UI code to take into account minimum/maximum items, and group-based requirements 😅

Technical Details

This also cherry-picks space-wizards/space-station-14#28595 as a quality-of-life feature to ensure Plasmamen keep their internals on upon toggling their helmet with a breath mask on.

TODO

Loadouts

  • Port more envirosuits / enviro helms (job-specific) and their sprites
  • Recolorable envirosuit loadout item
  • Remove breath masks from default plasmaman loadouts because the envirohelms already allow them to breathe internals
  • Change default plasma tank to higher-capacity version
  • Prevent plasmamen from buying jumpsuits and helmets other than envirosuits
  • Client UI update for loadout groups min/max items and default items

General

  • Envirogloves
  • Plasma tanks sprite (only normal emergency/extended, rather low priority)
  • Modify envirosuit helmet sprites to have a transparent visor
  • More cargo content with plasma tanks / envirosuits
    • Plasmaman survival kit like slime
    • Additional plasma tanks
    • Plasmaman EVA suits
  • Add envirosuits to clothesmate
  • Add more plasma tanks to random lockers and job lockers
  • Turn envirosuit auto-extinguish into extinguish action
  • move self-extinguish verb stuff to shared for prediction of the verb
  • move self-extinguisher stuff away from extinguisher namespace
  • unique sprite for self-extinguish icon
  • unique sprite for self-extinguish verb
  • on self-extinguish, check for pressure immunity OR ignite from gas immunity properly
  • Envirosuit extinguish visuals
  • See envirosuit extinguish charges in examine
  • Add way to refill envirosuit charges (refill at medical protolathe after some research)
  • Milk heals on ingestion
  • Plasma heals on ingestion
  • Plasmamen visuals
    • Grayscale sprites for color customization, and set default skintone color to Plasmaman classic skintone
    • Glowing eyes/mouth marking
    • Plasmaman eye organ sprite
  • Self-ignition doesn't occur on a stasis bed
  • Self-ignition doesn't occur when dead
  • Guidebook entry
  • Make self-ignition ignore damage resistances from fire suits
  • Make self-ignition ignore damage resistances from armor
  • Unable to rot?
  • Make the envirosuit helmet toggle on for the character dummy in lobby
  • Finetune extracted plasma amounts from juicing body parts per body part
  • One additional Plasmaman trait
  • Another additional Plasmaman trait
  • Showers extinguish water as well as water tiles
    • Unnecessary as stasis beds now prevent ignition, allowing surgery on a plasmaman on stasis beds.
  • Unique punch animations for Plasmafire Punch/Toxoplasmic Punch traits
  • Talk sounds
    • Normal
    • Question
    • Yell
  • Positive moodlet for drinking milk / more positive moodlet for drinking plasma
  • Increase moodlet bonus and also minimum reagent required for the plasma/milk moodlets
  • Increase fire rate base stacks on ignite cause putting out your helmet for a few secs isn't that dangerous due to the fire stacks immediately decaying
    • I think halving firestack fade from -0.1 to -0.05 might work to do the same thing too
  • Get bone laugh sounds from monke 'monkestation/sound/voice/laugh/skeleton/skeleton_laugh.ogg'
  • When EVA plasmaman suit is added, 25% caustic resist
  • Envirosuit helmet
    • Equivalent of 100% bio / 100% fire / 75% acid resist
  • Envirosuit
    • Equivalent of 100% bio / 100% fire / 75% acid resist
  • Envirogloves
    • Equivalent of 100% bio / 95% fire / 95% acid resist
  • Put breath mask back on
  • Refactor: put body parts covered data into component instead of being hardcoded

Media

Chat bubble

Plasmaman Body

Skeleton Language

image

(Bonus) Skeleton chat bubble

Guidebook Entry

Changelog

🆑 Skubman

  • add: The Plasmamen have arrived as the latest playable species. They need to breathe plasma to live, and a special jumpsuit to prevent oxygen from igniting them. In exchange, they never bleed, never need food or water, nor take damage from cold and radiation.
  • tweak: Internals are no longer toggled off if you take your helmet off but still have a gas mask on and vice versa.
  • fix: Arriving from cryosleep now properly equips your loadout items, instead of putting them in your backpack and on the floor.

angelofallars and others added 16 commits November 24, 2024 04:43
TODO: add plasmaman eyes sprite
When there are not enough items in a group, the loadout system
will load the default items. When the selected items in a group
exceeds the maximum amount allowed, the system will just reduce
the amount of items to the max amount instead of not loading anything
at all.

TODO: Backend is fine, need to handle the client UI stuff of this
Internals are still turned off by toggling the envirosuit tho
so might need to cherry pick #28595 from wizden
@github-actions github-actions bot added Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: UI Changes any XAML files Changes: YML Changes any yml files Changes: Sprite Changes any png or json in an RSI Changes: Audio Changes any ogg files labels Nov 29, 2024
Copy link
Contributor

github-actions bot commented Nov 29, 2024

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

Resources/Textures/Clothing/Hands/Gloves/Envirogloves/plasma.rsi

State Old New Status
icon Added

Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/captain.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/ce.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/clown.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/commander.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/geneticist.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/hop.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/hos.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/hydroponics.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/intern.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/janitor.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/librarian.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/medical.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/mime.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/official.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/paramedic.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/plain.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/prisoner.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/rd.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/roboticist.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/salvage.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/scientist.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/security.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/tacticool.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/virology.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/warden.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/white.rsi

State Old New Status
icon-flash Added
icon Added
off-equipped-HELMET Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Uniforms/Envirosuits/atmos.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/captain.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/cargo.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/ce.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/chaplain.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/chef.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/chemist.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/clown.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/cmo.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/commander.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Resources/Textures/Clothing/Uniforms/Envirosuits/coroner.rsi

State Old New Status
equipped-INNERCLOTHING Added
icon Added

Edit: diff updated after a786002

plasmillions must endure 3 leading spaces on an empty lline

Signed-off-by: Skubman <[email protected]>
Signed-off-by: Skubman <[email protected]>
Signed-off-by: Skubman <[email protected]>
@Eagle-0
Copy link
Contributor

Eagle-0 commented Nov 29, 2024

holy shit

@github-actions github-actions bot added the Changes: Documentation Changes any xml or md files label Dec 7, 2024
TODO:
- move self-extinguish verb stuff to shared for prediction
- move self-extinguisher stuff away from extinguisher namespace
- unique sprite for self-extinguish icon
- unique sprite for self-extinguish verb
- check for pressure immunity OR ignite from gas immunity properly
base firestacks on exposed increased from 0.10 to 0.13 (with head exposed its 0.15)

halved firestack fade on plasmaman (passive fade and stop, drop and roll firestack reduction are both halved)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Audio Changes any ogg files Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: UI Changes any XAML files Changes: YML Changes any yml files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants