Skip to content

Commit

Permalink
[Upstream] Upstream. Yappie (#50)
Browse files Browse the repository at this point in the history
* Fix Prize Balls' Pet Rock (#831)

# Description


This PR fixes an undetected bug in Prize Balls where an error would
occur if a prize ball tried to give out a BasePetRock.

---

No CL No Fun

Signed-off-by: ShatteredSwords <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* More/Better Tips (#844)

# Description

This PR adds several new Tips that are specific to Einstein-Engines. I
also removed some tips that are completely irrelevant to the game. These
should be as a whole, relevant only to SS14 and Einstein Engines. While
some joke tips are probably fine, they should still be game relevant.

# Changelog

:cl:
- add: Several new tips have been added to the game, many of which
reference new content available on Einstein-Engines.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#844)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Fix some Things with Interaction Verbs (#854)

# Description
Fixes:
- Interaction verbs being usable regardless of whether the user can
access the target (I checked for CanInteract but not CanAccess 😭), which
fixes #836
- Certain close-range verbs having a ridiculous 2-tile range (now it's
1.2, similarly to hugging and other things)
- Certain locale strings missing

This also separates verb checks into its own method in the interaction
verb system and adds more error messages instead of one generic "some
requirements are not met".

# Changelog
:cl:
- fix: Fixed a couple issues with the new interaction verb system.

* Automatic Changelog Update (#854)

* Fix Colored Jumpskirts Actually Being Skirts (#848)

# Description

This matters for Birbs. All Colored Jumpskirts were incorrectly parented
to Jumpsuit and not Jumpskirt, meaning that Harpies couldn't wear them.
This fixes that issue.

# Changelog

:cl:
- add: Due to NUMEROUS complaints, NanoTrasen has swapped the sticker
labels on all colored jumpskirts to correctly state that they are
infact, "Skirts", so now they can legally be worn by Harpies, Lamia, and
Arachne.

* Automatic Changelog Update (#848)

* Ports Trait Rebalance From Floof (#842)

# Description


This PR ports my trait balance changes from Floof. You can find the PR
for that repo at Fansana/floofstation1#170.

---


# Changelog

:cl:
- tweak: The cost of many traits have been updated
- tweak: A few traits have been tweaked

---------

Signed-off-by: ShatteredSwords <[email protected]>
Co-authored-by: Fansana <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#842)

* Roboticist (#801)

# Description
By a (somewhat) popular request from floofstation, this adds the
roboticist job (each existing map gets 1 job slot, since robotics on
each of them is just one tiny room that's more similar to a broom closet
than a subdepartament).

The job is purely cosmetical and does not offer any new accesses since
that would require changing a lot of maps and would probably make being
a scientist in the absense of a roboticist miserable. If needed,
roboticists can always build blast doors on the entrance to robotics, as
someone has done before in my experience.

This also adds the robotics PDA, robotics ID card, robotics satchel,
backpack, and duffel (duffel icon taken from paradise station, rest of
the sprites is respective science bags recolored by me to match the
palette of the icon). This also increases the capacity of mystagogue's
science PDA box to incorporate the new PDA type.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/cb086058-8257-4281-82ad-0f59873a1308)


![image](https://github.com/user-attachments/assets/f9e9e1dd-567c-4d47-a778-5704b3a72265)


![image](https://github.com/user-attachments/assets/60bd6769-026e-4fdc-b5f3-825f99dd92a7)


![image](https://github.com/user-attachments/assets/54a27d9c-b91d-4115-b2d6-258a320d8093)


![image](https://github.com/user-attachments/assets/7168edd5-465a-49a7-99e6-5b1592beb3eb)

</p>
</details>

---

# Changelog
:cl:
- add: A new Roboticist job has been added. The job does not offer any
new accesses, but lets you distinguish yourself from scientists.
Existing maps will need to be updated to support the new job.
- add: Added new PDA, ID, and bag variants for roboticists. The
mystagogue will now also find a roboticist PDA in their office.

---------

Signed-off-by: Mnemotechnican <[email protected]>

* Automatic Changelog Update (#801)

* Loadouts V3 (#736)

# Description

Resolves #723
Resolves #708
Resolves #691
Resolves #671
Resolves #643

Adding/removing loadouts and categories (and trait stuff) will require
disconnecting and reconnecting to the server (or anything that will
reload the lobby UI) due to how I've done my caching.

---

# TODO

- [x] Test entity IDs from loadouts
- [x] Better Tab Container
	- [x] Scroll props
	- [x] Margin props
	- [x] Make vertical work
	- [x] Merge buttons
- [x] Subcategories
	- [x] Allow the same for traits (their tab is completely broken)
- [x] Give the Job Picker tab a BoxContainer
- [x] Different selected unusable color
- [x] Deselect unusable button
- Sort menu/Reverse sort direction button
- [x] Fix scroll resetting on updating
	- [x] Cache loadouts
- [x] Ensure everything that can affect reqs updates everything that
checks reqs
- [x] More Requirements
	- [x] Height
	- [x] Width
	- [x] Weight
	- [x] Gender
	- [x] Sex
	- Markings
	- [x] Logic
		- [x] And
		- [x] Or
		- [x] Xor
	- [x] Item groups
- [x] #643
- Something better than `Exclusive`
	- Allow picking slots for things to go in (hands and inventories too)
- [x] Add a background to the loadout spriteView
- [x] Get better style colors
---
- [ ] More PRs
- [ ] Remove duplicate command loadouts that are outside the command
folders/categories
	- [ ] Categorize job loadouts (By dept?)
- [ ] Fix [every
loadout](https://discord.com/channels/1218698320155906090/1218698321053356060/1279260210208440361)'s
IDs (who reviewed them??)
		- [ ] Make loadout ID migrations?

---

<details><summary><h1>Media</h1></summary>
<p>

## New loadouts/traits UI

<!--

![image](https://github.com/user-attachments/assets/3b296f66-2502-49fb-8e24-5a98117bd5e5)

![image](https://github.com/user-attachments/assets/48b1ac49-6afb-49d4-ba6e-03a2551f6dfa)

![image](https://github.com/user-attachments/assets/6c10f68c-a858-478c-a880-f1ac2cf5f033)
-->

![image](https://github.com/user-attachments/assets/9a9c3f64-6ba4-40ea-a89e-d5f57efcf7c0)

![image](https://github.com/user-attachments/assets/3b6f0a36-a474-4ca6-a7c8-90c13e3faa0b)

## NeoTabContainer allows changing the tab orientation

### https://youtu.be/krg8TJoQG3I

![image](https://github.com/user-attachments/assets/81491ad9-45bd-41ed-833e-7295a2216a04)

![image](https://github.com/user-attachments/assets/deb72919-7efe-4be9-a661-b12aa7dc6976)

</p>
</details>

---

# Changelog

:cl:
- fix: The loadout/trait editors' performance has been improved by
100~1000x
- tweak: The character editor's tabs look, feel, and function much
better
- fix: Unusable loadouts/traits have an orange color when selected
- tweak: Loadout previews are now inside the button
- add: Added a button to remove any unusable loadouts (or traits) you
have selected
- add: Loadouts and traits can have subcategories, though only Command
loadouts use them at the moment
- fix: Fixed empty loadout categories not hiding
- fix: Fixed spacing on some loadout requirements' reason text
- fix: Fixed traits not updating after saving
# Conflicts:
#	Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs
#	Resources/Locale/en-US/customization/character-requirements.ftl
#	Resources/Prototypes/Loadouts/Jobs/service.yml

* Automatic Changelog Update (#736)

* Fix For Discord Changelog (#869)

Signed-off-by: Evgencheg <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Civilian Uniform Loadout Group (#872)

# Description

I'm going to split the other groups into their own PRs, next up is
Shoes. This PR adds all of the "Civilian" uniforms to the first of what
will be many new Loadout Groups, and now takes the opportunity to
significantly cut down on the loadout point costs of all non-job
uniforms. Now the overwhelming majority of them are 0 or 1 point, with
rare few examples being only 2 points. The tradeoff for this is that you
are limited to a single selection of civilian uniforms to take with you
to the station, presumably in addition to your job uniform as a spare
outfit, if desired.

Next up, shoes.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/47804a59-189d-4432-bac9-0b010c50f61e

</p>
</details>

---

# Changelog

:cl:
- add: The first of all new loadout groups has been added, Civilian
Uniforms. Only one civilian uniform can be selected, in exchange for...
- tweak: All non-job specific uniforms have had their points reduced
drastically, almost all of them down to 0 points, with only a tiny
handful at 2 points, and the rest as 1.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Shoes Loadout Group (#873)

# Description

This is the next PR after
Simple-Station/Einstein-Engines#872
This time adding an item group for Shoes, and drastically cutting down
on the base cost of shoes to compensate.

# Changelog

:cl:
- tweak: The cost of all shoes in loadouts has been reduced, in most
cases to 0.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Hat Loadout Group (#876)

# Description

Cheaper Hats

# Changelog

:cl:
- tweak: All non-job specific headgear has been significantly reduced in
Loadout point costs, most of them to 0.

* Outerclothes Loadout Group (#877)

# Description

And now Outerwear. :)

# Changelog

:cl:
- tweak: All non-job outerwear has had their Loadout point costs
significantly reduced.

* Gloves Loadout Group (#878)

# Description

Gloves Next. Woo.

# Changelog

:cl:
- tweak: All gloves have had their Loadout point costs reduced, many to
0.

* Miscellaneous Item Groups (#880)

# Description

This is the last of the Loadout Item Group PRs I'm going to do for now.
This PR adds several more than the previous ones, primarily to split up
the Items tab into several distinct groups so as to push down the costs
of many items. In particular, the new groups are:

1. Smokes
2. Lighters
3. Instruments
4. Air tanks
5. Box Kits(Survival Boxes or Medkits)
6. Writables

Survival boxes sharing an Item Group with Medkits is kind of intentional
here. Both of them take up a SIGNIFICANT amount of your starting
inventory space. Now we can have free survival kits once again, but also
have as an option, where you can elect to spend some of your loadout
points to take a personal Medkit instead of a survival box. You can
think of it as an upgrade over a standard survival kit. :)

# Changelog

:cl:
- tweak: Item groups for Smokes, Lighters, Instruments, Air Tanks,
SurvivalBoxes/Medkits, and Writable items have been added. All items in
these categories have received discounts to their costs, and in some
cases have become free.
# Conflicts:
#	Resources/Prototypes/Loadouts/items.yml

* Neck Loadout Group (#874)

# Description

And another one! This time Neck slot items. Sequel to
Simple-Station/Einstein-Engines#872

# Changelog

:cl:
- tweak: All neck slot Loadout items have had their costs significantly
reduced, most of them to 0.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#872)

* Automatic Changelog Update (#874)

* Eyewear Loadout Group (#879)

# Description

Now for Eyes...
Last one to do is split apart the "Items" tab.

# Changelog

:cl:
- tweak: Eyewear have had their loadout point costs significantly
reduced.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Masks Loadout Group (#875)

# Description

Yet another sequel to
Simple-Station/Einstein-Engines#872
This time Masks

# Changelog

:cl:
- tweak: All masks have had their loadout point costs substantially
reduced.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#879)

* Automatic Changelog Update (#875)

* Update discord-changelog.yml (#881)

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* Revert "[Feature] Short Construction System / Система Крафтов В Руках (#17)"

This reverts commit 5f67b5e.

* [Feature] Shortcut Construction System (#861)

# Description

Interacting with some materials now opens up the radial menu with some
often used recipes. Port from White Dream.

---

# Why?

It looks cool I guess. Also required by Blood Cult.

---
<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/8207ea19-f4a3-45e1-b6f2-c870b46b6837

</p>
</details>

---

# Changelog


:cl:
- add: Interacting with some materials now opens the radial menu
containing some of the most used recipes of that material.

* Automatic Changelog Update (#861)

* fix: a few fixes

* Make Height Sliders Affect Your Bloodstream Volume (#858)

# Description
Something that just makes sense, this makes your effect character weight
affect your bloodstream volume. As a minimum size felinid you will get
33% of normal blood volume, whereas as something as huge as a lamia you
may get up to 3 times the normal blood volume.

The resulting volume of your bloodstream can be calculated as `V =
clamp(normal_volume * mass_contest ^ 0.6)` (assuming default
parameters), where mass_contest is the result of a mass contest between
your entity and the average humanoid. For average species like vulps,
this means that their bloodstream can become up to ~40% smaller than
normal (at minimum size), or up to 50% larger than normal (at maximum
size). For onis the range is shifted towards higher values, a maximum
size oni will have twice as much blood as an average human.

This has both drawbacks and advantages. For instance, having little
blood means you can bleed out easily, but at the same time it means it
will take way less blood packs/saline/iron/proteins to restore your
blood to the normal level. Opposite is also true, having more blood
means you will be harder to heal.

Also, this PR slightly refactors the HeightAdjustSystem to be more
flexible.

<details><summary><h1>Media</h1></summary>
<p>



https://github.com/user-attachments/assets/951c2391-09d8-4a4a-812b-a2394862fadd


</p>
</details>

# Changelog
:cl:
- add: Your character size now affects your blood level. Smaller
characters will have less blood, and larger characters will have more.

---------

Signed-off-by: Mnemotechnican <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#858)

* Change Slime Scream (#849)

# Description

This PR replaces slime_scream_f2.ogg with a modified version of
Voice/Human/femalescream_5.ogg. The original scream doesn't feel like it
belongs in SS14 with the other slime sounds (laugh, cry, sigh, etc).

---

# Changelog

:cl: router
- tweak: Female slimes no longer have movie screams.

* Automatic Changelog Update (#849)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Make Hugging/Petting Interactions Affect Mood (#823)

# Description
Something that was omitted in #733. Hugging and petting now give
positive moodlets.

The petting interaction was split into two: one for animals and one for
humanoids. The one for animals improves both your own mood and the mood
of the animal, whereas petting a humanoid only improves their own mood.
In addition to all that, being hugged and being pet do not stack.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/47e8f722-44ee-4d03-a580-65a2946a1920

</p>
</details>

# Changelog
:cl:
- tweak: Hugging and petting interactions now influence mood, just like
the old hugging.

---------

Signed-off-by: Mnemotechnican <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Display Language Fonts/Colors in Chat Bubbles (#812)

# Description
4 FTL lines changed

Finally them native GC speakers will know what language to respond in
when speaking to us

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/68d1b1b2-373d-4f98-958d-3659b7cff440

</p>
</details>

# Changelog

:cl:
- add: Chat bubbles now use the font & color of the language of the
message.

* TraitSystem Component Removals (Anomalous Positronics Trait) (#885)

# Description

This PR implements a new functionality for Traits, while also making
clever use of the new Loadouts Version 3.0 addition of logic gates.
Traits have been extended to now also allow for Component Removals,
ostensibly so that traits can remove species Innate traits. In theory
this could also be used to completely wipe a pre-existing component, and
then let the trait fully replace it with a new component.

To make use of this feature, I've added a new trait called Anomalous
Positronics, which allows for IPCs to "Buy off" their innate Psionic
Insulation, and thus allow them to be psionic. The previously existing
psionic traits that required you not be an IPC, now make use of new
logic gates to require that you are either not an IPC, or have the
AnomalousPositronics trait. Additionally, roundstart psion jobs, like
the Mystagogue, Mantis, Chaplain, also all now have a check for "Not
IPC, OR has AnomalousPositronics".

Finally, thanks to the logic gates, it's now possible to simultaneously
disallow the roundstart psions from buying Latent Psychic, while also
still allowing the Chaplain and Librarian to buy Natural Telepath.

# Changelog

:cl:
- add: Traits now allow for full component removals, enabling traits
that directly remove innate species traits without the need to hardcode
new systems for it. Or, to allow species components to be fully removed
as preparation for being replaced with a new component.
- add: Anomalous Positronics has been added as a new trait. It removes
the psionic insulation from IPCs, allowing them to be affected by
psionics, as well as take roundstart psion jobs like the Mystagogue, and
also buying traits such as Latent Psychic.
- remove: NormalVisionComponent and NormalVisionSystem have been
removed. The NormalVision trait now uses
TraitSystem.RemoveTraitComponents to do its work.
- add: Chaplain and Cataloguer can now purchase Natural Telepath.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Cherry-Pick "Shrimp Mob for Metempsychosis (#862)" (#882)

# Description
Cherry-picks DeltaV-Station/Delta-v#862 on
behalf of the author.

This was not tested; need someone to check if it actually works before
merging.

# Changelog
:cl:
- add: A shrimp morphotype was added to the failure pool of the
metempsychotic machine.

---------

Signed-off-by: leo <[email protected]>
Signed-off-by: Mnemotechnican <[email protected]>
Co-authored-by: leo <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Null <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#812)

* Automatic Changelog Update (#882)

* Fix Translators Not Working Correctly Under Certain Conditions (#834)

# Description
This completely refactors the translator system, fixing various issues,
such as being unable to hold multiple translators at once normally,
entity languages not getting updated properly if a translator was
removed from it via stripping or similar, etc.

Also fixes translators being utter shitcode.

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/user-attachments/assets/239f831b-7262-4980-932d-c6231dcecf72

</p>
</details>

# Changelog
:cl:
- fix: Multiple issues with translators were fixed. Additionally, you
can now hold multiple handheld translators at once without issues.

* Automatic Changelog Update (#834)

* Re-Enable Recycler Gibbing (#822)

# Description

WAITER, WAITER, PLEASE FEED ME MORE FELINIDS.

# Changelog

:cl:
- add: Recyclers can now once again eat people when emagged.
- add: The ability for emagged Recyclers to eat people is now controlled
by the CVar "reclaimer.allow_gibbing".
- add: Recyclers require power to eat people. No more dragging emagged
recyclers into crowds.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Adds a Toy Which Makes Bwoink Sound (#759)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

This adds a toy hammer based on the old BanHammer from ss13 which was a
joke toy that made a bwoink sound. It also had a really old description
which made minor fun of the russian translation changing it to
'bangammer' and 'reisin' which I decided to keep for the veterans.

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/802c1896-f175-4e39-8f2e-97f1df2e88ba)

![image](https://github.com/user-attachments/assets/39add23b-1503-41ec-b9ce-080cd5757677)


</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added bwoink hammer with bwoink sound

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#822)

* AddPsionicPower Command (#807)

# Description

This PR adds a new console command for directly adding psionic powers to
an entity. Should an entity not already be psionic, this command will
additionally make them psionic.

# Changelog

:cl:
- add: A new console command, AddPsionicPower has been added.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#759)

* Automatic Changelog Update (#807)

* Fix Maps Missing Assistants (#838)

# Description

Glacier, Core, and Saltern were missing their assistant job slots(My
mistake, when the Linter said I needed to set the Overflow job, I
assumed it meant "Replace the [-1, -1] slot with the Overflow", but
apparently both are needed.

Additionally, Glacier, Core, and Saltern are now added to the Map Pool.

:cl:
- add: Glacier, Core, and Saltern now have assistant job slots.
- add: Glacier, Core, and Saltern are now able to be voted on for map
selection.

* Automatic Changelog Update (#838)

* Update Clothing Assignments of Suit/Skirt (#857)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Changes some outfits, notably the Operative Jumpskirt, Kimono,
Dark/Light Monastic Robes, and the Gladiator Uniform to be assigned as
skirts, rather than suits. This allows harpies to wear them. In
addition, the UnsensoredClothingSkirtBase base now possesses the
'ClothMade' tag, allowing moths to eat outfits with this base.

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- tweak: Fixes a few typos in outfit descriptions
- fix: The Kimono, Dark/Light Monastic Robes, Gladiator Uniform, and
Operative Jumpskirt should be properly considered jumpskirts, and are by
extension wearable for harpies.
- fix: Moths should be able to eat outfits with the
UnsensoredClothingSkirtBase parent.

* Americanize Contests System (#814)

# Description

I have updated the Contests System to make it safe to use by Americans.
This is accomplished by adding very helpful warning labels, as well as
restricting the Range of all its functions so that they cannot return
either a negative number, or a zero. Therefore, all Contests are now
perfectly safe to divide by.

# Changelog

:cl:
- tweak: ContestsSystem(Mass Contest, Stamina Contest, Health Contest,
Mind Contest, Mood Contest, and Every Contest) have all been updated to
be safe to divide by, since it is no longer possible for them to ever
return 0. Instead they will just return
0.0000000000000000000000000000000000000000000001401298, so if you divide
by an unclamped contest, I hope you like your function randomly
returning the 32bit integer limit.
- add: Warning labels have been added to all Contests to make them
comply with the demands of the American consumer market.

* Step Trigger Minor Refactor (#884)

# Description

I made this PR in response to a bug report from Floof, where it was
discovered that a "Minimum Size Felinid or Harpy" is instantaneously
killed by mouse traps. Which confused me, because Felinids and Harpies
are intended to be immune to floor traps like landmines, glass, and
mouse traps. Then I discovered that mouse traps overwrite the step
trigger cancellation, meaning that mouse traps will just completely
ignore a Felinid/Harpy canceling the step trigger. Additionally, to my
endless frustration, the Felinid/Harpy floor trap immunity is handled by
a Tag and not a Component, which isn't really acceptable in this day and
age.

I decided to take a little bit of a different approach to this problem,
first by doing the usual code cleanup to EE standards. Then by adding a
new StepTriggerImmuneComponent. This component acts as an early-exit for
the entire StepTriggerSystem, immediately at the initial entrypoint,
during the CanTrigger bool. This component is given to Felinids and
Harpies by default, representing their "Extremely low density bodies"
having too much surface area and not enough mass to trigger floor traps.
Effectively, they are now working as originally intended, by having
immunity to setting off landmines.

Because we have a trait point system, and this is coincidentally also a
trait requested by Nuclear14, I have gone ahead and created a Trait that
gives this component to anyone willing to pay the points for it.

# Changelog

:cl:
- fix: Felinids and Harpies will now correctly never set off floor
traps, such as landmines and mouse traps.
- add: Trap Avoider has been added as a new trait, allowing characters
to buy the innate ability to avoid floor traps. I would have named this
"Light Step", after the trait from Fallout that shares its name and
effect, but someone already gave that name to a different trait
entirely.

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#884)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Fix Logic Requirements Not Checking Inversion (#891)

* Split Arm And Leg Markings (#870)

# Description

It's time to finally rip off a bandaid, and cease fucking with awful
layer garbage and marking workarounds. This PR completely removes the
Arms and Legs marking categories, replacing them with:

1. Right Arm
2. Right Hand
3. Left Arm
4. Left Hand
5. Right Leg
6. Right Foot
7. Left Leg
8. Left Foot

Finally, removing harpy layer shitcode is within our grasp.

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/user-attachments/assets/7cb5cb2d-ec5a-4269-a29b-08eeabc5668b)


![image](https://github.com/user-attachments/assets/a5b8861d-ae25-45cb-96d7-2d4dbf17be98)

</p>
</details>

# Changelog

:cl:
- add: Arm and Leg markings are now split between individual arms,
hands, legs, and feet.

* Automatic Changelog Update (#870)

* feat: перевод ченджлога

* fix: fix maid and hobo

* fix: fixed hobo and maids loadouts

---------

Signed-off-by: ShatteredSwords <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Signed-off-by: Mnemotechnican <[email protected]>
Signed-off-by: Evgencheg <[email protected]>
Signed-off-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: leo <[email protected]>
Co-authored-by: ShatteredSwords <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: SimpleStation Changelogs <[email protected]>
Co-authored-by: Mnemotechnican <[email protected]>
Co-authored-by: Fansana <[email protected]>
Co-authored-by: Evgencheg <[email protected]>
Co-authored-by: router <[email protected]>
Co-authored-by: leo <[email protected]>
Co-authored-by: Null <[email protected]>
Co-authored-by: Blu <[email protected]>
Co-authored-by: Tirochora <[email protected]>
  • Loading branch information
13 people authored Sep 9, 2024
1 parent 523aacb commit cebab3b
Show file tree
Hide file tree
Showing 248 changed files with 6,760 additions and 3,097 deletions.
80 changes: 37 additions & 43 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ env:
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
CHANGELOG_DIR: ${{ vars.CHANGELOG_DIR }}
PR_NUMBER: ${{ github.event.number }}
CHANGELOG_WEBHOOK: ${{ secrets.CHANGELOG_WEBHOOK }}

jobs:
changelog:
Expand All @@ -17,45 +16,40 @@ jobs:
permissions:
contents: write
steps:
- name: Checkout Master
uses: actions/checkout@v3
with:
token: ${{ secrets.BOT_TOKEN }}
ref: "${{ vars.CHANGELOG_BRANCH }}"

- name: Setup Git
run: |
git config --global user.name "${{ vars.CHANGELOG_USER }}"
git config --global user.email "${{ vars.CHANGELOG_EMAIL }}"
shell: bash

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x

- name: Install Dependencies
run: |
cd "Tools/changelogs"
npm install
shell: bash
continue-on-error: true

- name: Generate Changelog
run: |
cd "Tools/changelogs"
node changelog.js
shell: bash
continue-on-error: true

- name: Commit Changelog
run: |
git add *.yml
git commit -m "${{ vars.CHANGELOG_MESSAGE }} (#${{ env.PR_NUMBER }})"
git push
shell: bash
continue-on-error: true

- name: Publish changelog
run: Tools/actions_changelogs_since_last_run.py
continue-on-error: true
- name: Checkout Master
uses: actions/checkout@v3
with:
token: ${{ secrets.BOT_TOKEN }}
ref: ${{ vars.CHANGELOG_BRANCH }}

- name: Setup Git
run: |
git config --global user.name "${{ vars.CHANGELOG_USER }}"
git config --global user.email "${{ vars.CHANGELOG_EMAIL }}"
shell: bash

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x

- name: Install Dependencies
run: |
cd "Tools/changelogs"
npm install
shell: bash

- name: Generate Changelog
run: |
cd "Tools/changelogs"
node changelog.js
shell: bash

- name: Commit Changelog
run: |
git pull origin master
git add *.yml
git commit -m "${{ vars.CHANGELOG_MESSAGE }} (#${{ env.PR_NUMBER }})"
git push
shell: bash
continue-on-error: true
24 changes: 24 additions & 0 deletions .github/workflows/discord-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Discord Changelog

on:
workflow_dispatch:
schedule:
- cron: '0 6 * * *'

jobs:
publish_changelog:
runs-on: ubuntu-latest
steps:

- name: checkout
uses: actions/checkout@v3
with:
ref: master

- name: Publish changelog
run: Tools/actions_changelogs_since_last_run.py
env:
CHANGELOG_DIR: ${{ vars.CHANGELOG_DIR }}
CHANGELOG_WEBHOOK: ${{ secrets.CHANGELOG_WEBHOOK }}
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
continue-on-error: true
2 changes: 1 addition & 1 deletion Content.Client/Administration/UI/AdminUIHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public static bool TryConfirm(Button button, Dictionary<Button, ConfirmationData
button.Text = data.OriginalText;
}, data.Cancellation.Token);

button.ModulateSelfOverride = StyleNano.ButtonColorCautionDefault;
button.ModulateSelfOverride = StyleNano.ButtonColorDangerDefault;
button.Text = Loc.GetString("admin-player-actions-confirm");
return false;
}
Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Changelog/ChangelogButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ private void UpdateStuff()
if (_changelogManager.NewChangelogEntries)
{
Text = Loc.GetString("changelog-button-new-entries");
StyleClasses.Add(StyleBase.ButtonCaution);
StyleClasses.Add(StyleBase.ButtonDanger);
}
else
{
Text = Loc.GetString("changelog-button");
StyleClasses.Remove(StyleBase.ButtonCaution);
StyleClasses.Remove(StyleBase.ButtonDanger);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/FlavorText/FlavorText.xaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Control Name="CFlavorText" xmlns="https://spacestation14.io">
<Control Name="CFlavorText" HorizontalExpand="True" xmlns="https://spacestation14.io">
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
<TextEdit Name="CFlavorTextInput" Access="Public" MinSize="220 100" Margin="10" HorizontalExpand="True" VerticalExpand="True" />
</BoxContainer>
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Gateway/UI/GatewayWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public void UpdateState(GatewayBoundUserInterfaceState state)

if (Pressable())
{
openButton.AddStyleClass(StyleBase.ButtonCaution);
openButton.AddStyleClass(StyleBase.ButtonDanger);
}

var buttonContainer = new BoxContainer()
Expand Down
3 changes: 2 additions & 1 deletion Content.Client/LateJoin/LateJoinGui.cs
Original file line number Diff line number Diff line change
Expand Up @@ -266,9 +266,10 @@ private void RebuildUI()
prototype.Requirements ?? new(),
prototype,
(HumanoidCharacterProfile) (_prefs.Preferences?.SelectedCharacter
?? HumanoidCharacterProfile.DefaultWithSpecies()),
?? HumanoidCharacterProfile.DefaultWithSpecies()),
_jobRequirements.GetRawPlayTimeTrackers(),
_jobRequirements.IsWhitelisted(),
prototype,
_entityManager,
_prototypeManager,
_configManager,
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ public KeyControl(KeyRebindTab parent, BoundKeyFunction function)

BindButton1 = new BindButton(parent, this, StyleBase.ButtonOpenRight);
BindButton2 = new BindButton(parent, this, StyleBase.ButtonOpenLeft);
ResetButton = new Button { Text = Loc.GetString("ui-options-bind-reset"), StyleClasses = { StyleBase.ButtonCaution } };
ResetButton = new Button { Text = Loc.GetString("ui-options-bind-reset"), StyleClasses = { StyleBase.ButtonDanger } };

var hBox = new BoxContainer
{
Expand Down
1 change: 1 addition & 0 deletions Content.Client/Preferences/UI/AntagPreferenceSelector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public AntagPreferenceSelector(AntagPrototype proto, JobPrototype highJob) : bas
(HumanoidCharacterProfile) (prefs.Preferences?.SelectedCharacter ?? HumanoidCharacterProfile.DefaultWithSpecies()),
requirements.GetRawPlayTimeTrackers(),
requirements.IsWhitelisted(),
proto,
entMan,
protoMan,
configMan,
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Preferences/UI/CharacterSetupGui.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ public CharacterPickerButton(
Text = Loc.GetString("character-setup-gui-character-picker-button-confirm-delete-button"),
Visible = false,
};
confirmDeleteButton.ModulateSelfOverride = StyleNano.ButtonColorCautionDefault;
confirmDeleteButton.ModulateSelfOverride = StyleNano.ButtonColorDangerDefault;
confirmDeleteButton.OnPressed += _ =>
{
Parent?.RemoveChild(this);
Expand Down
79 changes: 52 additions & 27 deletions Content.Client/Preferences/UI/HumanoidProfileEditor.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
xmlns:prefUi="clr-namespace:Content.Client.Preferences.UI"
xmlns:humanoid="clr-namespace:Content.Client.Humanoid"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:ui="clr-namespace:Content.Client.UserInterface.Controls"
HorizontalExpand="True">
<!-- Left side -->
<BoxContainer Orientation="Vertical" Margin="10 10 10 10" HorizontalExpand="True">
Expand Down Expand Up @@ -45,12 +46,12 @@
</BoxContainer>
</BoxContainer>
<Control MinHeight="10" />
<!-- tabContainer -->
<TabContainer Name="CTabContainer" VerticalExpand="True">
<BoxContainer Orientation="Vertical">
<ScrollContainer VerticalExpand="True">
<!-- appearanceList -->
<BoxContainer Orientation="Vertical">
<!-- TabContainer -->
<ui:NeoTabContainer Name="CTabContainer" VerticalExpand="True" HScrollEnabled="False" VScrollEnabled="False">
<BoxContainer Name="CAppearance" HorizontalExpand="True" Orientation="Vertical">
<!-- appearanceList -->
<ScrollContainer HorizontalExpand="True" HScrollEnabled="True" VerticalExpand="True" VScrollEnabled="True">
<BoxContainer HorizontalExpand="True" Orientation="Vertical">
<BoxContainer Margin="10" Orientation="Vertical" HorizontalExpand="True">
<!-- Species -->
<BoxContainer HorizontalExpand="True">
Expand Down Expand Up @@ -108,7 +109,7 @@
<Control HorizontalExpand="True"/>
<OptionButton Name="CSpawnPriorityButton" HorizontalAlignment="Right" />
</BoxContainer>
<!-- Height -->
<!-- Height -->
<BoxContainer HorizontalExpand="True">
<Label Name="CHeightLabel" MinWidth="110" />
<Slider Name="CHeightSlider" MinValue="0.5" Value="1" MaxValue="1.5" HorizontalExpand="True" Margin="5 0 5 0" />
Expand Down Expand Up @@ -144,52 +145,76 @@
</BoxContainer>
</ScrollContainer>
</BoxContainer>
<BoxContainer Orientation="Vertical">
<BoxContainer Name="CJobs" HorizontalExpand="True">
<!-- Jobs -->
<OptionButton Name="CPreferenceUnavailableButton" />
<ScrollContainer VerticalExpand="True">
<BoxContainer Name="CJobList" Orientation="Vertical" />
<ScrollContainer HorizontalExpand="True" HScrollEnabled="True" VerticalExpand="True" VScrollEnabled="True">
<BoxContainer HorizontalExpand="True" Orientation="Vertical">
<OptionButton Name="CPreferenceUnavailableButton" StyleClasses="OpenBoth" />
<BoxContainer Name="CJobList" Orientation="Vertical" />
</BoxContainer>
</ScrollContainer>
</BoxContainer>
<BoxContainer Orientation="Vertical" Margin="10">
</BoxContainer>
<BoxContainer Name="CAntags" HorizontalExpand="True" Orientation="Vertical" Margin="10">
<!-- Antags -->
<ScrollContainer VerticalExpand="True">
<ScrollContainer HorizontalExpand="True" HScrollEnabled="True" VerticalExpand="True" VScrollEnabled="True">
<BoxContainer Name="CAntagList" Orientation="Vertical" />
</ScrollContainer>
</BoxContainer>
<BoxContainer Name="CTraitsTab" Orientation="Vertical" Margin="10">
<BoxContainer Name="CTraitsTab" HorizontalExpand="True" Orientation="Vertical" Margin="10">
<!-- Traits -->
<Label Name="TraitPointsLabel" HorizontalAlignment="Stretch" Align="Center" />
<ProgressBar Name="TraitPointsBar" MaxValue="1" Value="1" MaxHeight="8" Margin="0 5" />

<Button Name="TraitsShowUnusableButton"
<BoxContainer HorizontalExpand="True" Margin="0 0 0 5">
<Button
Name="TraitsShowUnusableButton"
Text="{Loc 'humanoid-profile-editor-traits-show-unusable-button'}"
ToolTip="{Loc 'humanoid-profile-editor-traits-show-unusable-button-tooltip'}"
ToggleMode="True"
Margin="0 0 0 5" />
HorizontalAlignment="Stretch"
HorizontalExpand="True"
StyleClasses="OpenRight" />
<Button
Name="TraitsRemoveUnusableButton"
Text="You shouldn't see this"
ToolTip="{Loc 'humanoid-profile-editor-traits-remove-unusable-button-tooltip'}"
HorizontalAlignment="Stretch"
HorizontalExpand="True"
StyleClasses="OpenLeft" />
</BoxContainer>

<TabContainer Name="CTraitsTabs" VerticalExpand="True" />
<ui:NeoTabContainer Name="CTraitsTabs" VerticalExpand="True" SeparatorMargin="0" />
</BoxContainer>
<BoxContainer Name="CLoadoutsTab" Orientation="Vertical" Margin="10">
<BoxContainer Name="CLoadoutsTab" HorizontalExpand="True" Orientation="Vertical" Margin="10">
<!-- Loadouts -->
<Label Name="LoadoutPointsLabel" HorizontalAlignment="Stretch" Align="Center" />
<ProgressBar Name="LoadoutPointsBar" MaxValue="1" Value="1" MaxHeight="8" Margin="0 5" />

<Button Name="LoadoutsShowUnusableButton"
<BoxContainer HorizontalExpand="True" Margin="0 0 0 5">
<Button
Name="LoadoutsShowUnusableButton"
Text="{Loc 'humanoid-profile-editor-loadouts-show-unusable-button'}"
ToolTip="{Loc 'humanoid-profile-editor-loadouts-show-unusable-button-tooltip'}"
ToggleMode="True"
Margin="0 0 0 5" />
HorizontalAlignment="Stretch"
HorizontalExpand="True"
StyleClasses="OpenRight" />
<Button
Name="LoadoutsRemoveUnusableButton"
Text="You shouldn't see this"
ToolTip="{Loc 'humanoid-profile-editor-loadouts-remove-unusable-button-tooltip'}"
HorizontalAlignment="Stretch"
HorizontalExpand="True"
StyleClasses="OpenLeft" />
</BoxContainer>

<TabContainer Name="CLoadoutsTabs" VerticalExpand="True" />
<ui:NeoTabContainer Name="CLoadoutsTabs" VerticalExpand="True" SeparatorMargin="0" />
</BoxContainer>
<BoxContainer Name="CMarkingsTab" Orientation="Vertical" Margin="10">
<BoxContainer Name="CMarkingsTab" HorizontalExpand="True" Orientation="Vertical" Margin="10">
<!-- Markings -->
<ScrollContainer VerticalExpand="True">
<humanoid:MarkingPicker Name="CMarkings" IgnoreCategories="Hair,FacialHair" />
</ScrollContainer>
<humanoid:MarkingPicker Name="CMarkings" IgnoreCategories="Hair,FacialHair" />
</BoxContainer>
</TabContainer>
</ui:NeoTabContainer>
</BoxContainer>
<!-- Right side -->
<BoxContainer Orientation="Vertical" VerticalExpand="True" VerticalAlignment="Center">
Expand Down
Loading

0 comments on commit cebab3b

Please sign in to comment.