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

Fix runtime in bolts hallucination #56108

Merged
merged 1 commit into from Jan 12, 2021

Conversation

Mothblocks
Copy link
Member

About The Pull Request

Fixes requesting .len from null when the list was never initialized.

Changelog

🆑
fix: Fixed the bolts hallucination spamming runtimes.
/:cl:

@tgstation-server tgstation-server added the Fix Rewrites a bug so it appears in different circumstances label Jan 11, 2021
@Timberpoes Timberpoes merged commit 0a997b3 into tgstation:master Jan 12, 2021
FernandoJ8 pushed a commit to FernandoJ8/tgstation that referenced this pull request Apr 13, 2022
* throw_at() will not quickstart a throw if the throw was triggered from the same stack as SSthrowing/fire() (tgstation#56004)

throw_at will not quickstart a throw if the throw was triggered from the same stack as SSthrowing/fire()

Infinite throwing loops are fine, as long as they don't loop at the stack level.

* what did he mean by this (tgstation#56042)

Potato goofed 7 months ago so here's a fix (Fridges were defaulting to a force of true, which was... jank)

* Automatic changelog generation for PR tgstation#56042 [ci skip]

* Banana & peel resprite. (tgstation#56015)

imageadd: Bananas & peels have been resprited.

* Automatic changelog generation for PR tgstation#56015 [ci skip]

* fixies (tgstation#56054)

You can now ride the banana glutton properly.

* Automatic changelog generation for PR tgstation#56054 [ci skip]

* Adds Rocket Backblast (tgstation#55681)

This PR adds the backblast element, which when attached to a gun, creates giant plumes of fire when said gun is fired. The PM9 rocket launcher that nuke ops can buy kinda sucks and even a direct hit with the standard rockets loaded isn't enough to guarantee a one-hit crit on a direct hit against an armored opponent, which sucks for how much you pay for it. In that vein, I've also buffed the standard rockets a bit, they now do 50 brute up from 30 on a direct hit, and they create flames on their explosion.

Also makes a tweak to /proc/get_turf_in_angle(), since tile coordinates start at 1,1 instead of 0,0 that proc is now clamped to min 1,1 rather than 0,0

* Automatic changelog generation for PR tgstation#55681 [ci skip]

* Sticky syndicate access (tgstation#56032)

Adds sticky access. Sticky access will be readded if removed in the identification console. Currently only used to fix tgstation#54429. Also converts some comments in card_ids.dm to DMdoc comments and adds some new ones.

* Automatic changelog generation for PR tgstation#56032 [ci skip]

* Fix wheel error for ci_suit workflow (tgstation#56053)

Adds wheel package since its required by some setup.py
Workflow run with this option added: https://github.com/Gamer025/tgstation/pull/1/checks?check_run_id=1672278250

Gets rid of all the
error: invalid command 'bdist_wheel'
errors in the ci_suite workflows

* Tweak the RD's suplexing ability into a skillchip (tgstation#55870)

Although this doesn't change the power level of the Research Director,
it's important to rework "job title" checks into traits or something
similar.

Moving job title specific behaviour out of checks by job name and into
traits means there's more flexibility to trigger behaviour. If an admin
feels the station really needs the ability, they can var edit it in, or
spawn the chip.

* Automatic changelog generation for PR tgstation#55870 [ci skip]

* tgui: List Input (tgstation#56065)

Ported over from https://gitlab.com/cmdevs/colonial-warfare/-/merge_requests/613 which provides an input box to select an option from a list.
Has a search bar to allow filtering for results and an onKeyDown event to replicate default behaviour from the default list input boxes that BYOND provides (where you are able to type the first letter of an element in the list and it'll jump to the first element that matches and then the next and so on)
Right now, it is only applied to the holopad and "Drop Bomb" verb for administrators.

Credits to bobbahbrown for the Loader element from AlertModal.js which allows for a timed input (was needed on the CM codebase for timed inputs) and for the majority of the DM code.

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Automatic changelog generation for PR tgstation#56065 [ci skip]

* Sets the charset and collation for the SQL schema to utf8mb4 (tgstation#56060)

Changes the charset and collation in the SQL schema to utf8mb4 (which is default in ubuntu 20.04 and debian 10 for MariaDB). This solves all the problems with russian or other non-latin1 characters in many cases related to the use of the database, because surprisingly the rest is already ready for such use cases.

I am not adding any SQL script to migrate from latin1 to utf8mb4, as this is an extremely destructive action. It must be performed manually with the data of all tables backed up before doing so.
However, this can be done by using the following queries, one time for database:
ALTER DATABASE databse_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
and one for each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

* [READY] Nukes archeology component and icon_plating and environment_type in favor of base_icon_state. Dig behaviour code improvement (tgstation#55819)

* aa

* Removes archeology component. Nukes icon_plating and environment_type in favor of base_icon_state

* Actually maybe lets not use a proc for updating asteroid icon state when its dugged up

* Update plating.dm

* Automatic changelog generation for PR tgstation#55819 [ci skip]

* Correctly transfer skillchips when ahealing someone (tgstation#56064)

When ahealing someone via the player panel their skillchips weren't transfered correctly.
The actually skillchip object was left in the old brain and eventually hard deleted.
This caused a runtime when ahealing someone a second time (after the harddel).
This then caused the target to actually have 2 brains because of the runtime while ahealing

* Automatic changelog generation for PR tgstation#56064 [ci skip]

* Telekinesis can throw non items (vending machines, lockers) only 1 tile far (tgstation#56063)

Telekinesis users can now only throw items 10 tiles, everything else can only be thrown 1 tile

* Automatic changelog generation for PR tgstation#56063 [ci skip]

* Fixes 2 really annoying cytology virus bugs. (tgstation#56062)

This PR fixes the generate_sample proc so it properly uses virus_chance to determine when to generate a virus. Now most samples will be virus free as intended.

It also fixes the bug where virus penalty and spaceacillin consumption would be multiplied by the number of cell lines, rather than the number of viruses, as intended.

* Automatic changelog generation for PR tgstation#56062 [ci skip]

* Added a standardized json unit test results log and added my vscode test runner to recommendations (tgstation#56058)

Link to the test explorer: https://marketplace.visualstudio.com/items?itemName=Donkie.vscode-tgstation-test-adapter

The test explorer adapter lets you compile and run the code in one click of a button, with no messing about with defines necessary

The extension supports reading test results from the unit test logs, but its shitty having to parse logs for that, so this PR also adds support for a somewhat standardized method of logging unit test results to a json file instead.

* Automatic changelog generation for PR tgstation#56058 [ci skip]

* Xenomorph embryos now grow based on consistent timers instead of 100% RNG (3% chance every 2s) (tgstation#55755)

• Adds documentation to alien_embryo.dm
• Refactors how alien embryos increase their stage var, aka their cute ickle baby development stage. Now it increases stage every minute, which means 5 minutes to grow as opposed to taking 15 seconds to the end of time to grow.
• Growth time is now defined by a variable, so admins can var-edit it in game and future coders can easily change the variable to make it take more or less time to grow. It also means it's a simple one-line edit if any of TG's plentiful downstreams want to change this for their server.

* Automatic changelog generation for PR tgstation#55755 [ci skip]

* Removes the ANIMATION_PARALLEL flag from floating and fixes another issue with the refactor. (tgstation#55930)

Co-authored-by: Rohesie <rohesie@gmail.com>

* Automatic changelog generation for PR tgstation#55930 [ci skip]

* Automatic changelog compile [ci skip]

* Replaces 'Goebbles' random last name (tgstation#56074)

* Automatic changelog generation for PR tgstation#56074 [ci skip]

* Fixes removing AIs from mechs (tgstation#55986)

Basically the old code attempted to use locate(AI), but the AI in this case is a ref that is supposed to be provided by the card. Since the card is initially empty when removing AIs from the mech, it couldn't find the null in the occupants list and thus failed with a report that there was no AI in the mech.

Now it checks all occupants and makes a list of any AIs it finds, then gives the user the option to pick an AI (though since we don't have any multi-pilot mechs yet the most you can get is one AI, and input with one option just auto-chooses).

* Automatic changelog generation for PR tgstation#55986 [ci skip]

* Optimize mapmerge's DMM.generate_new_key method (tgstation#56068)

Tested on tgstation#55867, takes the merge driver's runtime from 148.1s to 4.8s

* stops code from seeping into ic chat (tgstation#56088)

changes the reference in the modular computer code from src to computer as src is a datum

* Automatic changelog generation for PR tgstation#56088 [ci skip]

* Flesh to stone no longer makes you immune to bleeding, refactors bleedsuppress into a trait (tgstation#56078)

Being hit by the Flesh to Stone makes you bleed immune to prevent you from getting petrified while bleeding, and bleeding out while turned into stone. However, it doesn't make you vulnerable when you get unpetrified. This is a bug. This also makes bleedsuppress into a trait, as both is broken and should be a trait.

* Automatic changelog generation for PR tgstation#56078 [ci skip]

* Fixes vehicles like skateboards and wheelys moving multiple times. (tgstation#56070)

 So wheelys would have 3 instances of the riding component attached on initialize with a different argument, causing them to move 3 tiles at once instead of 1. Skateboards will have 2 attached and move 2, etc.

* Automatic changelog generation for PR tgstation#56070 [ci skip]

* moves quirk stating from medhud to a button instead of being spammed on your chat (tgstation#56067)

 shift clicking people with medhud shouldnt fill your whole chat with stuff u dont want except when u press button to see it

* Automatic changelog generation for PR tgstation#56067 [ci skip]

* Move module creation up in Initialize (tgstation#56086)

This is caused by Initialize trying to link the Cyborg to an AI, when this is done successfully toggle_headlamp is called
Toggle_headlamp however calls update_icons which tries to set icon_state to module.cyborg_base_icon however module at this point is null because the default module is assigned later in Initialize.
This PR moves the module creation up inside Initialize to prevent this.

* Automatic changelog generation for PR tgstation#56086 [ci skip]

* Fixes tgstation#55670, AIs will be able to see clearly after getting un-pied (tgstation#56087)

Fixes tgstation#55670. There was a bug where AIs wouldn't have their blurriness lowered after getting cleaned up. This fixes it by enabling the system that allows living things to lower blurriness on AIs.

* Automatic changelog generation for PR tgstation#56087 [ci skip]

* Add nanite lab to Runtime Station (tgstation#56044)

Doing any testing of new nanite stuff involves spawning in a bunch of
machinery and equipment, so including it on Runtime helps with
development.

* Automatic changelog generation for PR tgstation#56044 [ci skip]

* Finishes the allocation refactor (tgstation#55965)

tgstation#53841 continuation
I recall that the reason for infinite stuns and such was that the priority wasn't being cleared properly when something hitched and I fixed it and I don't remember where exactly but it works now (TM)
A variation of this is TMed on TGMC and it works fine

* Automatic changelog generation for PR tgstation#55965 [ci skip]

* Adds forgotten kit to armament beacon (tgstation#56016)

Adds the forgotten kit to the armament beacon, holding the same stats as knight armor and stone sentinel, But with the sprites for the old clockwork armor and helmet, as they are very nice looking sprites. Moves said sprites to the suit and hat file respectively. as-well as adding forgotten helmet/armour to the game, which are said armors.

Makes it easier to do any clockcult themed gimmick as the chaplain without wearing the god awful craftable armor, uses sprites that really shoulden't die on the same hill as clockcult. a few others have also told me they'd love to see the old clockcult armor and helmet sprites used for something, as they look nice.

* Automatic changelog generation for PR tgstation#56016 [ci skip]

* Rework job food/alchohol benefits into livers  (tgstation#55721)

By moving the "special behaviour" of something like security officers
eating donuts, or engineers losing radiation by drinking Screwdrivers,
into traits on the liver, this makes the "origin" of that behaviour more
clearly defined, rather than something that's attached to the mind of
the person. (For example, now if a wizard mindswaps into a Security
Officer, they too can now digest donuts good.)

Having this behaviour be partially visible to the more medically
inclined members of the station (like doctors, and the chaplain for
"entrails reading mystic" themes), means that a dismembered liver tells
a story to those who know how to read it.

Some jobs have more "benefits" than others, for example the only thing
that the liver of a Quartermaster gives them is a sense of inadequacy
when consuming royal carpet.

Clowns having livers that honk make them easier to identify, and plays
into the retconned "bike horns are clown livers lore"? Also, why not cut
out a clown's liver then honk them with it? You monster.

* Automatic changelog generation for PR tgstation#55721 [ci skip]

* Makes it possible to create an /obj/item/sharpener with multiple uses (tgstation#55958)

Whetstones will now become worn when at 0 uses instead of being either used or not used. All currently existing whetstones start at 1 use.

* Automatic changelog generation for PR tgstation#55958 [ci skip]

* Refactor caltrop component into element (tgstation#56020)

Refactors the nearly completely stateless component "caltrop" into an
element. The previous limit on "one message per caltrop per second" has
been changed to "one message (about caltrops) per mob per second".

This avoids a unique component for each shard of glass, and each cactus
in the world, so saves some much needed memory.

A message about "sliding over" caltrops has been removed, since it's
now intended that you only trigger caltrops if you're not lying down.

* Automatic changelog generation for PR tgstation#56020 [ci skip]

* Regular CTF no longer has wounding (tgstation#56093)

:cl: coiax
tweak: Regular Capture-The-Flag players can no longer be wounded.
Simulated participants in the Medieval Shuttle can still be violently
murdered with wounds however.
/:cl:

CTF is very fast paced, and if you've taken damage without your shield,
you are nearly dead most of the time. However, if you do survive, you're
supposed to slowly heal, but wounds are untreatable on the battlefield.

People still being able to be bloodily stabbed in the Medieval Shuttle
is definitely a feature.

- Aliens (xenomorphs) are still immune to wounds, but that immunity is
  now done with a trait, rather than a typecheck.

* Automatic changelog generation for PR tgstation#56093 [ci skip]

* Automatic changelog compile [ci skip]

* [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join (tgstation#55956)

Currently, a victory for revoutionaries leads to the round abruptly ending on dynamic. This has been replaced by all revolutionaries being deconverted, and no new security or command positions being available.

Also attempts to unionize (pun intended) copy and paste code in the round start and late join revolutionary rulesets into being handled under the revolutionary team instead.

* Automatic changelog generation for PR tgstation#55956 [ci skip]

* Fixing bugs about the worst simple_animal coded in and material tiles. (tgstation#54885)

Fixed floorbots applying floor tiles onto already tiled turfs.
Fixed floorbot issues with material tiles.
Fixed emagged floorbots spawning lattice when deconstructing floor into plating.

* Automatic changelog generation for PR tgstation#54885 [ci skip]

* Makes jaunting work properly again (tgstation#56028)

Fixes an if check that was checking the area flags of a turf. Prevents a runtime in phased_check, and makes the area noteleport flag work properly. These were introduced by tgstation#55973

* Gives CE an engineering skillchip. (tgstation#56082)

Literally gives CE an existing skillchip.

* Automatic changelog generation for PR tgstation#56082 [ci skip]

* HFR: Better observation of delta_time (tgstation#56009)

This changes HFR's fusion_process() to better observe delta_time.

* Automatic changelog generation for PR tgstation#56009 [ci skip]

* Fix moth aheal runtime (tgstation#56109)

Fixes misplaced square bracket to solve runtime issue.

* Automatic changelog generation for PR tgstation#56109 [ci skip]

* Removes the gen_turfs from icebox arrivals, they don't god damn do anything because they are literally just placeholders for areas, and they aren't in the right fucking area. Also gets rid of some dumb plating that makes the area looks worse imo (tgstation#56107)

* Automatic changelog generation for PR tgstation#56107 [ci skip]

* Upgrade extools version (tgstation#56104)

thanks willox. fixes the game not working on BYOND 513.1539
.dll is from appveyor for the v0.0.7 tag: https://ci.appveyor.com/project/MCHSL/extools/build/job/gbyo64ou0ny01g75/artifacts

* Removes the firealarm from the meta freezer, it activated at roundstart due to the cold. (tgstation#56106)

* Automatic changelog generation for PR tgstation#56106 [ci skip]

* Fix runtime in bolts hallucination (tgstation#56108)

Fixes requesting .len from null when the list was never initialized.

* Automatic changelog generation for PR tgstation#56108 [ci skip]

* [bounty code moment] Adds a way to view the 'Server's Last Round' (tgstation#55646)

* Adds "View Last Server Round Report" option.

* Automatic changelog generation for PR tgstation#55646 [ci skip]

* Now brain trauma paralysis works in arms as intended (tgstation#56105)

Fixing issue tgstation#56076 making arms affected by the corresponding brain trauma. Fixing brain trauma paralysis in non-human limbs is impossible without a partial or complete refactor of paralysis code or species code, and since this situation happens very rarely, I doubt someone want to waste time in this. But if someone wants to do it anyway feel free to ask me about how it can be done.

* Automatic changelog generation for PR tgstation#56105 [ci skip]

* Fixes double catwalks on Delta Station. (tgstation#56110)

Removes double and triple catwalks from DeltaStation map.

* Automatic changelog generation for PR tgstation#56110 [ci skip]

* Added autofocus for the first button in the TGUI list input. (tgstation#56114)

Ported over from https://gitlab.com/cmdevs/colonial-warfare/-/merge_requests/647
When you open the TGUI list input, it'll auto-focus the first element so that you can easily navigate with the arrow keys without having to click on the page beforehand.

Small QoL when opening the thing, don't have to click on it if you want to navigate via arrows keys, etc.

* Automatic changelog generation for PR tgstation#56114 [ci skip]

* Automatic changelog compile [ci skip]

* [READY] Changes MetaSec Offices Layout, lathe location, and adds walls to maintenance by upload. (Attempt 2) (tgstation#55971)

* Try 2

* Missed the edits by Upload

* Someone threw the sec couch out the airlock.

* Added a few officer spawns

* Junk commit for mergability testing

* Yet another junk commit

* lathe moved.

* That gosh darn sec lathe has been moved with prejudice. Tricksy lathe.

* Automatic changelog generation for PR tgstation#55971 [ci skip]

* Revert "Finishes the allocation refactor (tgstation#55965)" (tgstation#56137)

This reverts commit 87234f3.

* Comms consoles now have a GPS signal. (tgstation#56121)

Helps solve the issue of hidden comms consoles delaying (or forcing) a round end.

* Automatic changelog generation for PR tgstation#56121 [ci skip]

* Fixes null-named painting issue (tgstation#56113)

There was an issue where you could name paintings nothing, which would cause issues with persistency. This was because the stripped_input didn't actually check that you put something in, so the PR adds that check. It now ensures, both when saved and loaded, that there is a title. If not, it sets them to the default 'Untitled Artwork'

* Automatic changelog generation for PR tgstation#56113 [ci skip]

* Prevents everything except carbons, PAIs and cats from resting to fix Ian paralysis (this time with bitflags). (tgstation#56089)

There is now a mobility flag that determines a mob's ability to rest. Only works with living mobs. Most living mobs shouldn't be able to rest, so it's only true for carbons, cats and PAIs. Fixes tgstation#56034. Fixes tgstation#55975 by making borgs unable to rest.

* Automatic changelog generation for PR tgstation#56089 [ci skip]

* Makes hulk more susceptible to cold damage (tgstation#56131)

cl Qustinnus
tweak: Hulks now get more damage from freeze damage, take it in brute, and get the damage at higher temps than normal
/cl

requested by oranges, makes the temp-gun better against hulkies

* Automatic changelog generation for PR tgstation#56131 [ci skip]

* Automatic changelog compile [ci skip]

* Add testing rule to contribution guidelines (tgstation#56147)

Adds a clause to the contributing guidelines that you are expected to have tested your code, which implicitly bans webedited larger PRs. Also updates the wording about changelogs.

* Fix elevators (tgstation#56117)

Currently elevators are broken since they try to use the z level of the assembly inside the button to determine how to move
The assemblies z level is however always 0 and instead the z level of the button containing the assembly must be used
This fixes this

* Automatic changelog generation for PR tgstation#56117 [ci skip]

* Fix briochecake icon, add tastes and foodtypes (tgstation#56125)

- Adds a missing `icon_state` to the full brioche cake
- Adds `SUGAR` to the brioche cake's and slice's `foodtypes`, as they're glazed (according to the description)
- Adds butter and cream to the `tastes` as well

* Automatic changelog generation for PR tgstation#56125 [ci skip]

* var/hacked now actually does something in vendor spawners (tgstation#56144)

Oversight made by @TiviPlus when making tgstation#55147
var/hacked wasn't actually used in code and instead, all spawner vendors were instantly hacked.
fixes tgstation#56101

* Automatic changelog generation for PR tgstation#56144 [ci skip]

* Common Build Tooling (tgstation#55373)

Add Common Build Tooling

## Information for Developers

On Windows, the build scripts will automatically install Node. Other 
platforms should use their package manager or download it from 
https://nodejs.org/en/download/

Pick one:

- VSCode: `Ctrl+Shift+B`
- VSCode: `F5` (build & run with debugger) or `Ctrl+F5` (build & run 
  without debugger)
- Windows: double-click root `Build.bat` (pause to see output) or 
  `tools/build/build.bat` (no pause)
- Git Bash and non-Windows: `tools/build/build`

## Information for Server Admins

- TGS scripts will automatically install the version of Node specified 
  in `dependencies.sh`
- Either use this build script, or compile tgui by running any script 
  in `tgui/bin` folder.

## Details

Both dm and tgui are now built with a single script. It's pretty easy 
to launch: just press `Ctrl+Shift+B` in VSCode, and tada! 🎉 

**It's smart.** It will skip certain steps if source files were 
untouched for that step. So, if you're only touching dm code, it will 
only rebuild dm code, and will skip tgui.

**Syntax is fairly readable and maintainable.**

```js
const { Task, runTasks, exec } = require('./cbt');

const taskTgui = new Task('tgui')
  .depends('tgui/yarn.lock')
  .depends('tgui/packages/**/*.js')
  .provides('tgui/public/*.bundle.*')
  .provides('tgui/public/*.chunk.*')
  .build(async () => {
    await exec('tgui/bin/tgui');
  });

runTasks([taskTgui]);
```

**This is a long term solution to the js bundle hell.** Now that we 
have a single script to build everything, bundles have been excluded 
from the repo, and they will no longer cause conflicts in PRs. This 
results in quicker PR turnaround time and less time wasted on 
rebuilding tgui for PRs.

**CI pipelines have been updated.** They're not coded in the most 
optimal way, just making them green for now.

## Possible future work

- Support compiling with DM defines by passing them as an argument, 
  like `-D LOWMEMORYMODE`.
- Instead of explicitly listing the task sequence in `runTasks()`, 
  support specifying tasks in `.depends()`, which in turn will allow 
  building a graph of dependencies and running things in parallel.

Co-authored-by: Tad Hardesty <tad@platymuus.com>

- Add root Build.bat
- Add trio of tools/bootstrap/ scripts for Node
- Add tools/build/README.md
- Ensure build script and VSC configuration works properly on Linux
- Update TGS4 PreCompile scripts

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>

- Keep PreCompile scripts compatible with TGS3 as well
- Update LinuxOneShot PreCompile scripts
- Update TGS4 configuration

* Fixes checking a person's inventory requiring a do_after and causing a buckle notification. (tgstation#56153)

`/atom/movable/proc/mouse_buckle_handling(mob/living/M, mob/living/user)` has functionality that is too generic for `/mob/living/carbon/human/`

`/mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user)` contains code that is better suited for `mouse_buckle_handling()`

`/mob/living/carbon/human/MouseDrop_T()` results in a call stack that calls the generic `/atom/movable/proc/mouse_buckle_handling()` when the prerequisites for piggybacking or fireman carrying are not satisfied. But this makes no sense and means that when the game state is such that you should be inspecting the inventory, the game state is ALSO such that you are attempting to erroneously buckle a player to yourself.

In addition, `MouseDrop_T()` should really not be holding mouse buckling logic in this scenario. As a result, this proc override has been removed from /living/carbon/human entirely. All functionality has been shifted into an overriden `mouse_buckle_handling()` at the /living/carbon/human level.

Piggybacking and fireman carrying now actually return a value on success.

Finally, if we have successfully handled the MouseDrop_T event through a parent proc call chain, we no longer go on to show the mob's inventory.

All these tweaks combined mean that you can now click-drag to view inventories without a do_after and without attempting buckling, /mob/living/carbon/human buckling logic is now appropriately in `mouse_buckle_handling()` and no longer falls through to generic buckling checks, which is not relevant when trying to air quotes "buckle" a mob to a /mob/living/carbon/human. Successfully buckling a player to yourself (in this scenario through fireman carrying) no longer opens the inventory window.

I have tested the following behaviours and they work as intended.

- [x] Piggybacking
- [x] Fireman carrying
- [x] Inspecting inventory of /mob/living/carbon/human
- [x] Inspecting inventory of /mob/living/simple_animal/pet/dog/corgi/ian
- [x] Buckling /mob/living/carbon/human to a chair.
- [x] Buckling /mob/living/simple_animal/pet/dog/corgi/ian to a dog bed.

* Automatic changelog generation for PR tgstation#56153 [ci skip]

* Fixes ghost_roles spawning as transgenders. (tgstation#56151)

About The Pull Request

An oversight made in tgstation#51058. Almost every other source of changing gender was complete with changing body_type as well, but not the ghost_role spawners.

Right now ghost roles can spawn with one gender, but get the other body_type.
This results in looking at "her", while the person in question got a surprise.

For such things, we already added "Other" gender.


cl
fix: Ghost roles can no longer spawn as a male with female body_type and vice-versa.
/cl

* Automatic changelog generation for PR tgstation#56151 [ci skip]

* Automatic changelog compile [ci skip]

* ID Card access change logging, Part 2 (tgstation#56155)

I've condensed the logging into a single define, to allow ID card logging to be easily tweaked and to clean up some messy copy-pasted code.

There is no longer admin messaging for Head of Staff accesses, but it's all still logged as it was before.

There is a new option for the Investigate verb.

Which has the complete logging history for ID card changes that are currently tracked, all in one place.

Which admins can ALSO access from Get Current Logs and Get Server Logs for past rounds via id_card_changes.html

* Automatic changelog generation for PR tgstation#56155 [ci skip]

* Fixes comms console runtime that stops you paying off pirates (and reply to any other messages) (tgstation#56135)

This is because JS-side it does a string concat instead of integer addition at messageIndex + 1, as messageIndex is a string and nothing in JS is typed because it is an evil programming language that is a cross between Hitler and Skeletor, with piss of pure liquid malevolence.

We appropriately parse the messageIndex to an int radix 10 before adding 1, and everything just works.

Also removes two text2num conversions following a recent tgui change that made this no longer necessary.

* Automatic changelog generation for PR tgstation#56135 [ci skip]

* Icebox Xenobio maint fixes (tgstation#56139)

Fills in a hole in Icebox lower Xenobio maint causing active turfs and replaces a magic locker that I'm told is unintentional with a regular one.

* Automatic changelog generation for PR tgstation#56139 [ci skip]

* fixes grenades with prox sensors (landmines) not working (tgstation#56150)

* Automatic changelog generation for PR tgstation#56150 [ci skip]

* Improves Bleeding Feedback + Misc Wound/Organ Decay Tweaks (+ Removes Teeth) (tgstation#56056)

* Automatic changelog generation for PR tgstation#56056 [ci skip]

* Update build process in documentation (tgstation#56173)

Building tgstation is a bit different nowadays, so I've updated the 
docs a bit.

* Makes build all default task in vscode. (tgstation#56178)

* Update Dockerfile for CBT (tgstation#56175)

Follow-up to fix the failing Docker CI on master.

- Reorganize the entire Dockerfile to be more readable
- Inline the tgstation/byond Dockerfile into our own, so we can change the base distro at will
- Also allows us to trash the dependencies.sh<->Dockerfile hack
- Use 32-bit libs on a 64-bit distro so that we can download and run recent 64-bit Node binaries
- Call tools/build/build rather than DreamMaker directly

* Force UTF-8 encoding in tools/bootstrap/node_.ps1 (tgstation#56177)

* Try to not do anything after calling TgsReboot() (tgstation#56161)

We want to use the script TGS executes when calling this to do ops stuff

* Replaces iftrue for scope building with do while in compile overlays (tgstation#56159)

* Updates Contribution Guidelines regarding Prior Approval for Station Maps (tgstation#56166)

Updates the contribution guidelines to require the addition, removal or replacement of station maps to require prior approval before making the PR.

Ultimately shouldn't change much about how the PRs are handled, but gives an early warning that approval should be sought and should help cut down on lost time mapping if I would reject a PR outright. With how long station maps take to make, prior warning that it outright won't be merged is, in my opinion, good.

* Explosive lance icons update properly (tgstation#56164)

Fixes tgstation#56154. Spears were missing an update_icon on initialize, this adds one. Now, spears will show their grenade upon construction. Works just fine in testing.

* Automatic changelog generation for PR tgstation#56164 [ci skip]

* Wooden tables now obey The Law of Conservation of Mass (tgstation#56156)

## About The Pull Request
Fixes Issue tgstation#56152 making wood tables deconstruct at they should be.

Bug vivisection:
Okay, see here? This is the proc for creating a table, we can introduce three arguments. One of them is _buildstack. _buildstack overrides Buildstack on initialize, a variable used for storing the type of raw "ore" that the table is supposed to drop in deconstruction. Here is supposed to be null unless we want to override the buildstack with another ore.

```DM
/obj/structure/table_frame/proc/make_new_table(table_type, custom_materials, _buildstack) 
	var/obj/structure/table/T = new table_type(loc, _buildstack)
	T.frame = type
	T.framestack = framestack
	T.framestackamount = framestackamount
	if(custom_materials)
		T.set_custom_materials(custom_materials)
	qdel(src)
```

What happened? The proc for building a wood table from a wooden frame, shown below, passed the "type" variable, used for storing the type of table_frame, as a _buildstack argument to the make_new_table proc. This overrides the buildstack variable of the final wooden table, causing it to drop a wooden frame as it was an ore on deconstruction. 

```DM
/obj/structure/table_frame/wood/attackby(obj/item/I, mob/user, params)
[...]
		if (toConstruct)
			if(material.get_amount() < 1)
				to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
				return
			to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
			if(do_after(user, 20, target = src) && material.use(1))
				make_new_table(toConstruct, null, type)
```
This is funnier (not very much, to be honest) when we consider that deconstructing with a screwdriver would drop a frame normally, causing it to drop two frames. We could repeat this ad nauseam, essentially cloning wood frames in place as we pleased.

So TL;DR: this is another of those simple but hard to hunt bugs that would be prevented with testing and a null on its right place.

* Automatic changelog generation for PR tgstation#56156 [ci skip]

* Allow dynamic to be configured when used as the forced secret mode (tgstation#56122)

Allow dynamic to be configured (roundstart rulesets) when used as the forced secret mode

* Automatic changelog generation for PR tgstation#56122 [ci skip]

* Makes excited breakdowns independent of adding new turfs. This prevents the dreaded stationwide firelock, at least mostly, and moves us away from being dependant on room size. As a downside, we're closer then ever to ZAS. This also allows us to raise the breakdown timer and decrease the amount of overtime experienced in each tick. (tgstation#56081)

## About The Pull Request

This prevents the dreaded station-wide firelock, at least mostly, and moves us away from being dependent on room size. As a downside, we're closer then ever to ZAS, and the transition between pre-breakdown and post-breakdown is a lot more visible. This also allows us to raise the breakdown timer and decrease the amount of overtime experienced in each tick.

See video, I'm not sure I'm happy with the current rate, it does look somewhat shit. I'm considering tweaking the alpha curve for gas visuals to try and make it look less not good. [Video](https://cdn.discordapp.com/attachments/326831214667235328/797766078389813298/2021-01-10_01-55-53.mp4)

Closes tgstation#56066

## Why It's Good For The Game

Station spanning excited groups are rarer, and will settle down more often. Cold things like space will cool down their group faster, preventing station spanning non updating excited groups.

* Automatic changelog generation for PR tgstation#56081 [ci skip]

* separates malf ai from traitor dynamic ruleset (tgstation#56090)

Separates malf ai from traitor so admins can treat it separately

* Automatic changelog generation for PR tgstation#56090 [ci skip]

* Redone Metastation Science (tgstation#55867)

* fixed conflicts

updated the branch and pasted in all the changes again, conflicts and all roundstart turf diffs should be gone now

* Update MetaStation.dmm

Opened up the cytology lab directly to xenobio, its all one room, with shutters to lockdown cytology in case of an emergency - Nari

* Update MetaStation.dmm

softened some internal walls on xenobio sat, they dont need to be reinforced, added a small weakpoint to xenobio sat, its not a secure area and doesnt need to be a roundstart gigafort, removed the windows the buttons were on for the slime pens, buttons directly on windows looks bad, replaced with a table - Nari

* Remove minor tweak

remove the biobag and labcoat tweak from this branch

* Update MetaStation.dmm

tile under a door had a random disposals pipe, but missing a wire. fixed - Nari

* Update MetaStation.dmm

fixed merge conflict

* Update MetaStation.dmm

why???

* Update MetaStation.dmm

fix?

* Update MetaStation.dmm

cant fix sorry

* Update MetaStation.dmm

trying a fix

* fixed conflicts?

i think this fixes it?? - Nari

* Update MetaStation.dmm

Added experimentor - Nari
re-tiled sec post -Nari
rearranged mech bay so it actually works - Nari
re-did the connection between xenobio and the cytology area - Nari
added a few requests consoles - Nari
added a sci drobe - Nari
removed one of the extra deliveries areas - Nari

* Update MetaStation.dmm

fixed the department request consoles departmentType and name - Nari

* Update MetaStation.dmm

fleshed out the support line for the bomb site - Nari

* Update MetaStation.dmm

removed lattices under catwalks, hopefully this fixes

* Update MetaStation.dmm

fix

* Automatic changelog generation for PR tgstation#55867 [ci skip]

* Makes the manifest always have a certain department order (tgstation#55917)

Makes the manifest always have a certain order to the departments in it.

* Automatic changelog generation for PR tgstation#55917 [ci skip]

* Infinite Gun Culling: Gun Kit Edition (tgstation#56133)

Every prototype firearm in the game now utilizes crafting to construct it, usually sacrificing a standard version of that firearm in order to produce the new one. The guns are made using gun part kits you print from the security protolathe (or buy, in the case of hellfire lasers).

* Automatic changelog generation for PR tgstation#56133 [ci skip]

* Use draft pull requests instead of the 'Work In Progress' and 'Needs Review' labels. (tgstation#56168)

* Automatic changelog compile [ci skip]

* 513.1536 is the stable BYOND version (tgstation#56182)

* Stack overflow detection for the Master Controller. (tgstation#56008)

* Stack overflow detection for the Master Controller.

Using a weakref, we can detect if the mc's stack was ended by byond due to a stack overflow, and restart it without waiting the entire defcon countdown in the failsafe controller.

I built a system around this concept under /datum/stack_end_detector and deployed it to the MC's main loop with checks in the failsafe controller.

* Makes wayfinding great again (tgstation#56055)

Interacting with the wayfinding pinpointer dispenser recently after leaving it untouched basically since I added it I realised it has a bunch of bad design decisions that make it unpleasant to interact with so while this can never solve the lack of desirability of the pinpointers themselves hopefully it prevents the machine from contributing to the problem.

* Automatic changelog generation for PR tgstation#56055 [ci skip]

* Fix Docker build failing on a clean checkout (tgstation#56190)

Follow-up to tgstation#56175 which turned out to be accidentally relying on Node already being downloaded.

* Makes the rest of large guns bulky (sans traitor objectives and a few others) (tgstation#56132)

## About The Pull Request

What it says on the tin.
Practically everything but pistols, SMGs, and traitor weapons can no longer be stashed into bags.

I had considered making some large guns that traitors can order (like the blast cannon) also bulky, but concealment is important for some of those things.
However, the bulldog shotgun and sniper rifle have been made bulky, because they're shotguns and sniper rifles!

Traitor objectives are still normal size and can fit in backpacks.

## Why It's Good For The Game

Makes previous changes to weapons and thus balance consistent across our full list of guns. Players can clearly understand what can fit in the bag based on the size of the weapon.

* Automatic changelog generation for PR tgstation#56132 [ci skip]

* Superior auto comment blocks VSCode extension (tgstation#56194)

* Adds toggling shower's refills (tgstation#55895)

Adds the ability to toggle showers water reclaimers with a multitool
Adds some delta_time handling to showers.

* Automatic changelog generation for PR tgstation#55895 [ci skip]

* Fixes parallax runtime when observing someone without client (tgstation#56092)

When observing someone without client (because they for example disconnected) a runtime happened:
This was because update_parallax didn't take a mob as parameter but instead always updated the parallax of the mob to which the HUD datum belonged (which was the HUD of the person who you tried to observe)
If that mob had no client this caused a runtime.
If you observe someone now the game updates parallax for your client and not the client of the person you tried to observe.

* Automatic changelog generation for PR tgstation#56092 [ci skip]

* [READY] Bespoke Datum Mats (tgstation#55296)

* Bespoke Material Backend

- Adds support for bespoke materials:
  - Reimplements [/datum/material/var/id]
  - Ports GetIdFromArguments from SSdcs
  - Adds a wrapper define for GetMaterialRef
  - Adds [MATERIAL_INIT_BESPOKE]
  - Adds [/datum/material/proc/Initialize]
- Does not actually add any bespoke materials

- [ ] TODO: Code docs
- [ ] TODO: Actually adding bespoke materials

* Some has_material procs and cleaning up some spaghetti

- Adds a pair of has_material procs for use in checking whether a given atom has a given material

* Adds meat

- Adds bespoke meat variants
  - Does not make them accessible
- Shuts up the linter

* Implements bespoke meat

- Makes the material container preserve bespoke materials
- Makes the sheetifier accept bespoke materials
- Makes the autolathe accept bespoke materials
- Makes the gibber produce bespoke meats

* Makes butchering produce bespoke meats

This is jank and really needs to be folded into a unified butchering and gibbing system

* Material documentation

- Adds, fixes, and touches up some documentation

* Material container insertion callback

- Changes the proc used to expand the material container's material list ot a proc used to check whether a material fits into a material container
- Instantiating new materials is no longer O(n) relative to the number of autolathes in existence.

* Makes processing meat conserve materials

- Makes bespoke meat carry over into meatballs

* Makes preserving custom materials an option

- Implements the ability to turn preserving custom materials _off_ for processor recipes

* Fixes all bespoke materials of the same type using the same singleton

- We use ids now, not just types.

* Makes the fat sucker produce bespoke meats

- Because consistency is good.

* Fixes autolathes merging bespoke stacks into normal stacks.

* Makes the callback to test materials for holdibility optional

- @floyd

* GetMaterialRef -> GET_MATERIAL_REF

- We capitalize macros.

* Removes an extraneous callback

- Makes the sheetifier use functionality I didn't notice I implemented a few commits ago.

* Makes mob and species meat null compatible

* Fixes the ore silo

- The ore silo had really snowflake material handling that has been brought in line with the rest.
- The materials should show up in the correct order.

* Fixes minor lathe bugs

- Fixes stack_traces caused when lathes tried to fetch materials using reagent typepaths
- Fixed the selective reagent disposal topic. I have no idea how long this has been broken.

* Various documentation fixes

- Clarified a couple comments
- Removes an extraneous ?. operator
- Fixed mat floor tiles having bugged reagent temperatures

* More fixes

-/datum/material/meat/mob -> /datum/material/meat/mob_meat
- Adds atom typecheck to material containers.

* Fixes old typepaths

* Automatic changelog generation for PR tgstation#55296 [ci skip]

* Fixes showers overexposing washed targets (tgstation#55894)

Makes showers consistently expose washed atoms to 5u of their internal reagents
Makes showers effectively double the reagents targets are exposed to as per a comment by ArcaneMusic

Apparently there were balance concerns over synthflesh showers capable of instantly healing and de-husking anyone you put under them.

* Automatic changelog generation for PR tgstation#55894 [ci skip]

* Temperature Pump Sanity (tgstation#55926)

* fix temperature pump

* Cleanup and ui stuff

* Punctuation is important you know

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>

* tgui rebuild

Co-authored-by: Ghilker <minefap44@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>

* Add weakref support to qdel (tgstation#56171)

qdel() should allow usage of weakrefs to avoid harddels on long duration qdel_in usage

* invert an if statement in beefmen code

linter was complaining about returning inside a spawn call and this made enough sense to just flip

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: spessbro <51048066+spessbro@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Vladimir Veisman <v.veisman@fl45h13.me>
Co-authored-by: Azarak <azarak10@gmail.com>
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: Coffee <CoffeeDragon16@gmail.com>
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Coastfront <50342376+Coastfront@users.noreply.github.com>
Co-authored-by: coiax <jack@billbuddy.co.uk>
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: EgorDinamit <53223414+EgorDinamit@users.noreply.github.com>
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: Emmanuel S <mrdoomboyo@gmail.com>
Co-authored-by: Manybones <miguelbasket1@gmail.com>
Co-authored-by: Cartographer-D <63861499+Cartographer-D@users.noreply.github.com>
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Alex 'Avunia' Takiya <git@takiya.cloud>
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Ghilker <minefap44@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: windarkata <windarkata@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Fix Rewrites a bug so it appears in different circumstances
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants