39 Commits

Author SHA1 Message Date
Batrachophreno 5277251959 Tool behaviors port (#21663)
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.
2026-01-27 08:44:49 +00:00
Batrachophreno 387cee9243 Object Examine Text Overhaul (#20923)
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>
2025-07-21 15:35:14 +00:00
Fluffy df014f9bc0 Mouse drop refactor (#20256)
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.
2024-12-26 14:26:32 +00:00
Fluffy b8902e2e16 Runtime map now loads in ~11 seconds instead of ~40, sped up various other things (#19957)
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.
2024-10-06 21:31:01 +00:00
Fluffy c24b4c7097 Projectile refactoring madness (#19878)
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.
2024-09-23 10:12:57 +00:00
Fluffy a3a4d46fa7 Hitby refactor (#19624)
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.
2024-07-28 20:52:08 +00:00
Fluffy 3e1b9d4170 Repathed /obj/item/projectile to /obj/projectile (#19693)
Repathed /obj/item/projectile to /obj/projectile, same as TG and Bay,
that's pretty much it.
2024-07-27 10:09:46 +00:00
Fluffy 3dc4cce9c2 Minor span refactoring (#19177)
Minor span refactoring
2024-05-19 16:37:29 +00:00
Cody Brittain 9983fca311 Update SSOverlays (ported from Baystation) (#19051)
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>
2024-05-01 07:46:27 +00:00
Fluffy 9afe761db3 Some refactors, DMDoc and UT (#18365)
* dsfa

* accessories fix

* fixed "has been hit by" message with intent check

* sdfa
2024-02-12 15:32:23 +00:00
Matt Atlas 4423d03f2f Adds examine boxes. (#18370)
* Adds examine boxes.

* lint

* what kind of dreams did you dream?

* unlimited

* midgardsormr

* sdsd

* fixes

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2024-02-11 21:58:20 +00:00
Fluffy 51a96cb43e sfad (#18021) 2023-12-24 11:18:41 +00:00
Cody Brittain 0a3dac31e0 Refactored do_after to use a flag-based system for options (#17127)
* 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

* .
2023-09-27 12:17:14 +00:00
Fluffy 870f97c1c7 Icon smoothing subsystem update (#17383)
* sfasdf

* sfsaf

* sadfas

* sdfasdf
2023-09-27 10:23:15 +00:00
Cody Brittain ce5ac79e3c Split examine verb and function, and improve it (#17251)
* Split examine verb and function, and include adjacency and distance checking in examine function

* Fix various issues

* Update code/modules/mob/examinations.dm

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

* Add required define vars

* Update code/game/objects/items/stacks/wrap.dm

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

---------

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2023-09-09 08:07:36 +00:00
Doxxmedearly 70a4a50920 Fixes doubling up on bodybags (#16785)
* Fixes doubling up on bodybags

* Feedback edits
2023-07-21 19:35:09 +00:00
Fluffy 5e1332d60f OpenDream linting (#16468)
* 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...
2023-06-26 17:05:38 +02:00
Matt Atlas dd482c63af Update the codebase to 515. (#15553)
* 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>
2023-01-23 21:21:37 +01:00
Wildkins bb04ba3f87 Typecheck all return_air calls (#15363) 2022-12-19 12:19:41 +01:00
Wildkins c4f1dd15b6 Fix hoist hooks moving through catwalks and lattices (#15281) 2022-12-11 22:58:29 -03:00
Wowzewow (Wezzy) a65ef5cd26 The Crate Animatening, A.K.A. I hate Crate Trigonometry (#13339) 2022-04-30 02:04:15 -03:00
mikomyazaki e59589ec8a Gripper attackby fixes (#13571)
This cannot go wrong, can it?
2022-04-20 22:15:15 +02:00
Wowzewow (Wezzy) 2107f3d20a Cremation animation + refactors and improvements (#10885) 2021-02-01 10:22:15 +01:00
Jiří Barouš cf58a96cc4 Refactors some procs from unsorted.dm helper to better places (#10443) 2020-11-07 11:28:23 -03:00
mikomyazaki 34c6b3ed87 Pulling lockers, chairs, etc. now gives you a slowdown. (#9785) 2020-08-28 20:46:03 +02:00
Wowzewow (Wezzy) 7114d3525f More new sounds and fixes equip sounds (#9464) 2020-08-12 11:17:39 +02:00
Matt Atlas c7c5d44a97 Reworks stasis, reshuffles life order, makes gases use defines. (#9409) 2020-08-09 13:20:06 +02:00
Matt Atlas c087a0a0bf Ports a psionic system from Bay. (#7717)
* 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>
2019-12-24 11:32:05 +01:00
Werner af16a489a6 Removes Weapons (#7415)
* Adds icon and hitsound where needed.

* Moves alt_attack to /obj/item and deletes weapons.dm

* Replaced /obj/item/weapon with /obj/item

* Fixes merge issues.

* Fix merge issues.
2019-11-16 18:36:13 +01:00
JohnWildkins 9c335f6c00 Killing off inconsistencies with impact wrenches / combi-tools (#7269)
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
2019-10-26 22:20:40 +03:00
Mykhailo Bykhovtsev cf9b5c3778 Airbubble cooling update (#5495)
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.
2018-11-19 17:12:19 +01:00
BurgerLUA 8519dcc393 .loc = to forceMove() (#4937)
As requested, this PR is changed to only include all .loc = to forceMove() changes.
2018-08-04 01:48:58 +03:00
skull132 8348bf711c Merge branch 'master' into development 2018-07-14 15:01:05 +03:00
Lohikar a15aa07307 Fix Phantom Globals (#4957)
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.
2018-07-01 22:47:58 +03:00
Mykhailo Bykhovtsev 511f2f12f0 Airbubble update (#4935)
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.
2018-07-01 01:58:28 +03:00
Mykhailo Bykhovtsev b21a60e5ee Airbubble tweaks (#4934)
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.
2018-06-24 22:47:46 +03:00
Mykhailo Bykhovtsev 40e6b35038 Airbubble bugfixes (#4924)
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
2018-06-23 18:04:38 +03:00
Mykhailo Bykhovtsev dd1ed0d21a Airbubble update(bugfixing/tweaks) (#4893)
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.
2018-06-17 21:16:35 +03:00
Mykhailo Bykhovtsev 79c315cc2c Air bubble (#4649)
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.
2018-06-01 22:26:22 +03:00