17 Commits
Author SHA1 Message Date
935126228a [IDB IGNORE] [MDB IGNORE] entirely rewrites mirrors and throws out old resleeving backend (#7446)
Co-authored-by: silicons <silicons@silicons.dev>
2026-02-24 09:41:30 +01:00
LordMEandGitHub ecec05522f reduces old variable bloat (#7440)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
removes the adminbus_trash variable
removes the option to play audible hunger noises
removes option to TF people into eggs
Moves the feral variable from /mob/living to the xenochimera species
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
Unused variables are not helpful.
TF to egg is unused and broken.
only chimera uses the feral variable anyway, and even then it mirrors
the mob variable for use, so lets just move it to chimera
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Please note that
maintainers freely reserve the right to remove and add tags should they
deem it appropriate. You can attempt to finagle the system all you want,
but it's best to shoot for clear communication right off the bat. -->

🆑
del: Removed unused variables that held over from vorestation
del: Removed Vore belly transform to egg options
del: Removed audible hunger noises
tweak: tweaked feral to be a chimera specific variable, instead of a mob
variable thats only used by chimera
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2025-12-21 15:18:33 -05:00
10d2505338 TGUI update (from letterN branch) (#7244)
Co-authored-by: LetterN <24603524+LetterN@users.noreply.github.com>
2025-10-04 10:45:41 +02:00
Timothy TeakettleandGitHub c569d058e6 holospheres (TESTMERGE ONLY) (#6964)
## About The Pull Request
IN SO FAR;
- 20 max health species that displays as a hologram
- all clothing and items they wear display as holographic, the same as
their body
- hair and body alpha values can be customized
- other slots can be equipped like backpacks/belts/etc however they
appear holographic (for now, might change this!)
- your loadout/job clothing copies onto your body, priotizing job
clothing first
- if you use the enable-hologram verb or die as a hologram you will be
turned back into your sphere, dying means you are stunned for 10 seconds
and then you turn back into a hologram
- dying loses you nutrition and you also passively regenerate hologram
health over time using nutrition, this can be regained using a
recharging station
- being a hologram they are unable to be healed by normal things, they
don't have a mouth, can't get diseases, etc, this is counteracted by
having incredibly low health and their 'death' being quite punishing
(loss of nutrition that requires a recharger, hardstun that leaves their
shell vulnerable)
- cable coil heals burns on the sphere, welding tool heals brute on the
sphere
- you can pick the sphere up by clicking on it
- you can revive the sphere using a multitool, this takes 10 seconds and
requires the sphere to be full hp
- eye colour on the sphere is the character's eye colour
- if hologram is gibbed/dusted then the shell is also deleted
- action buttons for the verbs
- new clothing flag NO_UNEQUIP stops you unequipping the item
- attempting to strip the holosphere shell will strip the hologram (you
can't avoid getting your items taken off you)

PLANNED:
testmerge this for a round or two and just get a better feel for their
balance

## Why It's Good For The Game

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: holospheres
/🆑
2025-02-25 06:46:49 -08:00
siliconsandGitHub 3c4ff0279c removes weight gain/loss mechanics (#6863)
never really used on citrp and has confused people more than it's added
to any semblance of RP.
in the future, weight will be replaced with a descriptor system.
2024-11-19 09:01:51 -07:00
LordMEandGitHub da0eb918ef opendream fixes (#6809)
…l-Station-13-RP into opendream_branch<!-- Write **BELOW** The Headers
and **ABOVE** The comments else it may not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
adjusts the repo to work with opendream
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
a more modern, and hopefully more reliable engine!!!
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
code: changed the code to work with Opendream
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2024-11-05 10:12:18 -05:00
NyeogmiandGitHub ff090af8e3 Tidy up traits (#6598)
## About The Pull Request

This is a revamp of all the parts of the trait system that are connected
to the UI. It also replaces the sanitization code that creates the trait
list on character load.

## Images


![image](https://github.com/user-attachments/assets/fe0f3686-e4d6-4e58-a390-d77e8d71e8c6)

![image](https://github.com/user-attachments/assets/e1b210f1-b2e3-4a32-9be1-5fd1e6bc457b)

## Why It's Good For The Game

In short: the old trait UI was really confusing and made it hard to
discover traits, because you couldn't see what they did without adding
them to your character.

Bhijn, Marionette and Silicons encouraged me to refactor this. Also, I
asked ChatGPT if this change was a good idea and it said yes.

### How It Was

#### Visual

The window was tiny. The search bar was modal for no real reason.

#### Trait Text

The traits were in no particular order.

You had to click on a trait to learn anything about it other than its
name, including:

- Its description.
- Its cost.
- Whether it was excluded by some other trait.

Related traits weren't grouped together. Many traits had a positive
version that wasn't presented at all, because positive and negative
traits were usually not on the same menu.

The trait count requirements (things like "neutral traits don't count
towards the limit") weren't explained at all.

#### Flow

Adding a trait closed the window. You then had to reopen the window
again to do something else. This would lose your place in the list.

Updates to things like currency amount ("how many traits do you have
left?") were server-side, so you had to wait for them.

#### Maintainability

The code to sanitize a character preference was totally separate from
the code to apply a list of traits to a character preference, even
though these are logically similar operations.

The everyone_traits list was confusingly described as a list of neutral
traits in some parts of the code and a list of neutral and bad traits in
other parts.

#### Bugs

Traits were double-counted towards the seven-trait limit for characters
of custom species, but only the single-count appeared in the UI. The
conditions for the currency amounts to be displayed in red (signifying
badness) were incorrect, so you'd get incorrect feedback on whether you
had screwed up.

Photosensitive had a minor bug -- it failed to modify one of the
variables it was supposed to.

### Now

#### Visual

The window is now bigger, with a permanent search bar. It's still
smaller than the base character window, so it should look OK on all
screens.

#### Trait Text

Traits are mostly alphabetized (at the top level) and sorted by cost
(within each group) with a few exceptions that have obvious contextual
reasons related to copy.

Each trait is presented with its description and cost. Related traits
are grouped together and therefore repetitive text has been moved to the
group-level description. Most traits have one-line descriptions.

Exclusion info is presented on a tooltip.

Because traits take up very little visual space in this design,
forbidden traits are displayed on the trait list, with an appropriate
warning, unless the forbidden trait is nerd-level Shadekin
customization.

The trait count requirements (things like "neutral traits don't count
towards the limit") are now explained with instant feedback.

#### Flow

The window now stays open until you're done adding traits.

Updates to currency amount happen immediately.

You cannot submit an invalid trait allocation, but if you do, it will be
rejected by the validator.

#### Maintainability

All trait adds are handled in one place. All validation is also handled
there.

The confusingly-defined everyone_traits table is removed.

## Things I Expect To Be Controversial

### Text

I changed some copy, mostly to make it shorter. Sorry if I deleted text
that you wrote, I wasn't trying to.

### Correctness

I touched savegame code. I'm pretty sure my code is correct, but I'd
appreciate it if someone else tried to break it.

### Performance

Opening the traits screen involves sending probably about 50KB of JSON
to the client. That's kind of heavy? I could probably cut it down, but
the code would be uglier, and I doubt this is a bottleneck.

Character loads are also more expensive now, as they start by computing
the trait exclusion table.

We could fix this by computing the trait exclusion table on only the
traits that the loaded character has -- that would make
sanitize_character() comparable in perf to the original version -- but
that would take more code, the code would be kind of nonobvious, and it
would break my personal vision of a trait deprecation system.

### TGUI

My TGUI code is probably not very performant. I wrote it under the
assumption that DOM updates are the most expensive and therefore didn't
try to optimize anything else.

It's also really ugly, but I mostly blame React. I am fairly sure
splitting it into more components would not help -- the central problem
being solved is algorithmic involving one single nasty data structure,
so you'd just get identical code with more data flow issues.

## Problems I Did Not Fix

### Maintainability

There are still a few places in the code where a trait is removed
without calling into my code. Removing a trait is always allowed, so I'm
less worried about this, but in a perfect world we'd change those too.

### Bugs

There are some clusters of trait that should be in a mutual exclusion
group that I didn't fix:

- Colorblindness: These should be exclusive.
- Bones: These should be exclusive.

There were and still are two versions of Antiseptic Saliva. Someone
needs to build a trait deprecation system.

Changing from custom species to non-custom species doesn't clear traits.
This seems like it _should_ happen -- changing species calls
sanitize_everything. I suspect there are deep reasons I don't understand
which cause this code path not to be hit, and I would prefer not to
change it quite this yet.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑 Pyrex
add: Replaced the trait UI with a prettier one
fix: Fixed bugs in Photosensitive
refactor: Centralized trait validation from sanitize_character()
spellcheck: Weaness should be spelled Weakness
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2024-07-23 13:31:16 -07:00
deathride58andGitHub 62e2088f54 ID rework - trait information on IDs, confidential information toggle, and more (#6595)
## About The Pull Request
This PR reworks how IDs are displayed, allows for traits to be displayed
within IDs, fixes a few things, and generally makes 'em look nicer. This
was primarily motivated by
https://discord.com/channels/161574200581029888/1262064135110398032


![dreamseeker_2pBMwy3E2y](https://github.com/user-attachments/assets/ab736d98-3efd-456c-9c48-733dbbc37c07)

The screenshot above is how the new IDs look ingame, featuring a few
snippets of what a few traits display as within. IDs now properly
display the photo (and the generation for said photo has been fixed!),
IDs will now show your pronouns, and IDs now have a confidential
information section (of which visibility can be toggled by alt-clicking
the ID).

Additionally, the new feature where traits are displayed on your ID card
is something that can be controlled in character generation, under the
new "ID-visible traits" section. This section lists all traits you have
that feature text for your ID. Clicking a trait will toggle whether or
not it's hidden from your ID. This allows traits like vetalism to be
omitted from IDs if desired.

![image](https://github.com/user-attachments/assets/e20cc939-ce9f-4048-92ad-ed348aa5f0e3)



## Why It's Good For The Game
The primary benefit to this is allowing medical to view potentially
important information regarding a patient, such as if they have alcohol
intolerance, require blood for their survival, are naturally deaf or
blind, and more! All while making sure that information is hidden by
default, with the ID needing to be physically held in order to toggle
the visibility of that extra information. There's also the additional
layer of players being allowed to omit traits from their ID.

Additionally, it simply looks quite a bit nicer overall, as IDs now
display a preview of the character.

## Changelog

🆑 Bhijn and Myr
add: The way IDs display information via examine has had an overhaul.
They will now display a photo of the employee tied to them, and are now
capable of displaying information related to traits. Additionally,
confidential information (such as your blood type and trait information)
is hidden by default, and their visibility can be toggled by
alt-clicking the ID.
add: Additionally, character generation has a new section that allows
omitting information from IDs outright.
/🆑
2024-07-17 06:02:03 -07:00
b1388fe5c3 adds a few hairs and horns from skyrat for a friend (also refactors human rendering a bit) (#6349)
Co-authored-by: silicons <no@you.cat>
2024-04-25 19:04:04 +02:00
deathride58andGitHub c4bd11a343 Allows negative traits to be available for everyone (+ makes a few disabilities available to all + related tweaks) (#6241)
## About The Pull Request

![image](https://github.com/Citadel-Station-13/Citadel-Station-13-RP/assets/6356337/84656b88-e499-4482-8708-0463e924161c)

Self-explanatory PR. Ya no longer need to be a custom species to take
negative traits!

There's a few extra changes in here, as well. Notably, the trait
selector will no longer show you traits that are exclusive to certain
species if you are not that species (like the shadekin traits, for
instance). Additionally, being a non-custom species will simplify the
"neutral traits" button to just "traits", with the selector having both
neutral and negative traits merged together.

As a treat, we've also gone the extra mile and made four negative traits
available to all: monochromancy, blindness, deafness, and muteness.

## Why It's Good For The Game
Some negative traits, especially notably the disabilities, can make for
genuinely interesting RP in some cases! So this makes a few directly
available, and makes it *much* easier to add more in the future.

## Changelog

🆑 Bhijn and Myr
add: Some negative traits are now available to all species, not just
custom species! Non-custom species have a trait selector with all traits
available to them merged together.
tweak: Monochromancy, blindness, deafness, and muteness, are now
available to all species
qol: The trait selector will no longer show you traits that you are
unable to take.
/🆑
2024-01-02 19:01:21 -07:00
817e7c1f22 Characteristics - Stats / Skills / Talents Backend, /datum/character backend, background-locked alt title backend (#4840)
Co-authored-by: VM_USER <VM_USER>
Co-authored-by: silicons <no@you.cat>
Co-authored-by: Felix <58342752+TheLordME@users.noreply.github.com>
2023-02-09 23:34:43 +01:00
FelixandGitHub e329e09f19 tgui_input_list for the loadout (#4941)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
qol: many list inputs in the char setup now use tgui inputs with search
functions
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2023-01-08 06:56:31 -08:00
siliconsandGitHub 4a554cea86 fixes trait runtime (#4873) 2022-12-20 08:41:47 -06:00
siliconsGitHubVM_USER <VM_USER>
e7df070fd6 [idb ignore] completely migrates sprite accessory to id system (#4759)
Co-authored-by: VM_USER <VM_USER>
2022-12-12 18:41:45 -06:00
siliconsandGitHub 236dfe4d60 fixes traits left render (probably) (#4787) 2022-12-03 23:45:16 +01:00
siliconsGitHubVM_USER <VM_USER>
0af10fb15c fixes log spam for trait stat gathering (#4715)
this was triggering on render-only copy to's
this shouldn't even be here but i'm not able to refactor rn.

Co-authored-by: VM_USER <VM_USER>
2022-11-16 21:39:09 -08:00
28e11dee54 lore/contractor/background/character overhaul project (public branch edition) (#4488)
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: Zandario <zandarioh@gmail.com>
Co-authored-by: VM_USER <VM_USER>
Co-authored-by: AlphaM01 <33434925+AlphaM01@users.noreply.github.com>
Co-authored-by: LordPapalus <54518057+LordPapalus@users.noreply.github.com>
2022-11-09 01:57:00 -06:00