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

Accessory slot. #13713

Closed
wants to merge 2 commits into from
Closed

Conversation

DisturbHerb
Copy link
Contributor

@DisturbHerb DisturbHerb commented Apr 16, 2023

[CLOTHING][UI][EXPERIMENTAL][FEATURE][QOL][INPUT WANTED]

About the PR

This PR adds barebones support for the accessory slot, a new clothing slot that behaves similarly to the belt. The accessory slot is tied to the "Toggle Inventory" option, so it will hide and become invisible with the other worn clothing options. Accessories can be any /obj/item with c_flag = ONACCESORY as defined in defines/clothing.dm.

accessory

The icon for the accessory slot itself is supported by all the HUD styles, after I bodged together a set of codersprites that take one of @WALPVRGIS' scarves, sorry!

image

Mob examine text for when the target mob is wearing an accessory can be varied by where the accessory is worn, which can be set with a /obj/item variable, accessory_location. The values are determined in defines/clothing.dm.

image

Currently, the clothing layer that accessories show up on is defined in layer.dm as MOB_OVERLAY_BASE - 9 after bumping MOB_ARMOR_LAYER to MOB_OVERLAY_BASE - 9.1. I'm not entirely sure if it should stay that way, maybe we don't want accessories showing up above armour, but I'll put off that decision for later. At some point, it could be worthwhile adding two different layers for accessories that appear above or below armour (so that, say, security badges would show up above an armour vest but a tie would not).

So far, there aren't actually any items that are part of this PR that can be worn in the slot. Below is an example of it working with the stethoscope; sprites courtesy of @avimour.

image
image
image

Why's this needed?

I'unno, really, I just wanted to wear my stethoscope around my neck. Maybe there's a use for it, somewhere.

Changelog

(u)DisturbHerb
(*)Added the accessory clothing slot to human mobs.

@keywordlabeler keywordlabeler bot added A-Clothing Deals with clothing of whatever sort A-UI Modifies UI in some way. Automatically applied on a change to tgui/ C-Experimental Involves changes that are a WIP and will require testing, feedback, and additional modification. C-Feature A new feature or enhancements to existing features C-QoL A quality of life improvement that makes the game easier to play E-Input-Wanted Input and feedback are wanted. Also posts a discussion thread on the forums. labels Apr 16, 2023
@boring-cyborg boring-cyborg bot added the C-Sprites Automatically applied on any .dmi or icons folder change label Apr 16, 2023
@github-actions github-actions bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Apr 16, 2023
@github-actions
Copy link
Contributor

Created discussion thread: https://forum.ss13.co/showthread.php?tid=21065

@DisturbHerb
Copy link
Contributor Author

All the defines in accessory_locations.dm could probably just be moved to clothing.dm. Yeah.

@flrsh
Copy link
Contributor

flrsh commented Apr 18, 2023

Adding to what Flaborized said -

I (personally) don't like the idea of a cosmetic-only slot very much, if it's meant to be solely for aesthetic purposes I think it takes up valuable UI and HUD real estate for not a lot of gain. There's lots of cosmetic items that go in other slots, but there's also lots of useful stuff, and thus seeing someone wear a cosmetic item still relays the info to you; if you see someone wearing a jacket you know they don't have armor on for instance. The mob sprites give you a *lot* of info and I think adding more noise to them without any real implications mechanically isn't good.

An accessory slot is problematic code and design wise as well. How are you going to decide which items go in the accessory slot and which go in other slots? How will various accessories layer? How will different accessories interact with various mechanics such as acid, choking, eating, removal, etc.? This would clutter the UI, reduce visual clarity, unnecessarily complicate many game mechanics, and require a lot of special code handling.

Imo it would make more sense to just add a dedicated neck slot with defined behavior.

DNMing for additional admin discussion.

@flrsh flrsh added the E-DNM [Dev Only] Do Not Merge - can only be removed by the applier or with their explicit permission. label Apr 18, 2023
@github-actions
Copy link
Contributor

github-actions bot commented May 2, 2023

This PR has been inactive for two weeks, and has been automatically marked as stale. This means it is at risk of being auto closed in another week. Please address any outstanding review items and ensure your PR is finished. If you are auto-staled anyway, ask developers if your PR will be merged. Once you have done any of the previous actions then you should request a developer remove the stale label on your PR, to reset the stale timer. If you feel no developer will respond in that time, you may wish to close this PR youself, while you seek developer comment, as you will then be able to reopen the PR yourself.

@github-actions github-actions bot added the S-Stale An inactive PR that has had no updates in the past two weeks label May 2, 2023
@flrsh
Copy link
Contributor

flrsh commented May 2, 2023

Since no one else commented, as an update (which you probably expected) - most of the other admins / devs I've talked to agree that a neck slot would be preferable. I think some would still be against, or at least, not very enthused with a neck slot (I myself am somewhat ambivalent), but I think it'd be more viable than a general accessory slot.

@github-actions github-actions bot removed the S-Stale An inactive PR that has had no updates in the past two weeks label May 3, 2023
@github-actions
Copy link
Contributor

This PR has been inactive for two weeks, and has been automatically marked as stale. This means it is at risk of being auto closed in another week. Please address any outstanding review items and ensure your PR is finished. If you are auto-staled anyway, ask developers if your PR will be merged. Once you have done any of the previous actions then you should request a developer remove the stale label on your PR, to reset the stale timer. If you feel no developer will respond in that time, you may wish to close this PR youself, while you seek developer comment, as you will then be able to reopen the PR yourself.

@github-actions github-actions bot added S-Stale An inactive PR that has had no updates in the past two weeks S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict and removed S-Stale An inactive PR that has had no updates in the past two weeks S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict labels May 17, 2023
@DisturbHerb
Copy link
Contributor Author

Closed until I can find more time to work on this.

@DisturbHerb DisturbHerb added the S-Adopt-Me The original PR author isn't working on this anymore. Feel free to pick me up! label Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Clothing Deals with clothing of whatever sort A-UI Modifies UI in some way. Automatically applied on a change to tgui/ C-Experimental Involves changes that are a WIP and will require testing, feedback, and additional modification. C-Feature A new feature or enhancements to existing features C-QoL A quality of life improvement that makes the game easier to play C-Sprites Automatically applied on any .dmi or icons folder change E-DNM [Dev Only] Do Not Merge - can only be removed by the applier or with their explicit permission. E-Input-Wanted Input and feedback are wanted. Also posts a discussion thread on the forums. S-Adopt-Me The original PR author isn't working on this anymore. Feel free to pick me up! size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants