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 23.11.24 #797

Merged
merged 56 commits into from
Nov 23, 2024
Merged

Merge upstream 23.11.24 #797

merged 56 commits into from
Nov 23, 2024

Conversation

larentoun
Copy link
Collaborator

@larentoun larentoun commented Nov 23, 2024

About The Pull Request

Мергируем апстрим

Social-Moth and others added 30 commits November 21, 2024 23:26
## About The Pull Request

Reduced cost of "Spacer" quirk by 2 points
## Why It's Good For The Game

Spacer is a quirk with many downsides built in, but it's cost is on par
with strong perks that have no negatives.

20% less damage from space and faster movement is debatably worth built
in depression while on Icebox or playing Shaft Miner, but it's cost
makes using it really restrictive for the flavor and gameplay benefits
it offers
## Changelog
:cl:
tweak: Reduce Spacers cost from 7 to 5
/:cl:
## About The Pull Request

removes RMB quiet succumb as it actually works now


https://github.com/user-attachments/assets/d59351e5-3d1c-4743-95d9-99b52629e133


## Why It's Good For The Game

the trimtext bug was patched out both in our code and additionally byond
515.1647

## Changelog
:cl:
del: removed quiet succumb which is pointless now that the bug got fixed
/:cl:
## About The Pull Request
Works on details overlooked on the original PR.

- Removes screams from damage.
- Removes screen overlay from damage.

## Why It's Good For The Game

Enhances the quirk by adding on to the bare-bones structure it had while
also making it more mechanically unique.
## Changelog
:cl:
balance: Numb quirk now stops you from screaming and seeing the damage
overlay when damaged. Better keep a close eye on your health.
/:cl:
## About The Pull Request

Makes stairs near arrivals more convenient to use and fixes some long
ago mentioned problems

