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

Chameleon system #27934

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

Chameleon system #27934

wants to merge 8 commits into from

Conversation

Drsmail
Copy link
Contributor

@Drsmail Drsmail commented Jan 10, 2025

What Does This PR Do

Makes chameleon a /component, so it can be easily added to any item.
Now each individual item will not grant a new skill, insted user will have two buttons, one for fully changing outfit and one for changing a single chameleon item.
It adds the chameleon glasses special ability - scan, which allows scanning other characters and oneself. The scanned outfits can be saved in one of three slots for quick access.

Why It's Good For The Game

The player's interface will not be cluttered with buttons while in disguise. Changing disguises will be faster and more convenient.

Images of changes

image
image
image
image
image
image

Todo List

  • Add agent_id to the chameleon system.
  • Fix TGUI for changing item appearance.
  • Create more tests.
  • Migrate old chameleon items to the new system

Testing

Successfully compiled and ran. More tests will be conducted later.


Declaration

I will get it before settings this PR as ready.

  • I confirm that I either do not require pre-approval for this PR, or I have obtained such approval and have included a screenshot to demonstrate this below.

Changelog

🆑
tweak: The chameleon items system has been redesigned. Only 2 icons for UI.
add: Chameleon glasses grants scan skill, when equipped
add: Chameleon system grants you 3 slots, to save/load your outfits
/:cl:

@lewcc
Copy link
Contributor

lewcc commented Jan 10, 2025

Make sure to include the changes in #27840.

Also, please translate your CL.

@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally -Status: Awaiting approval This PR is waiting for approval internally Testmerge Requested This PR has a pending testmerge request and removed -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally labels Jan 11, 2025
@TravisAngeI
Copy link

Does this remove being able to manually switch your items? Like, being able to select the glasses and having the chameleon menu pull up to change it to any of the glasses on the list of glasses.

@Drsmail
Copy link
Contributor Author

Drsmail commented Jan 14, 2025

Does this remove being able to manually switch your items? Like, being able to select the glasses and having the chameleon menu pull up to change it to any of the glasses on the list of glasses.

No, it's not. I will update PR description to indicate it better.

@Denthamos
Copy link

For the glasses there should be a distance limitation if there is not one on the scan ability. Being able to scan at any distance would become a bit troublesome. Should be limited to 2-3 tiles away from the user.

@Drsmail
Copy link
Contributor Author

Drsmail commented Jan 22, 2025

For the glasses there should be a distance limitation if there is not one on the scan ability. Being able to scan at any distance would become a bit troublesome. Should be limited to 2-3 tiles away from the user.

Thanks, for feedback, i assumed that view distance of player would be a limit. Can it be a problem because of cameras, can you give me an example of how it lead to a problem?

@Drsmail
Copy link
Contributor Author

Drsmail commented Jan 29, 2025

@warriorstar-orion

https://discord.com/channels/145533722026967040/145700319819464704/1329620637391786116
https://discord.com/channels/145533722026967040/145700319819464704/1328424191761977355

I see you have changed some behaviour after i did a Merge. So maybe my earlier complaint not true. But i am still can't figure out how to properly use the signals than.

COMSIG_ITEM_EQUIPPED -> With this i am just trying to catch when user EQUIP glasses to a correct slot.
COMSIG_ITEM_PICKUP -> I use this to detect when, user picked up item from the floor, but it also get used when i swap hands, but probably EQUIPPED, should have been sent in this case?
COMSIG_ITEM_DROPPED -> This i guess is fine now, after merge src.loc seems to work fine, but would be nice to have a signal for leaving player inventory and just for UNEQUIPPED

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Status: Awaiting approval This PR is waiting for approval internally Testmerge Requested This PR has a pending testmerge request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants