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

Armed and failing ci #4

Closed
wants to merge 868 commits into from
Closed

Armed and failing ci #4

wants to merge 868 commits into from

Conversation

Jacquerel
Copy link
Owner

@Jacquerel Jacquerel commented May 11, 2023

About The Pull Request

Why It's Good For The Game

Changelog

🆑
add: Added new mechanics or gameplay changes
add: Added more things
del: Removed old things
qol: made something easier to use
balance: rebalanced something
fix: fixed a few things
soundadd: added a new sound thingy
sounddel: removed an old sound thingy
imageadd: added some icons and images
imagedel: deleted some icons and images
spellcheck: fixed a few typos
code: changed some code
refactor: refactored some code
config: changed some config setting
admin: messed with admin stuff
server: something server ops should know
/:cl:

Zonespace27 and others added 30 commits May 2, 2023 18:42
## About The Pull Request
Fixes:

- Crusher mark score applying to attacked corpses
- Parrying not working, in 2 different forms
- The style bar not being accurate with >= 600 style points

## Why It's Good For The Game
Bugs bad

## Changelog
:cl:
fix: Style meter parrying works again
fix: Style meter bar now works correctly with very high style point
count
/:cl:
## About The Pull Request

Rearranges birdshot's atmos to fit a mix to engine pipe for pumping gas
to the supermatter.

Fixes tgstation#75069

## Why It's Good For The Game

Having a fully featured engine setup is a useful thing for a station map

## Changelog
:cl:
fix: A Mix to Engine gas line has been added to Birdshot's atmospherics
/:cl:
Golems can now redeem points from their ORM. There's a check for bank
job, so only the blank ID cards golems get will work. Miners
theoretically can use one of the cards to get points themselves, but
then they need to carry that card around and get all points through it,
because their starting ID cannot claim it.
🆑
fix: Removes player references.
/🆑
…tgstation#75094)

## About The Pull Request

Fixes a small grammatical error with the anomaly announcement text.
## Why It's Good For The Game

Words words words words words words words.
## Changelog
:cl:
spellcheck: The hallucinatory anomaly announcement is no longer missing
words.
/:cl:
<!-- 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
BLOK -> BLOX
<!-- 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

