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

Whitelist for blood packs #32517

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

insoPL
Copy link
Contributor

@insoPL insoPL commented Sep 29, 2024

About the PR

Added white list to blood packs, now it can only restore generic species blood types

Why / Balance

  • It fixes chem duping exploit used with reagent slimes and blood packs. You could inject dead reagent slime with blood packs to replenish its blood infinitely, with it you could trade one blood pack for a lot of omnizine.
  • It also fixes Blood packs stop healing mobs that need blood #28933 where repeat healing didn't take into consideration blood %

Technical details

Added bloodReagentWhitelist to healing components, if left empty then it is ignored.
Added bloodReagentWhitelist basic blood types for blood pack.
Replaced private method HasDamage with bigger CanHealingCompomentBeUsed it takes blood % and whitelist into consideration. It's used when healing item is used or heal is auto repeated.

Media

https://www.youtube.com/watch?v=Bey-tbuAtyE

Requirements

Breaking changes

Changelog

🆑

  • tweak: Blood packs only work on species with generic blood (not reagent slimes)
  • fix: Blood packs autorepeat when blood levels are low

@insoPL insoPL requested a review from Jezithyr as a code owner September 29, 2024 01:59
@github-actions github-actions bot added the S: Needs Review Status: Requires additional reviews before being fully accepted label Sep 29, 2024
@thebadman4662
Copy link

obraz
Could zombie blood be added at least temporarily?

#31912 (comment) Zombies brokey so till that issue gets fixed infection is 100% fatal(Or at very least coma inducing on bed/medibed in order to prevent turning) as no reasonable amount of ambuzol/ambuzol+ can be made.

@insoPL
Copy link
Contributor Author

insoPL commented Sep 29, 2024

obraz Could zombie blood be added at least temporarily?

#31912 (comment) Zombies brokey so till that issue gets fixed infection is 100% fatal(Or at very least coma inducing on bed/medibed in order to prevent turning) as no reasonable amount of ambuzol/ambuzol+ can be made.

I just fixed that in
#32532

@insoPL
Copy link
Contributor Author

insoPL commented Oct 1, 2024

Why dislikes? Did you just liked to make 3 jugs of omni with dead slime? Or is there other reason?

@thebadman4662
Copy link

Why dislikes? Did you just liked to make 3 jugs of omni with dead slime? Or is there other reason?

I guess it could be that there isn't really good use for blood packs other than someone suiciding for 200 bloodloss damage and someone making cognizine golems? And of course nukie agent/chemists being unrobust as fuck.

Bloodpacking zombies/reagent silimes is like main use of them right now.

@Golinth
Copy link
Contributor

Golinth commented Oct 1, 2024

Why dislikes? Did you just liked to make 3 jugs of omni with dead slime? Or is there other reason?

Definitely the Omni jugs. It’s rare enough for sci to crit a slime anom, rarer that an Omni slime is made, and even rarer that it actually is brought to and used by chemists.

@SlamBamActionman SlamBamActionman added the S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. label Nov 14, 2024
@eoineoineoin eoineoineoin added T: Bugfix Type: Bugs and/or bugfixes P3: Standard Priority: Default priority for repository items. D3: Low Difficulty: Some codebase knowledge required. A: Medical Area: Medical department, including Chemistry and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Nov 22, 2024
Copy link
Member

@TheShuEd TheShuEd left a comment

Choose a reason for hiding this comment

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

Overall the idea of a bloodpack that transforms into any type of blood is a very strange mechanic. I would suggest just having different containers with different types of blood that can be injected into mobs.

This adds an aspect of choice where you can go wrong, as well as giving opportunities to poison bloodpacks to antags and other interesting interactions.

if (!args.Repeat && !dontRepeat)
_popupSystem.PopupEntity(Loc.GetString("medical-item-finished-using", ("item", args.Used)), entity.Owner, args.User);
args.Handled = true;
}

private bool HasDamage(DamageableComponent component, HealingComponent healing)
private bool CanHealingCompomentBeUsed(EntityUid targetEntityUid, HealingComponent healingComponent)
Copy link
Member

Choose a reason for hiding this comment

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

Use Entity please

@github-actions github-actions bot added the size/S Denotes a PR that changes 10-99 lines. label Dec 23, 2024
@insoPL
Copy link
Contributor Author

insoPL commented Dec 24, 2024

Overall the idea of a bloodpack that transforms into any type of blood is a very strange mechanic. I would suggest just having different containers with different types of blood that can be injected into mobs.

This adds an aspect of choice where you can go wrong, as well as giving opportunities to poison bloodpacks to antags and other interesting interactions.

One thing is that Saline and Iron is too OP, so currently, even with something rare like a 30% blood level, it's easier to defib and give dex and saline instead of injecting 15u of blood per doafter with a bloodpack.

I would say:

  • Implement IV Drip (there is a sprite in ss13)

  • Remove saline, nerf iron.

  • Give IV Bag 80u, decrease syringe to 10u.

  • You start the round with a crate of jugs of every blood type.

  • Now you are starting to get bloodlose damage at, I think, 90%. we can make it 75% but it should get worse when you drop below 40% and you insta crit under 10%.

  • You can organize blood drive to replenish blood jugs at med, buy blood crates at cargo or grow blood in botany.

  • Add new adv cryo liquid that can heal bloodloss(airloss?) of dead people. (one of the uses of bloodpacks)

  • Remove old bloodpacks (or slightly buff them but make them scarce like meshes).

I was searching for something other to do while my other PR idea is stalled and waiting for chat rework

@insoPL insoPL requested a review from TheShuEd January 3, 2025 01:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Medical Area: Medical department, including Chemistry D3: Low Difficulty: Some codebase knowledge required. P3: Standard Priority: Default priority for repository items. S: Needs Review Status: Requires additional reviews before being fully accepted size/S Denotes a PR that changes 10-99 lines. T: Bugfix Type: Bugs and/or bugfixes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Blood packs stop healing mobs that need blood
6 participants