* Makes speed setting affect disposals outlet range and alters emag behaviour (#75562)
## About The Pull Request
Adds range per setting on disposals outlets, meaning packages (or
weapons) can be launched further and, at it's highest settings,
embed/hurt or break bones. Also, makes the emag effect automatically
switch to the highest speed/range and doesn't allow it to go below it.
## Why It's Good For The Game
Cargo techs have very few antaggy things under their jurisdiction and
leaves few options. With disposals becoming more commonly used as a
fantastic option for delivery, adding more meaningful ways to sabotage
it would offer more options. Also, this opens up lots of opportunities
for traps.
## Changelog
🆑
add: Made disposals outlets launch with more range depending on the
setting used
add: Made disposals outlets emag effect irreversible without
reconstruction
/🆑
---------
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
* Makes speed setting affect disposals outlet range and alters emag behaviour
---------
Co-authored-by: zeckle/licks-the-crystal <79835169+mikederkan@users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
* Removes obsolete obj_flags flag (#75356)
This flag is literally only used in two objects in the game and
seemingly does nothing
* Removes obsolete obj_flags flag
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Fixes a logic error in disposal bin hitby (thrown objects don't always have a throwing mob) (#73296)
A throwing datum does not always have a throwing mob, and code should
respect that
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Wrapping paper fixes. (#73803)
## About The Pull Request
This, as the title suggests, fixes some wrapping paper bugs.
First, wrapping paper coloration has been rebound to Alt+click, so the
control doesn't conflict with extracting wrapping paper from a roll,
which is right click. Originally, both of them were on right click,
which caused problems.
Second, it fixes a problem with the greyscale icons on the gifts
themselves. They were showing up as the default gift icon, no matter
what color you selected, because the automatic path generation wasn't
set up properly. This fixes that.
Fixes#73800.
## Why It's Good For The Game
Bugs are bad, and we should try to fix them.
## Changelog
🆑
fix: Gifts you wrap will now display their greyscale colors as they're
supposed to.
fix: Wrapping paper color selection has been rebound to Alt+click, to
fix a bug where both wrapping paper color selection, and extracting
wrapping paper from a roll were both bound to right click.
/🆑
* Wrapping paper fixes.
---------
Co-authored-by: sergeirocks100 <31294280+sergeirocks100@users.noreply.github.com>
* Fixes getting IC spam filter'd for rummaging as a regal rat (#73566)
## About The Pull Request
Fixes#73562
Adds ignore spam and forced tag to the regal rat forcesay
## Why It's Good For The Game
Bugfix
## Changelog
🆑
fix: fixed regal rat rummaging lines sometimes getting you muted!
/🆑
* Fixes getting IC spam filter'd for rummaging as a regal rat
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Makes some improvements to how AI can use JPS with movement loops (#72685)
## About The Pull Request
This PR makes some changes to how JPS is used in movement loops, as it
was causing a variety of issues:
- Fixed some code where JPS would fail because the path is still being
made. Instead, the movement loop will now wait.
- Reduced the subsystem wait for the pathfinder subsystem from 2 seconds
to 0.1 seconds. @ LemonInTheDark told me that this is better, I'll update
this with a better explanation once I squeeze it out of him :D
- Allows you to provide an initial path to the movement loop, in case
you pre-calculated one while making a plan.
## Why It's Good For The Game
Makes working with JPS a bit easier when making AI.
---------
Co-authored-by: Capybara <Capybara@ CapybaraMailingServices.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Makes some improvements to how AI can use JPS with movement loops
---------
Co-authored-by: CapybaraExtravagante <110635252+CapybaraExtravagante@users.noreply.github.com>
Co-authored-by: Capybara <Capybara@ CapybaraMailingServices.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
Package delivery sorter fix, autodocs (#72865)
## About The Pull Request
On some maps, there is a special disposal sorting pipe, which checks if
the `tomail` var of a disposal holder. However, this has been only be
set on the parent disposal object. The delivery chute and the disposal
bin overrode this behaviour without a parent call. I have elected to
remove the two identical overrides, and move their contents to the
parent, while also swapping out the `1` to the correct sorting define of
the same value. I have also updated the disposal holder object merging
proc.
I have also autodocced proc and var definiton in the files I have
touched.
## Why It's Good For The Game
Now once again, the wrapper sorter objects will detect wrapped packages,
and on maps that support them, will be redirected to the mail outlet
chute (along with any other item in the same holder object as usual),
instead of the trash outlet chute.

## Changelog
🆑
fix: Bundles of disposal packages that contain a wrapped parcel will be
now successfully redirected by the wrapping sorters
/🆑
Co-authored-by: Profakos <profakos@gmail.com>
* [no gbp] removes all duplicate armor datums (#72354)
closes#72348
Title
My bad
Heres the script I used this time if you want to
```cs
var baseDir = Environment.CurrentDirectory;
var allFiles = Directory.EnumerateFiles($@"{baseDir}\code", "*.dm", SearchOption.AllDirectories).ToList();
var known = new Dictionary<string, List<KeyValuePair<string, int>>>();
foreach (var file in allFiles)
{
var fileLines = File.ReadAllLines(file);
for (var i = 0; i < fileLines.Length; i++)
{
var line = fileLines[i];
if (line.StartsWith("/datum/armor/"))
{
var armorName = line.Replace("/datum/armor/", "").Trim();
if (!known.ContainsKey(armorName))
known[armorName] = new List<KeyValuePair<string, int>>();
var knownList = known[armorName];
knownList.Add(new KeyValuePair<string, int>(file, i));
}
}
}
Console.WriteLine($"There are {known.Sum(d => d.Value.Count)} duplicate armor datums.");
var duplicates = new Dictionary<string, List<int>>();
foreach (var (_, entries) in known)
{
var actuals = entries.Skip(1).ToList();
foreach (var actual in actuals)
{
if (!duplicates.ContainsKey(actual.Key))
duplicates[actual.Key] = new List<int>();
duplicates[actual.Key].Add(actual.Value);
}
}
Console.WriteLine($"There are {duplicates.Count} files to update.");
foreach (var (file, idxes) in duplicates)
{
var fileContents = File.ReadAllLines(file).ToList();
foreach (var idx in idxes.OrderByDescending(i => i))
{
string line;
do
{
line = fileContents[idx];
fileContents.RemoveAt(idx);
}
while (!String.IsNullOrWhiteSpace(line));
}
File.WriteAllLines(file, fileContents);
}
```
* modular
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* [ready] unit tests all worn icons (#72370)
Fixes#71692🆑 ShizCalev
code: Added a unit test for ALL worn icons.
fix: Fixed a bunch of broken worn icons!
/🆑
* [ready] unit tests all worn icons
* Should have fixed most of the failures now
* Here, hopefully that should fix what was left
* Okay maybe it just hadn't been fixed yet
* I can be a bit dumb sometimes
* Okay, now it's going to work, I promise
* I'm so tired of this
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Changes the missing food icon test to cover ALL /obj's
* Update implant.dm
* Hopefully fixes all the failing integration tests!
* Fixes more missing icons
* Even more icon fixes
* Hopefully that was all of them
* Okay now SURELY that's all of them
* I'm tired of this shit man
* Hopefully that's all, for real this time!
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED
* modular RegisterSignals
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* [GBP Ignore] Disposals pipes now correctly release their contents when destroyed by damage. (#71276)
## About The Pull Request
Disposals pipes didn't correctly release their contents when they were
destroyed by damage, causing anything inside to be deleted. That has
been fixed.
Fixes#71252.
## Why It's Good For The Game
Bugfix
## Changelog
🆑
fix: Fixed disposals pipes qdel-ing their contents when their integrity
hits zero.
/🆑
* [GBP Ignore] Disposals pipes now correctly release their contents when destroyed by damage.
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Allows mobs caught in disposals to escape once they have stopped moving - Take two
* Update pipe and modularize hurtsposals
* oop
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Conveyor speed input fix (#70898)
## About The Pull Request
Fixes a simple text input bug. Earlier you couldn't type in 0.2 for
example because it would get rounded while this is the original speed.
Now it will not get rounded.
## Why It's Good For The Game
## Changelog
🆑
fix: Fixes conveyor speed input.
/🆑
* Conveyor speed input fix
Co-authored-by: Comxy <tijntensen@gmail.com>
* Prevents welding multiple disposals machines to the same trunk (#70551)
* Prevents multiple disposal machines being attached to a single trunk at once.
* Prevents welding multiple disposals machines to the same trunk
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
* Fixes "Attempted to add a new component of type [/datum/component/convey] to a qdeleting parent of type" (#70352)
for(var/atom/A in get_turf(src)) includes qdel'ing atoms.
* Fixes "Attempted to add a new component of type [/datum/component/convey] to a qdeleting parent of type"
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles (#69084)
* - Fixes storage mass transfer
- Brings some sanity to storage procs
- Implements a griddle feature that never was
* Uncomment this
* Right-click attack fix
* Scoop fix
* Smartfridges use silent
* Restores some lost checks
* Fixes storage implants
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles
* update modular
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fixes conveyor belts not updating their sprites immediately when modified with a screwdriver (#69068)
Fixes conveyor belts not updating their sprites immediately when interacted with with a screwdriver
* Fixes conveyor belts not updating their sprites immediately when modified with a screwdriver
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* [MDB Ignore][Bounty][Complete Refactor] Papercode Redux: Too Many Damn Files <Map Conflict Edition>
* Fixes merge conflicts and compilation errors, alongside fixing the joker card to make it fully functional again
* Fixed a bunch of info variables in map files
* Alright this is why I wanted this merged yesterday
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* fixes not being able to click drag storage containers + rmb fix (#68557)
* On the storage datum, properly registers secondary singals to their own secondary procs to handle the different stuff they do.
* Fixes click & drag storage containers by calling them on where they are supposed to be moved to using atom_storage.
* fixes not being able to click drag storage containers + rmb fix
Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com>
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033)
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs
* wew
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Tsu's Brand Spanking New Storage: or, How I Learned To Pass Github Copilot As My Own Code
* Delete storage.dm
* yippee
* shit
* holy shit i am stupid
* more fixes
* fuck
* woops
* Adds multitool tooltip to conveyor switches (#67571)
It's a little known fact you can set how fast conveyor belts are by multitooling the switch. Likely an oversight this tooltip wasn't added along with the rest of them.
* Adds multitool tooltip to conveyor switches
Co-authored-by: YakumoChen <king_yoshi42@yahoo.com>