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

Felinid Soft Thieving + Trait #500

Merged
merged 21 commits into from
Jul 5, 2024
Merged

Conversation

WarMechanic
Copy link
Contributor

@WarMechanic WarMechanic commented Jul 1, 2024

Description

Reworks felinid thieving to no longer act like passive thieving gloves which grant invisible stripping (hereon referred to as hard stealing), in favour of soft thievery (hereon referred to as soft stealing).

Soft thievery comprises of the following:

  • A smaller popup, with the thief anonymised.
  • A visible doafter bar
  • A 33% faster strip speed, that stacks with Thieving gloves
  • An additional ability to identify hidden items to better plan your course of action

You no longer need to completely avoid felinids to maintain your precious items as long as you pay attention. For a felinid to utilise their thieving passive, they are encouraged to exploit any distractions to make moves on a target. If there is none, create one through conversation or other forms of player interaction. If you are suspected, persuade your victim that the thief is in fact, the other person.

A faster strip speed makes thief bonuses diegetic to other players, and also improves the value proposition of thieving gloves on someone who already has thieving bonuses.

Any other race can also gain soft thievery via a moderate costing trait. Non-felinid thieves are encouraged to exploit any felinids as a scapegoat.


TODO

Code

  • IgnoreStripHidden - allows thieves to look into peoples pockets
  • StripTimeMultiplier - stripping at a multiplicative rate helps strip bags/belts which creates trait value
  • Stealthy > Stealth - rather than a bool, distinguishes stealth levels as an enum

Balance

  • Soft thieves can identify items in pockets, which creates player agency
  • Soft thieves steal 33% faster, which stacks with thieving gloves
  • Victims to soft stealing get a smaller popup, useful if they're preoccupied
  • Soft thievery is a trait, which Felinids get for free
  • Felinids no longer hard steal items

Media

  • Attach media

Media

image
video


Changelog

🆑

  • add: Added the Thievery trait, which provides various soft stripping bonuses
  • tweak: Felinids no longer have passive thieving gloves, they instead get the Thievery trait by default

@github-actions github-actions bot added Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: YML Changes any yml files labels Jul 1, 2024
@SimpleStation14 SimpleStation14 changed the title Felinid soft thieving + trait Felinid Soft Thieving + Trait Jul 1, 2024
@VMSolidus
Copy link
Member

Holy shit congratulations on PR500 by the way!

@WarMechanic
Copy link
Contributor Author

it appears something has gone wrong

@VMSolidus
Copy link
Member

VMSolidus commented Jul 1, 2024

it appears something has gone wrong

It looks like you need to create a way to convert from ThievingStealth's sbyte to PopupType. Your best bet will likely be to use a Switch statement for this.
image

image

image

@WarMechanic
Copy link
Contributor Author

oh shit ive been using boolean assignment when i could have done this, thats awesome

@WarMechanic
Copy link
Contributor Author

WarMechanic commented Jul 1, 2024

Your best bet will likely be to use a Switch statement for this.

done, it still works ingame and i actually built it locally this time :)

@github-actions github-actions bot added the Status: Needs Review Someone please review this label Jul 1, 2024
@DangerRevolution DangerRevolution added Size: 3-Medium For medium issues/PRs Priority: 3-Medium Needs to be resolved at some point Type: Feature Creation of or significant changes to a feature Type: Port Brings something to here from another codebase labels Jul 1, 2024
Content.Server/Strip/StrippableSystem.cs Outdated Show resolved Hide resolved
Content.Server/Strip/StrippableSystem.cs Outdated Show resolved Hide resolved
Content.Server/Strip/StrippableSystem.cs Outdated Show resolved Hide resolved
Content.Server/Strip/StrippableSystem.cs Outdated Show resolved Hide resolved
Content.Server/Strip/StrippableSystem.cs Outdated Show resolved Hide resolved
Content.Shared/Strip/ThievingSystem.cs Outdated Show resolved Hide resolved
Content.Shared/Strip/ThievingSystem.cs Outdated Show resolved Hide resolved
Resources/Locale/en-US/traits/traits.ftl Outdated Show resolved Hide resolved
Resources/Prototypes/Traits/skills.yml Outdated Show resolved Hide resolved
Resources/Prototypes/Traits/skills.yml Outdated Show resolved Hide resolved
WarMechanic and others added 4 commits July 1, 2024 17:25
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: WarMechanic <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: WarMechanic <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: WarMechanic <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: WarMechanic <[email protected]>
@WarMechanic
Copy link
Contributor Author

still works ingame, 1/4 the code used for popups

@DangerRevolution DangerRevolution self-requested a review July 1, 2024 08:37
@DangerRevolution
Copy link
Contributor

Does this have much impact on / from #205 and #224 ?

@WarMechanic
Copy link
Contributor Author

WarMechanic commented Jul 1, 2024

Does this have much impact on / from #205 and #224 ?

because codewise this pr only really changes stealth to be an enum instead of a bool alongside other things, i dont think the merge conflict should be too hard to resolve

@VMSolidus
Copy link
Member

Does this have much impact on / from #205 and #224 ?

because codewise this pr only really changes stealth to be an enum instead of a bool alongside other things, i dont think the merge conflict should be too hard to resolve

I'll hold you to that. I'm going to merge the strippablesystem doafter PRs, and then have you fix merge conflicts after the two are merged.

@github-actions github-actions bot added the Status: Merge Conflict FIX YOUR PR AAAGH label Jul 1, 2024
Copy link
Contributor

github-actions bot commented Jul 1, 2024

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

@github-actions github-actions bot removed the Status: Merge Conflict FIX YOUR PR AAAGH label Jul 2, 2024
@WarMechanic
Copy link
Contributor Author

why was the strip time multiplier variable changed to a timespan? it just broke the multiplication and caused any multiplier less than 1 to make strip times instant

in the merge i switched it back to being a float, i really dont see much of a difference otherwise

@VMSolidus
Copy link
Member

why was the strip time multiplier variable changed to a timespan? it just broke the multiplication and caused any multiplier less than 1 to make strip times instant

in the merge i switched it back to being a float, i really dont see much of a difference otherwise

Hold off a bit until we merge the second one that fixes some issues that the first PR had.

@VMSolidus
Copy link
Member

If you really want to get things quickly, you can cherrypick this and say that Felinid Soft Thieving depends on this PR:
#504

@WarMechanic
Copy link
Contributor Author

im happy to wait until everything is ready, 0 second strip time would be awful for balance

@github-actions github-actions bot added the Status: Merge Conflict FIX YOUR PR AAAGH label Jul 2, 2024
Copy link
Contributor

github-actions bot commented Jul 2, 2024

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

@github-actions github-actions bot removed the Status: Merge Conflict FIX YOUR PR AAAGH label Jul 2, 2024
Copy link
Contributor

@DangerRevolution DangerRevolution left a comment

Choose a reason for hiding this comment

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

While Felinid thieving is contentious; we'll be revisiting species and mass .yaml changes when Common Core exists and can be re-adressed then or if it's an issue downstream somewhere; otherwise the changes are cool

@VMSolidus VMSolidus merged commit e06045c into Simple-Station:master Jul 5, 2024
11 checks passed
SimpleStation14 added a commit that referenced this pull request Jul 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: YML Changes any yml files Priority: 3-Medium Needs to be resolved at some point Size: 3-Medium For medium issues/PRs Status: Needs Review Someone please review this Type: Feature Creation of or significant changes to a feature Type: Port Brings something to here from another codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants