Skip to content

Conversation

@IProduceWidgets
Copy link
Contributor

@IProduceWidgets IProduceWidgets commented Apr 11, 2025

About the PR

Adds an exploding cigar to the uplink for most (all?) civil service roles.

Does this via a new trigger for when a smokable is expended.

By request, also adds a craftable harmless snap pop version. Took the moment to move the cigar tags into the tags yml too while I was there.

Why / Balance

giphy
tumblr_o3095xQpCL1qmob6ro1_500
ddIl_w

I have no strong opinions on the explosion strength, I simply reused the values for the explosive banana.
I know we've been on a crusade about instant explosions, and this is stealth, but boyo does it take a long fricking time to explode. Its like 3 minutes. This does have a neat use case though of basically being a fuse if your goal is to use it to chain explode.

Technical details

I just connect the tubes man.

Media

https://imgur.com/a/FnZmDOp
Video.webm
just skip through the webm, the gif is like 3:30 of watching paint dry.
image

Requirements

Breaking changes

Changelog

🆑

  • add: exploding cigars in traitor uplink for civil service jobs.
  • add: a harmless trick cigar is craftable with a snap pop.

@github-actions github-actions bot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. size/S Denotes a PR that changes 10-99 lines. labels Apr 11, 2025
@github-actions github-actions bot added size/M Denotes a PR that changes 100-999 lines. and removed size/S Denotes a PR that changes 10-99 lines. labels Apr 11, 2025
@TeenSarlacc
Copy link
Contributor

I love this but does it have to be job specific?

@PunishedJoe
Copy link

castro

@Killerqu00 Killerqu00 added P3: Standard Priority: Default priority for repository items. T: New Feature Type: New feature or content, or extending existing content D3: Low Difficulty: Some codebase knowledge required. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. A: Roundflow/Antag Area: Roundflow - "What happens in the game", including antagonist roles and their capabilities and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Apr 19, 2025
Copy link
Member

@slarticodefast slarticodefast left a comment

Choose a reason for hiding this comment

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

I'm currently refactoring trigger code and moving it to shared, so I would prefer if this PR would wait until after that is done, because this is quite a big merge conflict.
After that I can help you with rewriting this if you want.

/// The entity which lit the triggering expendable entity
/// </summary>
[DataField]
public EntityUid? LitBy = default!;
Copy link
Member

Choose a reason for hiding this comment

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

This is a little problematic, because you can light the cigarette, give it to someone else, but the user will still be you.
Some XOnTriggerComponents apply the effect to the user, which will have strange long-range effects in that case. And in my refactor all of them will have a ApplyToUser bool instead.
This will also throw errors in case the user is deleted by the time it does trigger.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm happy to wait for that if you've got a way to solve the user issues. I've run into that before with triggers for interactinworld and the like as well, so I see why you want it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do you mind linking the PRs? I did a quick search but I only found Slam's explosive trigger changes.

Copy link
Member

Choose a reason for hiding this comment

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

still work in progress, I can ping you once I make the PR

return;

SetSmokableState(entity, SmokableState.Lit, smokable);
if (TryComp<TriggerOnSmokableExpendedComponent>(entity, out var triggerComp))
Copy link
Member

Choose a reason for hiding this comment

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

I'm not a fan of hardcoding the component here like this.
Also this will not work if the cigarette is ignited in any other way.

Copy link
Contributor Author

@IProduceWidgets IProduceWidgets Apr 19, 2025

Choose a reason for hiding this comment

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

That should be fine, it only really sets litby for log purposes and otherwise doesn't do anything. Or rather, that was my intent, above issue withstanding.

id: smokeableCigarBombHarmless
start: start
graph:
- node: start
Copy link
Member

Choose a reason for hiding this comment

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

fix indentation,
same below

Copy link
Contributor Author

Choose a reason for hiding this comment

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

being honest, construction graphs explode every time I touch them, so I'm gonna pass on that for now.

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

github-actions bot commented Aug 3, 2025

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

Copy link
Member

@slarticodefast slarticodefast left a comment

Choose a reason for hiding this comment

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

Ok the trigger refactor #39034 has been merged, so this will need some adjustments now:

  • TriggerOnSmokableExpended should be moved to Content.Shared.Trigger.*.
  • It has to be adjusted to the new trigger system so it inherits from BaseTriggerOnXComponent and passes in the trigger key into the Trigger method.
  • The subscription should be moved into its own system in the same namespace.
  • The hardcoding of the trigger component into the smokingsystem should be removed.
  • The user should be the person smoking the cigar. You can do something similar to this to obtain the the entity
grafik

@PJBot PJBot 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. Not to be replaced by S: Approved. labels Aug 4, 2025
@slarticodefast slarticodefast self-assigned this Aug 4, 2025
@slarticodefast
Copy link
Member

Are you coming back to this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A: Roundflow/Antag Area: Roundflow - "What happens in the game", including antagonist roles and their capabilities D3: Low Difficulty: Some codebase knowledge required. P3: Standard Priority: Default priority for repository items. 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 size/M Denotes a PR that changes 100-999 lines. T: New Feature Type: New feature or content, or extending existing content

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants