For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.
This is all back-end code, no new features or functionality from this.
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.
Almost certainly a candidate for test merge.
Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
Runtime map now has a bunch of new areas / items with often-tested
stuffs, and some hard-to-put-at-runtime stuffs.
Runtime map jobs now are positioned to make it faster to reach the
aforementioned often-tested stuffs.
Runtime map doesn't generate an overmap anymore by default, which speeds
up the process.
Runtime map now loads in ~11 seconds instead of ~40 seconds as it was
before.
Updated the maploader to be faster in parsing maps.
Bapi is not engaged anymore if we're only measuring the map size, which
speeds up the process.
In fastboot we do not generate the codexes anymore, which speeds up the
process.
In fastboot and if exoplanets and away sites are not enabled, we do not
parse the map templates anymore, which speeds up the process.
Updated the icon smoothing to be faster.
Optimized cargo area code.
Other optimizations.
Refactored the projectile code, mostly in line with TG's now.
Refactored various procs that are used or depends on it.
Projectiles can now ricochet if enabled to.
Damage falloffs with distance.
Homing projectiles can now have accuracy falloff with distance.
Projectiles have a maximum range.
Muzzle flash is configurable per projectile.
Impact effect of the projectile is configurable per projectile.
Accuracy decreases with distance.
Projectiles work with signals and emits them, for easy hooking up from
other parts of the code.
Meatshielding is now less effective .
Impact sound is now configurable per projectile.
High risk.
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.
This brings an updated system from Baystation, hopefully with speed
increases.
Should be testmerged, ideally with #18895.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
* Refactored do_after to use a flag-based system for options
* More flags
* Ditto
* Use the HAS_FLAG macro
* do_after pass
* Fix burning paper code
* Resolve issues from Fluffy's code reviews
* .
* I wanna set the universe on fire
* dfsaaf
* setup
* dir issue?
* dsf
* Perhaps the script
* saf
* cry
* pain
* sdfas
* Try reintroduction of tag-matcher
* Failed
* Tries to suppress dotnet compile warnings
* Like this maybe?
* woopsie
* Damn pathings
* Hate
* Pragmas
* unlint?
* Maybe?
* GDI
* Redundant ifdef removed and changelog
* Did I forgot the tag matcher, or it was still broken?
* Yea no that script is still broken
* Removed tag-matcher as requested
* *sigh*
* test
* bro what?
* hope
* just fixing the input
* Let's see if we catch it...
* Update the codebase to 515.
* edit that
* WHOOPS
* maor
* maybe works
* libcall and shit
* do that too
* remove that
* auxtools isnt updated so get rid of it
* actually remove auxtools lol
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* Ports a psionic system from Bay.
* Rip out this shitcode.
* shitcoden't
* fixes
* it should work fully now
* Admin fixes
* Remove todos
* remove todos part 2
* Removes psi-armour. We don't need this for now.
* Skrell are now operants. Tweaks coercion.
* Adds thralls.
* Temp removal of psiarmour. Fixes psigrabs.
* Thrall assay.
* fixes
* More fixes
* unused define cleanup
* Log and powers
* Skrell powers are done.
* Update code/modules/psionics/events/mini_spasm.dm
Co-Authored-By: Geeves <ggrobler447@gmail.com>
* Update code/modules/psionics/events/mini_spasm.dm
Co-Authored-By: Geeves <ggrobler447@gmail.com>
* Update code/modules/psionics/equipment/cerebro_enhancers.dm
* did this work???
* jargon
* arrow's fixes
Co-authored-by: Geeves <ggrobler447@gmail.com>
Part 1 in the "why my impact wrench no wrench bolt" saga
tl;dr for end users: combitools / impact wrenches now work on everything their non-powered versions do (except mechs and RIGs, tune in next time on dragon ball Z for that)
essentially all this PR does is murder every istype() check possible that could use a helper function instead, most notably many pen checks with ispen(). it also repaths combitools and powerdrills to /obj/item/weapon so they aren't instantly taken out of contention by half of the known attackby() prompts
I already squashed a couple runtimes here and there from the pen changes and it's possible I missed another because pencode is another scourge upon our lives
Airbubble now has cooling unit capability:
- Airbubble cools down mobs inside with same efficiency as cooling unit and 2 time less charge consumption.
- Require power cell to be attached in order to work.
- When examined it tells what kind of cell is attached and what is the charge of it.
Removes the phantom global definitions that Fowl found.
Fixes:
Game log in GELF not logging proper target.
Pylon attacks not detecting the actual firer of a damaging bullet.
A message in the mixer cooking machine.
A message in airbubbles.
A use_check sanity check in landmines.
Some messages in psych therapy code.
A view() checkk in psych therapy code.
CCIA being unable to announce incoming faxes in some circumstances.
Language whitelists potentially checking the whitelists of the last person to throw a tray in addition to the pref mob.
Fixes some messages/sounds with some custom items.
Fixes a message with digging into the asteroid.
Fixes electrocution code not properly checking for absurdly long hair.
Fixes a broken message in devour.
Fixes a targeting issue with player-controlled hostile ranged mobs.
Fixes failure behavior for modular RnD guns.
Fixes an intent safety check on gun aim.
Fixes the Harvester knock spell potentially not working.
When examined airbubble shows if there is a tank attached to it and what is the pressure of it.
Airbbuble now has a sprite overlay that shows if the bubble is set to use internal tank or not.
This PR does something I should have done at the end of airbubble release.
Changes default airtank from double emergency(10 liters) to engineering extended(6 liters) that is fully filled in with air. I have calculated that fully filled engineering tank would last as much as default filled double emergency.
Adds bullet act to make bubble rip and leak after being shot with projectiles.
Adds important extra checks that I forgot to do, stupid me. Airbubble is no longer a wire fabriactor. Fixes#4911
Removes open/close time for airbubble. Fixes#4912
Fixed bug of creating infinite airbubbles.
Extra important checks.
Opening/closing bubble takes 0.35 seconds.
Folding and deploying bubble takes now 0.45 seconds, and has messages about it.
This PR adds new item - airbubble
The idea is based of this thread.
Adds airbubble - item which when unfolded can provide user with environmental protection, the pressure inside won't be idea, but the oxygen will be enough to last for 20 minutes.
Airbubble properties:
When factory folded it is of normal size, so that it can fit in your internals box or backpack. But when folded manually after usage it is large size, and can only fit in storage like backpack minimal.
Has internal tank attached to it. By default each air bubble comes with double emergency oxygen tank(which can be found in engineering), it has enough oxygen for 20 minutes of usage. Tank can be detaches to be refilled and attach back. You can also attach different kind of tanks and they would work. Example is to attach phoron tank to kill someone, or sleep toxin to make them from breaking out.
Airbubble zipper can be forcefully blocked by wire handcuffs, to kidnap people. To take it out you need to use wirecutters.
Provides with breathable atmosphere, but pressure is just above minimal - meaning that you won't feel that comfortable inside of it
Breaking out when forcefully blocked is possible using resist, it would though make a hole in the bubble making it leak air of tank valve is on and not possible to use to protect yourself from environment.