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

Merge upstream #209

Merged
merged 48 commits into from
Apr 24, 2024
Merged

Merge upstream #209

merged 48 commits into from
Apr 24, 2024

Conversation

Gaxeer
Copy link
Collaborator

@Gaxeer Gaxeer commented Apr 22, 2024

About The Pull Request

Merge upstream

Why It's Good For The Game

Cool new features

necromanceranne and others added 30 commits April 22, 2024 16:43
… against Boxers, Boxing overhaul, Evil Boxing (#82611)

## About The Pull Request

### Changes Fitness skill to Athletics skill; Removes the sprite growth
as the only meaningful reward

Basically just a rebranding so that it is more broad in its concept. It
isn't just about peak physique. It's about how you can apply it too.

Reaching Legendary rewards you with the Golden Gloves.

### Boxing Overhaul

I started it in this pr here
#80635

But this is a more significant overhaul of boxing from the ground up.
Namely, it now is majorly influenced by the Athletics skill, and also
more thoroughly aligns with conventional punching in its current state.
However, a major component of this is that boxing's breadth of mechanics
is only relevant when used against another boxer. Non-boxer targets are
only ever going to get smacked by a stamina punch, as it is currently
(and more or less the same values too). Additionally, boxers cannot
punch someone who is either unconscious or in stamina crit, so it can't
be used to maintain stamcrit.

- Boxing now has a One-Two Punch mechanic. Swapping between the left and
right mouse buttons to punch and maintaining this causes every second
punch to do more damage (to boxers). Breaking this chain by punching
with the same button twice will cause you to lose damage (against
boxers).

- Boxing now can have crits occur below 50 stamina damage (against
boxers). However, to knock someone out clean, the target must be
staggered from a previous crit first. (Or I guess be staggered at all,
maybe their shoelaces were tied or something). Crit probabilities are
determined by adding your Athletics probability skill bonuses to your
unarmed effectiveness, and then reduced by the targets own Athletics
skill bonuses. It is hard for two athletes to knock each other out in
one blow. It is trivial for a legendary boxer to knock out a novice in a
single punch. Cybernetically enhanced boxers are dangerously effective
at boxing.

- Boxers can block other boxers by using throw mode, but the chances of
doing so is based on Athletics skill bonuses. A successful block causes
the attacker to take stamina damage (as does the blocker, but less so).

- Participating in boxing increases the Athletics skill. Your gains are
probably slower than normal training, but you at least get some reward
for doing so. Only relevant if your opponent is a boxer. Get a sparring
partner!

### Evil Boxing (Admin Only)

So this is all well and good, but what if you're a scoundrel with no
care for the other person in this equation? Well, that's where Evil
Boxing comes in. Evil Boxing has absolutely no restrictions at all, and
can freely use its boxing abilities against anyone. Even non-boxers. You
can even grab people! Wow, what a scumbag. I bet you even king hit
people. Thankfully, only an admin can make you into an Evil Boxer.

### Strength and Stimmed Mutations now benefit Exercising and Boxing
(against boxers)

Both mutations have a flimsy increase to instability of 5 because of how
incredibly particular the bonus is.

Strength now reduces the amount of stamina damage inflicted via
exercising by half. Strength also adds a +2 damage bonus on boxing
punches while boxing against boxers (this doesn't influence normal
unarmed attacks whatsoever, or boxing against nonboxers). Obviously,
evil boxers just get this benefit against everyone because they're
knaves.

Stimmed increases the duration of the exercised status effect by one
factor. (That is, if you have no other modifiers, it will double the
duration on its own)

## Why It's Good For The Game

@Jacquerel was racking their brain trying to come up with an alternative
to the skill rewards of Fitness. At the moment, sprite growth is not
only a really bad bonus (it does literally nothing but make you big, and
thus is actually a detriment due to how intrusive sprite size is with
interaction, and plays weird with other sprite changing effects), but
isn't really all that interesting for all the effort put in.

Problem is, how do you make Fitness meaningful without making it a
powergame mechanic? Simple! You make it applicable to a really niche,
self-contained but still utilized game mechanic that is engaging to
participate in and makes you meaningfully very good in it. AND scratches
that power scaling itch that many players have.

Boxing is reasonably self-contained as is, but pretty bland due to how
old it is. While maintaining that self-contained nature, I hoped to
expand the interactivity of boxing a little bit by giving it a small
mini-game in of itself. And also introduce ways to simulate the idea of
boxing a bit better.

The idea of being an Evil Boxer is funny. For every Rocky, there is a
[Insert Rocky Villain Here that isn't Creed]. But in this case, it's
probably some Syndicate douchebag looking to punch clowns into a coma
and inspire the mime to take up shadowboxing in revenge.

## Changelog
:cl:
add: Replaces Fitness with Athletics; same skill, but now more
specifically applicable to boxing.
add: Athletics does not increase sprite size.
balance: Overhauls Boxing to add a lot more depth to the interactions.
Only applicable to other boxers, however. You can still punch the snot
out of non-boxers though. But only up to stamcrit or unconsciousness. No
hitting someone who can't fight back!
balance: Adds Evil Boxing, which is the evil and fucked up version of
boxing that you kill people with and are allowed to flout the sacred
rules of boxing as you please. Everyone is a victim!
/:cl:
## About The Pull Request
Refactors cargo ui, fixing some visual bugs, just making it look better
in general

Should be no gameplay effect other than it looking better

<details>
<summary>pics</summary>


![Il0e6EWjUa](https://github.com/tgstation/tgstation/assets/42397676/d16e83a5-ee36-4346-9411-7ea76907994d)

![Screenshot 2024-04-17
230621](https://github.com/tgstation/tgstation/assets/42397676/f5e15b04-c148-4be4-8f7e-7a195ac8e815)

![Screenshot 2024-04-17
235319](https://github.com/tgstation/tgstation/assets/42397676/d3085f70-74ca-41fb-bbcd-e3bd6c990cee)

![Screenshot 2024-04-17
234758](https://github.com/tgstation/tgstation/assets/42397676/95df59ae-e7e3-4349-a63c-7bfbe6777561)

Fixes #81442
![Screenshot 2024-04-18
000750](https://github.com/tgstation/tgstation/assets/42397676/2d97ba9c-68d7-4ac3-9ff8-3bc5cfecf0f6)

Made a type grabber for backend data in case you want to make your own
typescript uis
`logger.log(getShallowTypes(data))`

![image](https://github.com/tgstation/tgstation/assets/42397676/ff914895-3302-4aca-982c-46af3299a4af)
Otherwise cargo's data is unreadable

</details>

Any UI over 500 lines should get broken up to reduce cognitive load
~~Any ui in javascript shouldn't exist~~
## Why It's Good For The Game
Cargo UI is better
Typescript
## Changelog
:cl:
fix: Cargo's supply console has been upgraded visually.
/:cl:

---------

Co-authored-by: EricZilla <[email protected]>
Co-authored-by: Helg2 <[email protected]>
## About The Pull Request
Adds the same trait that lavaproof rods have to the stone tiles, so
things can continue being visually outside of the lava
## Why It's Good For The Game
this shit looks goofy

![324271923-9c1e353d-70ff-4321-839c-8bac2fd03c01](https://github.com/tgstation/tgstation/assets/25628932/d120458d-8f65-418c-a0c8-7d1f939a472b)
## Changelog
:cl: FlufflesTheDog
fix: Stone tiles (and things on them) no longer get immersed in lava
/:cl:
…wheels (#82794)

## About The Pull Request

Adds `hidden` to getting up (from prone), moving up (z-movement), moving
down (z-movement), and de/activating MODsuits

## Why It's Good For The Game

- Getting up from prone happens very often, makes it a bit hard to
differentiate when people are doing actions or just crawling around.
    - If we want feedback for getting up, should just be a chat message.
- Moving up and down is just movement. Only affects using the verbs. 
- Same as before: If we want feedback, it should just be a chat message.
- Other methods of moving up/down (IE, ladders) are untouched / retain
their cogwheel.
- De/activating modsuits have their own visual feedback and sound
effects associated. Both feels unnecessary.

## Changelog

:cl: Melbert
qol: Getting up from prone, moving up or down a z-level (not via
ladders, naturally. Like flight), and de/activating your modsuit no
longer shows cogwheel effect
/:cl:
…82801)

## About The Pull Request
Makes the mechanical sect cell sacrifice favor adjustment inversely
scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000.
## Why It's Good For The Game
So they don't get 1,000 times the favor as intended from a cell.
## Changelog
:cl:
fix: Fixes mechanical sect gaining 1,000 times the favor from a cell
sacrifice.
/:cl:
… which uses it (#82792)

## About The Pull Request

If we say something is a Modal it should actually be a Modal

## Why It's Good For The Game

You can now use this system in other windows if you want.
Fixed the misnomer.

---------

Co-authored-by: Jeremiah <[email protected]>
## About The Pull Request

5 months ago when I separated this stuff out to its own proc I forgot a
damagetype check.

## Changelog

:cl: Melbert
fix: Only brute damage causes brain damage when applied to the forehead,
rather than all damage types
/:cl:
…cess their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)

## About The Pull Request

Creates a higher capacity version of the SMES unit that spawns in with
super capacity cells, as well as a full version. Places the full version
into all the AI sats (which all have independent grids for the most
part), some remote space ruins and the mining base. These SMES units are
intended for areas where players aren't expected or cannot reasonably be
expected to constantly monitor power usage within the length of a
standard round.

Miners can access their power stations, telecommunications box and
atmospheric station on the mining base. They're really the only people
who care, after all.

The gulag's SMES (also now upgraded) no longer saps power from the main
base due to having its input terminal rigged to the main base power
grid, and thus demanding all power from the grid greedily. To revert
this in-game is a single power cable placed back east of the SMES unit.

## Why It's Good For The Game

The power changes made some of the once largely low-maintenance areas
much more likely to run out of power more quickly than you would expect.
These aren't areas expected to be maintained or monitored by engineering
(probably because they're not easily accessed), and they're just kind of
troublesome to deal with on a round-to-round basis.

Mining had this problem triple-fold. It had significant drain with no
convenient method of installing power generation at all, miners couldn't
access what power generation there was without using their 'skeleton
key' to open the way (only engineers could, and they aren't expected to
come down to mining at all), and even then, there was the gulag SMES
just eating all the power anyway. I'm pretty sure that SMES unit was the
biggest culprit of them all, but I think this conveniently future proofs
these issues for the time being.

## Changelog
:cl:
add: Adds a higher capacity SMES unit to lower maintenance areas and
maps.
fix: Miners can actually access and fix their engineering issues on the
lavaland base via the engineering section of the base.
fix: The gulag SMES unit is no longer needlessly draining the entire
power grid of the main mining base.
/:cl:
## About The Pull Request
Lots of qol improvements for controller tgui

- Auto sort order based on type
- Bar view for items in deciseconds

<details>
<summary>vids</summary>

in a live round

![image](https://github.com/tgstation/tgstation/assets/42397676/52fd4677-763a-4ea9-965a-386ab59cd353)

modals

![Tzp0i9yfwP](https://github.com/tgstation/tgstation/assets/42397676/06ca6d9e-c528-4f02-8dbb-d302d2380396)

bar view with defaults for decisecond sorts

![2X6IqQIE7c](https://github.com/tgstation/tgstation/assets/42397676/88b80fd4-1116-4ba1-aa0b-6bac56827e6b)

</details>

## Why It's Good For The Game
Better admin tools
## Changelog
:cl:
add: Admin tools buffed, check the Controller Overview
add: Controller Overview moved to debug tab
/:cl:
## About The Pull Request
Cargo express console does not send amounts by name

Fixed and touched up the express console a bit
![Screenshot 2024-04-22
195254](https://github.com/tgstation/tgstation/assets/42397676/c099cdc0-6b4d-4348-9b5b-f9d4cc325d0b)
## Why It's Good For The Game
Bug fix (no issue yet)
## Changelog
:cl:
fix: Cargo express console fixed: No more bluescreen
/:cl:
## About The Pull Request
1. Both Plumbing & Chem reaction chamber will use the beakers
`heat_capacity()` proc instead of the formulae `SPECIFIC_HEAT_DEFAULT *
reagents.total_volume`. This yields the exact same results as before but
will mean in the future if individual reagents heat capacities are
changed then the heating effects will be accurately reflected here. It
also uses that amount of power for heating
2. Plumbing rection chamber will not use energy when its either
'emptying' or when no reagents are present in its internal buffer
3. You can hit the chem reaction chamber with items like beakers,
screwdrivers, crowbars and what not

## Changelog
:cl:
fix: plumbing & chem reaction chamber heating effects accurately reflect
the beakers heat capacity & power usage
fix: plumbing reaction will not use power when emptying or when there
are no reagents to heat
fix: you can hit the chem reaction chamber with items like beakers,
screwdrivers, crowbars and what not
/:cl:
## About The Pull Request
i noticed brimdemons werent attacking when i tried investigating the
problem i saw it extends to other mobs

## Why It's Good For The Game
brimdemons, as well as other mobs, will behave normally

## Changelog
:cl:
fix: brimdemons (and other mobs) will act normally
/:cl:
## About The Pull Request

Credit to Melbert for this idea.
Adds a new achievement awarded for carrying a boulder from Lavaland to
the Centcom Rescue Wing (via the Escape Shuttle).
If the boulder ever leaves your hands you will not gain the achievement.
If the boulder is not outside on Lavaland when you pick it up you will
not gain the achievement.
If you arrive at the Rescue Ship (via pod) you will not gain the
achievement.
If you drop the boulder 
If the shuttle is hijacked and you do not arrive at Centcom you will not
gain the achievement (perhaps try hitting the hijacker with the boulder
you are not allowed to drop?).
If you arrive at Centcom via the Escape Shuttle but fail to exit the
shuttle holding the boulder (for instance, because a max cap bomb is
detonated next to you one second after the shuttle arrives) you will not
gain the achievement.

As the achievement is rewarded after the round-end report is generated,
you also will not be represented on the round-end report. This is a
personal struggle.

Also carrying a boulder slows you down. Dragging it already did, so I'm
not sure why carrying one did not. It feels like an oversight, and just
makes sense.
People rarely have any particular need to manually carry them anywhere
so this should be fine, right? 🙂

## Why It's Good For The Game

Making players do pointless and weird bullshit is the reason to have an
achievement system.
It's a social experiment.
I think that it is funny.

## Changelog

:cl: Jacquerel and Melbert
add: A new achievement for moving a boulder from one place to another,
at great effort.
balance: Hauling a boulder around makes you move slower, as it does when
dragging it.
/:cl:
## About The Pull Request
Subsystems currently come in two different flavors:
1. Systems that process at intervals with the master controller
2. Global data containers that do not fire

And I think they should be split up...


This moves 4 non firing, non init subsytems -> datasystem

## Why It's Good For The Game
Clarity in code
## About The Pull Request
Truly,
## Why It's Good For The Game
Bug fix before you even issue report it
## About The Pull Request

(short, slightly outdated video compilation of the pirates)
https://youtu.be/j9BNFzcUSjc

Adds the **MEDIEVAL WARMONGERS** pirate gang, these pirates are focused
on causing chaos directly on the station with the use of melee weaponry
and swarming tactics.
they are not very smart when it comes to using technology, so they crash
in the station in an attempt to dock.

the pirates spawn with the NOGUN trait as they have never used guns
before but have access to dashing and the unbreakable component(small
heal burst upon reaching crit).
Warlord spawns with a better version of hulk(isnt removed upon crit and
can still do stuff while critted) and gigantism mutation by default
because ~~Chad Maximus~~ the other pirates require someone to run to
when stuff like flashbangs, batons or lasers are present. The warlord
spawns with a boarding axe which is a better axe that is good at
destroying things and a meat hook. **there's a total of 5 pirates.**

the pirate shuttle has:
- thermite barrel and 3 large beakers
- single weak claymore
- 3 extra military spears
- 3 kite shields
- 3 heavy bolas
- 4 regular bolas
- a stack of wood
- 2 stacks of mourning poultice (15 uses each)
- one burn medkit

**shuttle was made by striders18, big thanks to him**

![image](https://github.com/tgstation/tgstation/assets/114047053/766d0b96-4487-47d3-b524-70d811ce4d73)


things added:

- the new pirate gang
- a gamberson jumpsuit
- crude armor (good melee and wound protection but lacks on the rest)
- warlord armor (extreme protection at the cost of slowdown)
- a shortsword(bootleg claymore with 30 block chance and goes on belt
instead of back)
- military spear (better at throwing, better wounding, deals blunt
wounds instead of sharp)
- axe with better damage and demolition mod for the warlord
- a var to specify the name of the landing zone destination for the
assaultpod
- an assault pod targeting device item for the medieval shuttle
- a thermite barrel
- kite shields
- new hulk variant that doesnt go away when crit and has tenacity
## Why It's Good For The Game
I always liked the chaotic nature of the russian bounty hunters that
would come from their extra numbers and lack of tools. i thought
something of a similar idea on pirates would be good, a very direct and
scary militia rushing in with sword and faith would create some awesome
scenarios

## Changelog
:cl:
add: New heavy weight pirates, medieval warmongers
add: Adds military spear, shortsword, boarding axe, kite shields
add: Adds warlord and crude armor
add: Adds medieval shuttle (made by striders18)
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>
@Gaxeer Gaxeer changed the base branch from master to translate April 23, 2024 11:02
@Gaxeer Gaxeer changed the base branch from translate to master April 23, 2024 11:03
MrMelbert and others added 15 commits April 23, 2024 15:33
## About The Pull Request

`/datum/memory/playing_cards` accepts a list of other players, which it
uses to format into an english list.

But where it is applied, it takes a list of players, formats it into an
english list, and passes it in. Oops.

Also fixed some verbage for how the memories look in-story-form. 

## Changelog

:cl: Melbert
fix: Playing Cards memory now reads better
/:cl:
…es (makes cough runechat only) (#82832)

## About The Pull Request

- Fixes all emotes being considered audible
- We have a check here: `if(emote_type & (EMOTE_AUDIBLE |
EMOTE_VISIBLE)) //emote is audible and visible` ...Which doesn't work
the way it think it's working.
- The correct way to have done this is `emote_type & (EMOTE_AUDIBLE |
EMOTE_VISIBLE) == (EMOTE_AUDIBLE | EMOTE_VISIBLE)`

- Adds support for runechat only emotes
- Starts by adding this flag to *cough, making coughing only display to
runechat.
- If a player has runechat emotes disabled, these will print to chat
like normal.

- Adds `EMOTE_VISIBLE` to *snap

## Why It's Good For The Game

We have a few emotes that get spammed a metric ton in some events, such
as coughing for smokers who have viruses in smoke clouds. Having "X
coughs!" 100 times in your chat is simply un-necessary, and leaving it
to be more ephemeral (a-la balloon alerts) makes it a bit easier to
parse chat.

## Changelog

:cl: Melbert
qol: Coughing will now no longer print to chat, IE, it is runechat only.
If you have runechat emotes disabled, however, it will still print to
chat.
qol: Snapping now has a visual component. 
fix: All emotes are no longer considered audible, meaning blind people
go back to not being able to see people do flips and jumps
fix: However, blind people are now told when they do a visible emote
like flipping (because they can, obviously, feel themselves flipping).
Likewise, deaf people are told when they do some audible emotes, like
coughing or screaming.
/:cl:
…h less (#82827)

## About The Pull Request

- Tuberculosis makes you cough more, and is no longer restricted to
stage two
- Nicotine Addiction Withdrawal makes you cough less often
- Medicine Addiction Withdrawal makes you cough less often but now
carries across all stages

## Why It's Good For The Game

Nicotine Addiction currently makes you cough 10x more often than
Tuberculosis, the lung disease. Kinda nonsensical right?

This makes smoking a single cigar (which instantly makes you addicted
because lol) pretty insufferable to be around, and while this makes
sense OOC it's a roleplaying game and being actively avoided in a
roleplaying game is not fun

So tweaking the values should make it a bit more sensible

Initial values looked like `TB: 1% chance per second` vs `Nicotine: 10%
chance per second` 🥴

## Changelog

:cl: Melbert
qol: Tuberculosis makes you cough more
qol: Nicotine Addiciton makes you cough less
qol: Medicine Addiction maybe makes you cough more, maybe makes you
cough less
/:cl:
## About The Pull Request

Fake handcuffs/zipties do not apply a click cooldown upon resisting.

I'm not super happy with the solution to this (adding another item-level
var) but I told myself I'd fix this, and wasn't about to give up after
my handcuff-level solution didn't work.

Which calls into question -- Why does the breakout proc use item
typecasting over the restraint type? Is this necessary for anything to
function? I was too afraid to change it and accidentally break something
else.
## Why It's Good For The Game

Closes #82711.

Makes fake handcuffs a properly harmless joke item.
## Changelog
:cl: Rhials
fix: Fake handcuffs/Zipties no longer block clicks for a few seconds
after being resisted out of.
/:cl:
## About The Pull Request

What it says on the tin. When you fall with the longfall module active,
you do not get stunned. If you fall from more than one z-level, however,
you will be staggered from the fall, with a length based on the number
of levels fallen.

## Why It's Good For The Game

I noticed that while using these as a felinid that I actually was
stunned utilizing them. dropping the equipment I was carrying and being
rooted in place for a bit. And I thought to myself 'wait, hang on, by
taking this thing out, out I'm actually WAY better off than if I kept
them in, what gives?'

They just got powercreeped, unfortunately. Freerunner and being a
catgirl is stronger than this very niche module, because they're
equipment independent and also not a hard stun (I know faceplanting with
freerunner is still a bit of a stun, but you can still move and
potentially avoid losing equipment by falling while prone).

And maybe it functions a lot stronger in situations where those two
traits just don't apply (or apply in a very negative fashion in the case
of felinids), I don't see why they shouldn't be superior to those
traits. You have to have a modsuit, and you need to be on a map that
makes use of multi-z. And additionally be in gravity. Typically, I would
think equipment benefits should be stronger than innate/roundstart
features.

Most of the time, it is easier and more beneficial to be in constant
flight while using a modsuit than to prepare for longfalling.

So let's just make it better overall. I don't know how many people would
even use it, but I know I will and I love tossing myself into the void
below.

## Changelog
:cl:
balance: Longfall modules no logner stun you when they activate.
balance: Falling from a height greater than one z-level while using the
longfall module will still stagger you.
/:cl:
## About The Pull Request
This PR adds buttons in the crew monitor UI to sort by name, position,
or vitals, as well as a search bar for searching for specific people.
For vitals, people are sorted first by life status (living, crit, dead,
etc), then by damage. Also TS-ifies the UI.



https://github.com/tgstation/tgstation/assets/42454181/a7c0c262-8ea7-4e9f-8de6-6b9cf7481b23


## Why It's Good For The Game
Currently, finding a specific person, or a person in a specific place,
is a pain in the butt with the crew monitor. You have to go through an
unsorted list of people grouped only by department. Don't know the
person's job? Tough luck, you're going down the list one by one. It is
not at all a friendly user experience. With this PR, it becomes a
breeze, and makes the crew monitor much easier to use.
## Changelog
:cl:
add: The crew monitor now has sorting options and a search bar.
/:cl:
Fikou and others added 2 commits April 24, 2024 12:59
## About The Pull Request
fixes #82838, forgot to add the attack_self there
fixes #82869
fixes the atmos hardhat not using flags_inv and transparent_protection
correctly (you could pull off someones glasses through it for example
makes modsuits use the new rendering stuff
fixes rendering stuff not working correctly with adjustable clothing
fixes quick equip dropping the item if you cant equip it

## Why It's Good For The Game
waow its awesome

## Changelog
:cl:
fix: you can no longer take off someones glasses or mask through atmos
hardhat
fix: once you adjust a welding helmet or something it no longer makes
your cigarette or sunglasses invisible
fix: welding gas mask works once again
fix: quick equips dont drop the item if you cant equip it
/:cl:
@larentoun larentoun merged commit 4b8c703 into ss220club:master Apr 24, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.