![image](https://user-images.githubusercontent.com/66163761/235810768-85b3b9f6-2dc5-46b4-b8a0-b55dc64ae7e1.png)

<!-- 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. -->

:cl:
spellcheck: BLOX is the name and posibrain is the game.
/: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. -->
## About The Pull Request

The recent expansion of kitchen screwed lounge and theater hard by
making the cafeteria next to the kitchen into a hallway and the theater
got screwed because the audience would have to use this hallway to watch
a performance.

This PR moves art storage to another side of the hallway towards
engineering, and cuts one maints room to make space for proper lounge
and theater as before the kitchen expansion.

Before:
![Labor Platform Nineteen 2023-05-02
015051](https://user-images.githubusercontent.com/3625094/235545742-9bb17b03-ad8d-4b84-9f45-941e785f4700.png)

After:
![Draconic Hub Juliet 2023-05-02
133458](https://user-images.githubusercontent.com/3625094/235644203-58dd79ad-4acb-4c4f-97b4-5f6b8fa5a5aa.png)

## Why It's Good For The Game

Even if Chefs know CQC, they should respect other professions.

## Changelog

:cl:
balance: Meta lounge and theater are back to original sizes, art storage
moved to aux tools storage
/:cl:
## About The Pull Request
I decided that Service Borgs had been left in the dust for too long, and
that since they're named 'Service' cyborgs and not 'Bar' cyborgs I'd
give them upgrades to let them assist in the kitchen. To do this I've
made 4 upgrades.

First up, rolling table dock, to provide mobile service. Nothing worse
than offering someone a drink in a hallway and having to drag them to
the nearest table or having to drop it on the floor. That's poor
service.
Secondly there's a condiment synthesizer, which can produce solid
condiments like flour, cornmeal, salt, coco powder, etc.
Thirdly a kitchen toolset, a knife that can switch to a rolling pin. The
blade dulls when not used for cooking.
Fourthly, A service apparatus, which can pick up food, oven trays, soup
pots, plates, bowls and paper.

The upgrades are locked behind a new techweb node, Cyborg Upgrades:
Service.
This node is locked behind the same nodes as the janitorial cyborg
upgrade node.

And outside the upgrades, I've also given the cyborg a rag so it can
finally clean it's glasses and tables. I've also given it a money bag,
to store the profits. This gives cyborgs an opportunity to save up for
getting on the deluxe shuttle. Or giving people a new target to hold up
and shake down for their hard earned money. Please don't law 2 them into
giving you their lunch money. Or do.
I've also enabled the RSF to print a few more things. Plates, bowls,
plastic cutlery and paper cups.
I've also enabled borgs to open and close the oven. Alas, they still
can't pick up food or the oven trays from the oven, since the oven is
sticky in a manner.

I've also added a little bit more to the borgshaker, and moved sugar
from the borgshaker to the condiment synthesizer.

And not only the borgshaker, but the emagged shaker too. The emagged
shaker has been given blood and carpotoxin. And you may ask 'Why those
two ingredients?' Both can be used like fernet, both for nice things,
and harmful things, staying in line with fernet. Blood can be used to
mix drinks or be used for food, or for disease, since the borg or anyone
with access to milk and water can easily produce virus food. Meanwhile
carpotoxin is well, a rather weak toxin but can also be used to make
imitation carpmeat. This'l give more reason to also consider the borg
for emagging, or giving illegal tech, instead of just speedlining for
the nearest engineering borg or medical borg.

![image](https://user-images.githubusercontent.com/126404225/233840472-7665196c-1052-4e29-9749-6c2b99e5fa9e.png)

The Condiment Synthesizer uses the same UI as the medical hypo, due to
it's ingredient list being low in comparison to the shaker

![image](https://user-images.githubusercontent.com/126404225/235359571-48157d24-f3c8-448f-bb05-6f8842526aae.png)

I've been trying to figure out how to get an item to allow the borg to
open the cooking menu when used inhand/inmodule. But I can't figure that
one out, sadly. Nor how to let the Service Apparatus pick up trays from
the oven.
So for now, service borgs will have to settle for simply assisting in
the kitchen.

## Why It's Good For The Game
Allows Service Cyborgs the tools to help in the kitchen, and elsewhere
too.
## Changelog
:cl:
add: Damp rag and Money bag to service borg
add: Service borg upgrades, with accompanying tech web node
add: Sprites for kitchen toolset, and service apparatus
balance: The RSF can print a few more things, paper cups, seaweed
sheets, plates, bowls, plastic cutlery and standard decks of cards.
balance: Sugar moved from borgshaker to condiment synthesizer. Berry
juice, cherry jelly and vinegar added to borgshaker. balance: Both
shaker and synthesizer can also be adjusted to give 1 unit at time, so
it goes 5, 10, 20 then 1, and back around.
balance: Adds blood and Carpotoxin to the emagged borgshaker.
fix: Money bag was missing a description, it now has one.
/:cl:
## About The Pull Request
Fixes spiderligns speaking human
## Why It's Good For The Game
Spiderlings should be able to communicate with their mothers even if
their dumb babies

![uW4kZe4](https://user-images.githubusercontent.com/84478872/235577542-26fda00c-24c0-46d0-8110-87e63f156133.png)
## Changelog
:cl:
fix: fixed spiderlings speaking human instead of spider
/:cl:
## About The Pull Request
Adds the Death Sandwich to the game, the ultimate form of
bread-conveyed-meat-based consumables.

![deathsandwich](https://user-images.githubusercontent.com/66052067/235041733-287be1fd-1eed-4d6d-840b-96f95494f093.png)


And remember;
Eat it right, or you die!
## Why It's Good For The Game
I'm genuinely surprised we don't already have a meatball sub in the game
also I love humor food, and I doubt my edition of the Eggcellent
Challenge would ever be merged if I tried to do so, so this is the next
best thing.
## Changelog
:cl: Wallem
add: The ancient recipe for the Death Sandwich has been rediscovered
buried in the deepest depths of an erupting volcano.
/:cl:
comfyorange and others added 25 commits May 11, 2023 11:55
Safeguards against tgstation#74965 happening in the future.

Noticed a bunch of these were using ITEM_SLOT_HANDS. This is incorrect,
as the element already automatically updates held items. grep'd it to
catch future instances.

Likewise, a number of objects weren't passing slot_flags to the element,
meaning it wasn't actually updating those things properly when they were
being worn. I've simplified this so now the element will automatically
update all slot_flags, and passing an additional slot to the element
when being added is only needed for additional slots that might need to
be updated. This also means if slot_flags change, the element will now
update correctly as well.

:cl: ShizCalev
code: The update_icon_updates_onmob element will now automatically
update all slots in an item's slot_flags var. This does fix multiple
things that weren't updating properly. Passing a slot to the element is
now only necessary if you want to add additional slots to be updated.
/:cl:
…t on the wall (tgstation#75151)

## About The Pull Request

So if you try to put a wall mount frame (APC, Air Alarm, Fire Alarm) on
a wall and for whatever reason (say if the area is unpowered, or there
already is a wall mount there) you fail then nothing happens, you get to
keep that wall mount frame (APC frame, Air alarm frame, Fire alarm
frame) and try again with it elsewhere.

But if you try to install these wall mounts with an RCD(with machine
frames upgrade) and if it fails for the same reasons then not only do
you lose rcd matter but the temporary spawned wall mount frame is also
deleted so it's a major lose on both sides.

Now that's no longer the case, you get to keep that spawned wall mount
frame and try again with it elsewhere if you wish. This also solves some
runtimes with balloon alerts, since the wall mount was deleted the
balloon alert added a timer on the deleted wall mount causing runtimes

Also removed a useless to_chat message saying you scraped a wall even
though we obviously can see that.

## Changelog
:cl:
qol: RCD spawned apc, air alarm, fire alarm frames are no longer deleted
if the wall mount operation fails.
fix: balloon alert run timing on deleted wall mount frame spawned by an
RCD.
/:cl:
… a hilbert hotel storage container (tgstation#75301)

![image](https://github.com/tgstation/tgstation/assets/6209658/2616baa4-927f-4868-8a9e-1b5dd0ad20ff)

![image](https://github.com/tgstation/tgstation/assets/6209658/dd81498d-c043-48d0-97f0-b72303074b23)

this has been spamming runtime logs for yeaaaaaaarrrrrrrrrrrsssssssss.
above screenshot is from just the last week.
fixes tgstation#63850
closes tgstation#75305

🆑 ShizCalev
fix: Lighting inside of a Hilbert Hotel storage room no longer
constantly fails to update, clearing up some log spam and getting back
some free lag.
/🆑
…gstation#75312)

## About The Pull Request

The injector in the North Star's SM waste line/waste processing chamber
is set to 50L/s. This change sets it to the maximum flow rate, 200L/s,
the same throughput as a single filter (and filters chained on a single
layer).
## About The Pull Request
This PR makes selected elements in Dropdowns to be highlighted.
Without this:

![image](https://user-images.githubusercontent.com/5000549/236760396-5eb71a23-7b3d-4a9e-98d4-6bd4dc5fe1c7.png)
With this:

![image](https://user-images.githubusercontent.com/5000549/236758675-b2ab90a7-0482-492e-b911-9e59f827f6b8.png)
## Why It's Good For The Game
It's convenient to have this kind of selection indication, especially in
long lists.
## Changelog
:cl:
qol: Made selected elements highlighted in TGUI Dropdowns
/:cl:
…tion#75253)

## About The Pull Request
Custom say emotes work incorrectly, if there's any non-ASCII symbols in
"prefix" part of it.
E.g. for input `test*test` and `тест*тест` the results are (notice
messed up prefix in the second case):

![image](https://user-images.githubusercontent.com/5000549/236725577-87f8f0fc-8c60-4e72-b768-c10f5643b5c4.png)
In order to fix it, this PR replaces `copytext_char` (working with
**character** position) with `copytext` (working with **byte**
position), so it works correctly with `customsaypos` found by `findtext`
(working with **byte** position). With this fix the results become
expected:

![image](https://user-images.githubusercontent.com/5000549/236726258-f9aabf40-c84e-49ba-921f-9f328f1d8057.png)
## Why It's Good For The Game
It fixes custom say emotes bug with non-ASCII characters and slightly
increases performance (since `copytext` is said to work faster than
`copytext_char`)
## Changelog
:cl:
fix: fixed custom say emotes with non-ASCII characters
/:cl:
## About The Pull Request

1. Ensures the static list closet & crate paint job vars & the
`access_choices` list vars are initialized only once. Since they are
defined inside `Initialize()` they were initialized many times and need
to be set only once when null

2. Fixes tgstation#75313
Closets & Crates can be wrapped again

3. Fixes tgstation#75349
Personal closets can be claimed again by anyone without
ACCESS_ALL_PERSONAL_LOCKERS if it's currently unclaimed.

4. Fixes tgstation#75351
Wallet with combined access are accepted again

**Note:** To claim a personal closet swipe once to unlock it, then swipe
again to claim it

:cl:
fix: closets & crates can be wrapped with wrapping paper again
refactor: closet & crate paint jobs static list vars, access_choices
static list var are initialized only once during init
/:cl:

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
## About The Pull Request
This increases laser wound chance, increases the damage and also makes
them use less energy.

## Why It's Good For The Game
Lasers cannot reload so they're not as convenient as a gun, so this will
maybe make them more cool, honestly I just want to try this to see what
happens.

## Changelog
:cl: oranges
balance: increased laser damage, decreased energy cost and increased
wound chance
/:cl:
…tation#75330)

you must now be able to see what you're trying to build on

## About The Pull Request
MECH RCD now requires you to actually see the thing you're trying to
build on

## Why It's Good For The Game
It is very powerful to be able to build in places you cant see
## Changelog

:cl: oranges
balance: MECH RCD is no longer magic
/:cl:
Should have always been this way. Fixes a ton of SHOULD_NOT_SLEEP hits.

See tgstation#75232
…station#74998)

## About The Pull Request
Now whenever an attack is blocked, the sound will play and deflection
with the item now plays sound too:


https://github.com/tgstation/tgstation/assets/42353186/1a0cc5b7-f2af-4d72-88d7-57cc11f5baa3

The parry.ogg was updated to a better-sounding one


https://github.com/tgstation/tgstation/assets/42353186/5ffc53d8-0b3c-4e6b-9256-b7b9735918bc

Every item now has a "block_sound" that can be set, it determines what
sound is played when you block an attack with it.
Cult items no longer have their own way of fuckery to play parry sounds,
now they use this system as well.

Now shield bash sound is 80% smaller after cutting out all of its noise
and silence.
## Why It's Good For The Game
Adds feedback on whether the attack was blocked or not, signalling both
to the attacker and defender that it didn't go through even if the
animation played, which is a great QoL. Same with the deflection sound
(although deflection is still pretty visible, the sound would not hurt)

New sounds add more flavour to the weapons, especially the energy sword,
giving it even more badassery.

Cutting down the noise from the shield bash sound has made it better to
listen and saved some kilobytes of information. And making every item
use the universal system for blocking sounds, removing cultist items'
own code for playing parrying sounds.
## Changelog
:cl: DrDiasyl aka DrTuxedo#0931
qol: Now blocking an attack will play a sound and display a spark
effect, giving back feedback
sound: parry.ogg was updated to a better-sounding version
sound: shieldbash.ogg no longer has noise and unnecessary silence
sound: New block_shield.ogg and block_blade.ogg for shields and energy
swords
code: Cultists items no longer have their own code for playing parrying
sounds
/:cl:

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
@Jacquerel Jacquerel closed this May 11, 2023
@Jacquerel Jacquerel reopened this May 11, 2023
@Jacquerel Jacquerel closed this May 11, 2023
Jacquerel pushed a commit that referenced this pull request Aug 12, 2023
…nent (tgstation#77539)

## About The Pull Request

Hey there,

I've personally fallen for this stupid thing twice (in tgstation#77503 and tgstation#75627
(d357516)), so I decided to spend a few
hours to crack out a unit test to ensure that I (and no one else) falls
for this stupid thing again.

Let me know if there's a smarter way to code something like this, but I
couldn't figure out a better way to accomodate the current framework and
be as agnostic to certain oddities as possible.
## Why It's Good For The Game
Catches stuff like this:

```txt
[2023-08-11 21:10:04.019]     FAILURE #1: The mob Garden Gnome does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #2: The mob the morph does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #3: The mob the guard spiderling (946) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #4: The mob the ambush spiderling (255) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #5: The mob the scout spiderling (375) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #6: The mob the flesh spiderling (337) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #7: The mob the hunter spiderling (869) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE #8: The mob the nurse spiderling (629) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE lizardqueenlexi#9: The mob the tangle spiderling (19) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE lizardqueenlexi#10: The mob the broodmother spiderling (855) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE lizardqueenlexi#11: The mob the viper spiderling (519) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE lizardqueenlexi#12: The mob the tarantula spiderling (963) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
 -     FAILURE lizardqueenlexi#13: The mob the spiderling (100) does not have ANY instances of TRAIT_SUBTREE_REQUIRED_ELEMENT, but has a planning subtree (/datum/ai_planning_subtree/target_retaliate/to_flee) that requires it! at code/modules/unit_tests/ensure_subtree_element.dm:45
```

(ignore the part about gnomes and morphs, this was an earlier version of
the unit test. everything else was relevant and is fixed)
## Changelog
:cl:
fix: Growing spiders will now retaliate against you like they were
always meant to.
/:cl:
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.