* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`
* Patches up merge skew (#80197)
## About The Pull Request
Yeah #79968 (1e76fd70b4) was not
compatible with master but no one said anything on the PR so i got
jebaited into merging it. The code should be up to the same standards
per the documentation I read (preventing thwacking the target in certain
situations while not returning anything in other situations)
master will definitely compile now though
* Patches up merge skew
* Merge conflicts
* Modular adjustments
* Removes this entirely duplicated proc...
* Update tool_override.dm
* Update weldingtool.dm
* Update tool_override.dm
* Update tool_override.dm
* Nope. Copy paste begone.
A skyrat edit is so much easier to deal with here
* Update brand_intelligence.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* QOL improvements to display case chassis (#77785)
## About The Pull Request
Display case chassis now has
Examine Hints
Screentips
Balloon alerts
Also moves wrench deconstruction to wrench_act, removes single-letter
vars, cuts down on copy paste, and makes the electronics drop when
deconstructed.
## Why It's Good For The Game
I am actually bored and looking for things to do.
Someone asked how to build a display case, I didn't even know myself so
I looked up in code how to, and saw features I didn't even know existed.
Thought I might as well make it all visible to players so they can take
full use of them.
## Changelog
🆑
qol: Display case chassis now uses balloon alerts, screentips, examine
hints, etc. Basically, the construction steps are more visible to
players.
/🆑
* QOL improvements to display case chassis
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts
* Update communications.dm
* Modular override
* Some modular adjustments, removes 'emagged' vars in favor of obj_flags
* whoops, mobs don't have obj_flags.
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Icon folder cleaning wave one
* Fixe a merge conflict
* Fixes some more merge conflicts
* Fixes some modular icon paths
* Fixes even more modular icon paths...
Hopefully that's the last of them
* Fixes some merge discrepencies
* More merge issues
* ok
* not ok
---------
Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Standardize Welder Fuel Usage (#76021)
Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel
After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.
resolves#55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑
* Standardize Welder Fuel Usage
---------
Co-authored-by: Couls <coul422@gmail.com>
* Makes a whole bunch of wooden objects flammable (#74827)
## About The Pull Request
This whole PR started because I realized that baseball bats are not
actually flammable which I found weird, then I looked at a whole bunch
of other stuff that really should be flammable but also isn't.
## Why It's Good For The Game
Makes wooden objects behave slightly more consistently? Honestly, most
of these seem like oversights to me.
## Changelog
🆑
balance: The following structures are now flammable: Picture frame,
fermenting barrel, drying rack, sandals, painting frames, paintings,
spirit board, notice board, dresser, displaycase chassis, wooden
barricade
balance: The following items are now flammable: Baseball bat, rolling
pin, mortar, coffee condiments display, sandals, wooden hatchet, gohei,
popsicle stick, rifle stock
/🆑
* Makes a whole bunch of wooden objects flammable
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind
* Fixes the conflicts and makes shit compile!
* Fixes other things that didn't show up because I hadn't updated
* Fixes the lints.
* Okay NOW it's ready (please don't add anything else that touches blindness I beg you)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.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>
* TGUI input box conversions 2 (#63395)
More text inputs converted to tgui, TGUI text and number input now more sanely handles ENTER key being pressed, you can now press anywhere in the window to enter the input. TGUI text input now considers placeholder text for the default valid state. IE, if there is default text you can press enter immediately without having to rewrite it just to recheck validity. Fixes: useSharedState => useLocalState. not only was sharedstate not needed but it opened up the ui to vulnerabilities
* TGUI input box conversions 2
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed
* Fixing conflicts
* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)
* Removing more lingering rad armor (woo)
* Damnit powerarmors
* Bye bye rad collectors!
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Adds set_density()
Fixes one instance of a duplicate density assignment on an object.
Comments two hacky usages of density which will have to forgo using the setter for now.
Lets us append code to the event of density changing.
Pretty sure this is leading up to some multitile object thing -Lemon
Co-authored-by: Rohesie <rohesie@gmail.com>
* Makes canister leaking and blowing up use a component and element respectively (#59075)
I want to use this behavior on some other things so into a component and element it goes. Gas leaking is handled by a component so it can process whereas the object breaking and causing an explosion is handled by an element. Some minor changes were made so canisters were more consistent in leaking.
* Makes canister leaking and blowing up use a component and element respectively
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Allows you to repair trophy cases (the ones found in the library) (#58588)
Apparently you haven't been able to repair these for the last four years.
Fixes#27926 (Trophy cases being perma broken)
All other display cases can be repaired, why shouldnt this one be able to.
* Allows you to repair trophy cases (the ones found in the library)
Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
* Vend-A-Trays can be moved onto tables (#56503)
Vend a trays are mapped onto kitchen tables and bar counters. They can't be moved back onto the table with deconstructing the table. This gives them the table passflag, allowing them to be just moved back onto the tabletop.
* Vend-A-Trays can be moved onto tables.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Vend-a-trays can sell anything! (#56018)
Vend-a-trays can now accept any item, not just food and drinks.
* Vend-a-trays can sell anything!
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
* Food processors and microwaves now respect food trays (#54927)
Really it's a bandaid as it would be better to wait until the refactor is done, but it turned out to be a rather easy fix.
Food trays may now once again mass insert both new and old food into the microwaves and food processors.
Prevents any manual handing when cooking large quantities of food at once.
Also, you get the switch gathering mode button when being given the serving tray again.
* Food processors and microwaves now respect food trays
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Non-human mobs can now benefit from held id cards and economy. (#54647)
* Non-human mobs can now benefit from held id cards and economy.
* Moved these getters toward the upper end.
* oui?
...
dump eet.
* .tee pump
...
?iuo
* Non-human mobs can now benefit from held id cards and economy.
Co-authored-by: Rohesie <rohesie@gmail.com>
* Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Merge pull request #52727 from MrMelbert/touchyfeely
Allows blind people to touch things to examine them
* Allows blind people to touch things to examine them
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
* Converts everything to use setAnchored() + other fixes
* Fixed singulo debug
* singulo again
* forgot to move the vv_edit proc
* caught that this time :)
* changes
* Update code/game/atoms_movable.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* Initial commit, updates trays into 2020
* Adds vend-a-trays as a service machine, without it being a machine.
* Replaced the mapped vend-a-trays with service unique versions.
* "YoUr BuIlD DiFfErS fRoM mAsTeR"
* Removes {}s from img, workin on the other part
* All my homies recompile on merge conflict
* Fixes end of line because honestly there must be no god on this green earth
* hopefully this isn't too excessive.
* How's this?
* Applies Anturk's Confirm suggestion.
* Shipped, workshopped with style a bit
* Alright that's probably enough fiddling for now
* Rebuilds.