![image](https://github.com/user-attachments/assets/1c0d711b-7eaf-43bb-a66d-d7cb94dbbf3d)

![image](https://github.com/user-attachments/assets/c52e9330-6806-492f-85c3-e04b21a1d680)


## Why It's Good For The Game

Better version of tgstation#87963

## Changelog


:cl:
map: Nebula Arrivals stairs are now easier to navigate
map: Fixed unconnected wire in dormitories on Nebula
map: Fixed engineers having free pass to cargo department on Nebula
/:cl:
…tion#87600)

## About The Pull Request

Replaces the mini-UZI beach battle domain reward with a ballistic
chameleon gun.

Also added a separate possible reward for an uzi bitrunning disk.
…on#88071)

## About The Pull Request
- Fixes tgstation#88063

## Changelog
:cl:
fix: inducers can be inserted into storage objects again
/:cl:
…t by a rogue bullet (tgstation#88082)

## About The Pull Request
Chance of getting an eye wound from being hit by a projectile now scales
inversely with your head armor. Meant to do this originally but forgot,
so here we go.

## Why It's Good For The Game
You'd expect that a bulletproof helmet will prevent your eyes from being
popped like balloons, especially if you don't take any damage from the
hit.

## Changelog
:cl:
balance: Armor now decreases the chances of getting your eye blown out
by a rogue bullet
/:cl:
## About The Pull Request

Putting ``*`` at the end of a spawn type string will tell the command to
not offer subtypes of that string. For example, running ``laser/cap``
offers you two types: ``GUN_LASER/captain`` and
``GUN_LASER/captain/scattershot``. Adding a start to the end like
``laser/cap*`` would only offer ``GUN_LASER/captain`` without the
scattershot subtype, and instantly spawn it without an input window
because its the only fitting type.

## Why It's Good For The Game
Easier to spawn certain types without having subtypes offered to you
## About The Pull Request

Copypaste oopsie

## Changelog
:cl:
fix: Fixed parsnip sabre not receiving a jousting component
/:cl:
SmArtKar and others added 25 commits November 23, 2024 11:27
…n#88100)

## About The Pull Request

someone cooked too hard

## Changelog
:cl:
fix: Fixed full augmentation scan experiment being uncompletable
/:cl:
…8102)

## About The Pull Request
- Fixes tgstation#87873

Bubblegum with the chewable element was not triggering due to a
microdose that would get deleted as soon as it was inserted into the
mob.

Also added a crash message so if anyone in the future tries to microdose
the chewable element it gets caught by our CI/CD checks.


![chrome_MUuaIxcpTI](https://github.com/user-attachments/assets/5d473499-0c42-4677-9a13-598078e512f1)

Special thanks to @SmArtKar for digging around in the code and finding
the problem.

## Why It's Good For The Game
Bubblegum now makes you happy.

## Changelog
:cl: timothymtorres, SmArtKar
fix: Fix chewable bubblegum not metabolizing due to microdose
/:cl:
)

## About The Pull Request

shrug

## Changelog
:cl:
fix: Fixed a rare runtime in jetpack component code
/:cl:
## About The Pull Request

read the title doofus

## Why It's Good For The Game

theoretical meat is bad for the economy

ok so basically the guy who did this whole thing only had it check for
reagent/consumable in the entire beaker, which is goofy as hell for a
lot of reasons, but it also has the side effect of not including
non/consumable reagents like blood, cryoxadone, and carpotoxin.

there's probably a bug in there where adding pure salt or other reagent
to the beaker can make highly pure food items with highly impure
ingredients, but if youre bothering to do that you couldve made pure
ingredients to begin with, and that wouldve existed before i touched it
and i dont wanna bother

## Changelog

:cl:
fix: synthmeat is no longer an nft
/:cl:

---------

Co-authored-by: SyncIt21 <[email protected]>
<!-- 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! --> the text displayed when this quirk's gained would
include the skillchip's typepath rather than its name. this fixes that.
also fixes an issue with how the callback timer was being handled, which
would lead to a runtime whenever the quirk was removed (since addtimer
returns the id and not the callback itself). also fixes the scratch
effect never actually working because an organ slot was being provided
to `get_organ_by_type` rather than the type. also fixes the itchy effect
not going away after the skillchip is removed (it gets added again if
the skillchip is reimplanted).

## 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. --> fixes a few
issues with the chipped quirk

## 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 its 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. -->

:cl:
fix: fixes the chipped quirk displaying the skill chip's typepath rather
than its name
fix: fixes chipped quirk's itchy effect not working
fix: the chipped quirk's itchy effect now goes away when the skillchip
is removed
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: 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. -->

---------

Co-authored-by: MrMelbert <[email protected]>
## About The Pull Request
~~Kept you waitin huh!~~
The projectile refactor is finally here, 4 years later. This PR (almost)
completely rewrites projectile logic to be more maintainable and
performant.

### Key changes:
* Instead of moving by a fixed amount of pixels, potentially skipping
tile corners and being performance-heavy, projectiles now use
raymarching in order to teleport through tiles and only visually animate
themselves. This allows us to do custom per-projectile animations and
makes the code much more reliable, sane and maintainable. You (did not)
serve us well, pixel_move.
* Speed variable now measures how many tiles (if SSprojectiles has
default values) a projectile passes in a tick instead of being a magical
Kevinz Unit:tm: coefficient. pixel_speed_multiplier has been retired
because it never had a right to exist in the first place. __This means
that downstreams will need to set all of their custom projectiles' speed
values to ``pixel_speed_multiplier / speed``__ in order to prevent
projectiles from inverting their speed.
* Hitscans no longer operate with spartial vectors and instead only
store key points in which the projectile impacted something or changed
its angle. This should similarly make the code much easier to work with,
as well as fixing some visual jank due to incorrect calculations.
* Projectiles only delete themselves the ***next*** tick after impacting
something or reaching their maximum range. Doing so allows them to
finish their impact animation and hide themselves between ticks via
animation chains. This means that projectiles no longer disappear ~a
tile before hitting their target, and that we can finally make impact
markers be consistent with where the projectile actually landed instead
of being entirely random.

<details>

<summary>Here is an example of how this affects our slowest-moving
projectile: Magic Missiles.</summary>


Before:


https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e

After:


https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915

</details>


<details>

<summary>And here is a much faster, and currently jankier, disabler
SMG.</summary>


Before:


https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348

After:


https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238

</details>

### But how will this affect the ~~trout population~~ gameplay?

Beyond improved visuals, smoother movement and a few minor bugfixes,
this should not have a major gameplay impact. If something changed its
behavior in an unexpected way or started looking odd, please make an
issue report.
Projectile impacts should now be consistent with their visual position,
so hitting and dodging shots should be slightly easier and more
intuitive.

This PR should be testmerged extensively due to the amount of changes it
brings and considerable difficulty in reviewing them. Please contact me
to ensure its good to merge.

Closes tgstation#71822
Closes tgstation#78547
Closes tgstation#78871
Closes tgstation#83901
Closes tgstation#87802
Closes tgstation#88073

## Why It's Good For The Game

Our core projectile code is an ungodly abomination that nobody except
me, Kapu and Potato dared to poke in the past months (potentially
longer). It is laggy, overcomplicated and absolutely unmaintaineable -
while a lot of decisions made sense 4 years ago when we were attempting
to introduce pixel movement, nowadays they are only acting as major
roadblocks for any contributor who is attempting to make projectile
behavior that differs from normal in any way.

Huge thanks to Kapu and Potato (Lemon) on the discord for providing
insights, ideas and advice throughout the past months regarding
potential improvements to projectile code, almost all of which made it
in.

## Changelog
:cl:
qol: Projectiles now visually impact their targets instead of
disappearing about a tile short of it.
fix: Fixed multiple minor issues with projectile behavior
refactor: Completely rewrote almost all of our projectile code - if
anything broke or started looking/behaving oddly, make an issue report!
/:cl:
## About The Pull Request

Ejector didn't clean its ref in parent ripley before deleting itself
which could cause harddels if it didn't delete fast enough (as seen
during round 243009)

## Changelog
:cl:
fix: Fixed a potential harddel in Ripley code
/:cl:
## About The Pull Request
Caused by:

- tgstation#88048

The coffee maker smoke particles stayed on forever after brewing
something. This is now fixed.

## Why It's Good For The Game
Coffee brewing is no longer a fire hazard.

## Changelog
:cl:
fix: Fix coffee maker smoke particles not deleting
/:cl:
## About The Pull Request
Caused by:

- tgstation#88048

Trying to use the fireplace would result in runtimes and the smoke
particles not triggering.

Even though the runtime is fixed, the new particle changes in tgstation#88048
broke the pixel offsets. While I was testing, anytime I tried switching
a pixel offset it would update all fireplaces. I tried to limit it to
add the shared particle id to `"fireplace_[dir]"` so that it would only
apply to the objects in that direction but I couldn't get it to work. I
would guess this also affects a lot of other objects that have particle
pixel offsets.

Runtime is fixed. Particle offsets are still broken.

## Why It's Good For The Game
Fireplaces no more runtime.

## Changelog
:cl:
fix: Fix fireplace particles runtimes.
/:cl:
@github-actions github-actions bot added 🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один. 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов labels Nov 23, 2024
Copy link

This PR causes following conflicts on translate branch:

code/modules/mob/living/carbon/carbon.dm
++<<<<<<< HEAD
 +	visible_message(span_notice("[src] gets a nosebleed."), span_warning("You get a nosebleed."))
 +
 +/mob/living/carbon/check_hit_limb_zone_name(hit_zone)
 +	if(get_bodypart(hit_zone))
 +		return hit_zone
 +	// When a limb is missing the damage is actually passed to the chest
 +	return BODY_ZONE_CHEST
++||||||| e0af854b27e
++	visible_message(span_notice("[src] gets a nosebleed."), span_warning("You get a nosebleed."))
++=======
+ 	visible_message(span_notice("У [declent_ru(GENITIVE)] пошла кровь из носа."), span_warning("У вас пошла кровь из носа."))
++>>>>>>> origin/translate
code/modules/mob/living/living.dm
++<<<<<<< HEAD
 +				to_chat(src, span_notice("Your immortal body is keeping you alive! Unless you just press the UI button."), type=MESSAGE_TYPE_INFO)
++||||||| e0af854b27e
++				to_chat(src, span_notice("Your immortal body is keeping you alive. If you want to accept death, you must do so [span_bold("quietly")]."), type=MESSAGE_TYPE_INFO)
++=======
+ 				to_chat(src, span_notice("Ваше бессмертное тело не даёт вам умереть. Если же вы хотите принять смерть, вы должны сделать это [span_bold("тихо")]."), type=MESSAGE_TYPE_INFO)
++>>>>>>> origin/translate

@larentoun larentoun merged commit 31c65db into master Nov 23, 2024
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🖌️ Спрайты Вы заработали свою миска-рис и кошко-жена. Партия гордится вами! 🙏 Слияние с восходящим потоком О великий восходящий поток, спасибо что приносишь нам свои дары контента и багфиксов 🗺️ Изменение Карты В этом ПРе затронут файл не станционной карты. Может и не один.
Projects
None yet
Development

Successfully merging this pull request may close these issues.