Commit Graph

6420 Commits

Author SHA1 Message Date
Ghom
13dedbe143 Fixes lingering moodlet on ethereal stomach removal. (#60130) 2021-07-13 12:32:30 -07:00
Kylerace
5d6e93510f makes a bunch of lists that use typecacheof() static. doesnt find out why its overtiming at all but what the hell it helps (#60147)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-12 14:08:46 -07:00
RandomGamer123
7d0a21d9d3 Fixes stationary tanks starting out with 5000L instead of 2500L (#60001)
Prior to this, the first stationary tank in a group you placed down would have 5000L, while the second, third, etc. would add 2500L each to make it 7500L and 10000L for two and three tanks respectively.
2021-07-11 23:57:44 -07:00
Ghom
ffbda0f748 Monkeys and dogs no longer yoink items they can't reach. (#60150)
* Monkeys and dogs no longer yoink items they can't reach.

Title. More ai behavior botherations.
2021-07-11 23:46:55 -07:00
Ghom
8d563b22f4 Fixes the blackout station trait affecting unrelated areas. (#60125)
Title. Centcom, space ruins, (unused) away missions and the such are not part of the station.
2021-07-11 23:28:05 -07:00
Beatrice
c36abfdb99 Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2 (#59778)
Fixes a runtime issue cause by the possibility of loaded_projectile being null by changing how projectile stats are obtained on energy weapons, and adds a separate line for energy ammo types that deal stamina damage and regular damage to incorporate both damage types
2021-07-11 10:23:19 -03:00
Watermelon914
b743b809fa Fixed CQC attacks not triggering if combo failed (#60038)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-07-08 21:55:40 -07:00
LemonInTheDark
6cb6d10185 Fixes a turf signal unregistration I missed, makes the transparent turf element detach (#60064)
* Forgot to patch this up, the transparency element both does not detach on parent destroy, and with the new signal changes leads to signals persisting, which is bad and ick. This fixes that
2021-07-08 21:50:15 -07:00
Time-Green
6be8c68509 Fixes a plumbing harddel (#60067) 2021-07-08 18:54:55 -07:00
Wayland-Smithy
33781ac857 Fix Tram ghost magnet and other cases of observer forceMove (#60026) 2021-07-08 18:11:13 -07:00
小月猫
58f0ebeaa6 Fixes Thermal Vision Bug (#60025)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2021-07-08 15:26:16 -07:00
Time-Green
8a7f258171 The Great Species Dedatumming: External feature organs, part 1 (#59981)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-08 08:27:19 -07:00
Wayland-Smithy
0d1ef29662 Drastic Lag Mitigation Subsystem: SSlag_switch (#59717)
Requested by oranges and inspired by the upcoming event. A new subsyetem, non-processing (for now), aimed at providing some toggle switches that can be flipped as a last ditch effort to save some CPU cycles by sacrificing some non-critical mechanics. Below you can see each individual toggle.

Screenshot of the admin panel:
image
Surely there are more opportunities for toggles I missed, but adding new ones is not very difficult at all.
Why It's Good For The Game

Better performance during extreme pop, I hope.
Changelog

cl
code: Introduces the Lag Switch subsystem for when a smoother experience is worth trading a few bells and whistles for. Performance enhancement measures can be togged by admins with the Show Lag Switches admin verb or enabled automatically at a pop amount set via config.
config: Added a new config var: number/auto_lag_switch_pop
2021-07-08 11:02:52 +12:00
Iamgoofball
a3bd896c8d Replaces Hardstuns with knockdown, removes Vomit stunning from Voice of God. (#60002)
* Removes stuns from Voice of God.

* Update voice_of_god_command.dm
2021-07-07 16:40:31 -04:00
Greniza
7449247159 Weather runtime & EPB fix (#60043)
Fixes the major runtime issue encountered in #60034
Fixes Environmental Protection Bags not protecting from ash storms as they should
2021-07-07 13:29:23 -07:00
Matthew J
5a5cf6933e Rust Component / Wirebrush Rust Remover (#59977)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-07 03:45:57 -07:00
Paxilmaniac
340a0e0392 CARP Team Six: Nanotrasen's Finest* (#60012) 2021-07-06 16:14:09 -07:00
ArcaneMusic
792e121361 Adds a new ruin to Icebox, the post office. (#59907) 2021-07-06 13:11:04 -07:00
Fikou
cd147702cb fixes voice of god not giving you large text (#60014) 2021-07-05 13:03:42 -07:00
Bobbahbrown
4fcf927bf4 fix buckling to a vehicle not setting your initial sprite position correctly (#59999) 2021-07-04 20:53:26 -07:00
Fikou
adb9b76e1c wisps no longer fall in chasms (#60004)
Co-authored-by: coiax <yellowbounder@gmail.com>
2021-07-04 20:52:28 -07:00
小月猫
fec650f7fe fixed the define for the shock wire (#59995)
no wonder autolathes never shocked the cargo techs whenever they hacked it
2021-07-04 15:27:15 -07:00
coiax
e4d8795e9c Add new Wallets! station trait (#59877)
Add a new simple station trait, that replaces everyone's ID with a
    wallet containing said ID, as well as their starting money, and if
    they're lucky, a little bonus surprise.

        In addition, adds a force variable to station traits, which will
        always enable them, rather than having to edit weight and probability
        of rolling a trait of that sign (postive, negative).

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-07-04 10:20:42 +01:00
Greniza
b2ecb787e1 Environment Protection Bags + Minor Weather Changes (#59752)
Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>
2021-07-03 22:05:58 -07:00
Bobbahbrown
972cd3de61 introduce advanced sucking functionality to custodians (+ bonus GAGging) (#59925)
* base sucking functionality

* functional upgrade and upgrade refactor

* minor tweak here

* finish overhaul of upgrades, add gags-ified upgrades

* add documentation (you love to see it)

* update sucking sound

* do some of the requested cleanup, fix key going into trash bag, add right click func
2021-07-04 00:29:46 +02:00
Emmett Gaines
cc791ed2be Makes GAGS layer limit per icon state, not per config file (#59923) 2021-07-03 20:31:34 +02:00
Watermelon914
ebac974568 Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell. (#59962) 2021-07-03 14:59:38 -03:00
Watermelon914
a57a04b320 Fixed carps being untameable and fixes tameable code not properly removing itself from something (#59955)
Fixes #59897
2021-07-03 14:44:09 -03:00
RandomGamer123
97e15965a1 Fix ion carbine parts kit's name and other similar grammar issues (#59947) 2021-07-02 21:01:14 -07:00
dragomagol
f5be9c5cee Removes reference to intents from Martial Arts instructions (#59921)
In CQC, Plasma Fist, Sleeping Carp and Wrestling instructions verb:
Harm -> Punch
Disarm -> Shove

Also removed reference to intents from the changeling's tentacle grab, changing it to neutral/combat stance.
2021-07-02 11:59:38 -04:00
Rohesie
2c5a357035 Reverts Entered() passing dir instead of old loc (#59910) 2021-07-01 17:06:42 -07:00
Wayland-Smithy
0ce099fd77 Fix rogue vending machines targeting incorporeal (#59920) 2021-07-01 16:35:26 -07:00
Emmett Gaines
05a4afd2fd Adds verification for reference layers to check if target config has the desired icon_state (#59884) 2021-07-01 13:31:10 -07:00
Seris02
bc09b1d15a Makes it so changeling legs copy digitigrade/normal, try number 2 (#59832)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-01 13:30:58 -07:00
RandomGamer123
38278f2e17 Change uplink implants to inherit the uplink flags of the uplink they were bought from (#59735)
Uplinks implants bought from uplinks inherit the uplink flags of the uplink they were bought from.

This fixes an undocumented bug where by purchasing an uplink implant, nuke ops would be able to get things they normally can't.

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2021-07-01 19:58:33 +01:00
Timberpoes
90a611a344 Fix forensic component inheritance inserting null entries into lists and causing to_chat errors. (#59873)
Fixing the following runtime:

[17:13:04] Runtime in to_chat.dm,88: Empty or null string in to_chat proc call.
  proc name: to chat (/proc/to_chat)
  usr: Cowboy_penis_monster/(Zackary Mason)
  usr.loc: (Telecomms Control Room (105,89,2))
  src: null
  call stack:
  to chat(Zackary Mason (/mob/living/carbon/human), "", null, "", 0, 1, 1, 0)
  the forensic scanner (/obj/item/detective_scanner): add log("", 1)
  the forensic scanner (/obj/item/detective_scanner): scan(Control Room (/obj/machinery/door/airlock/command/glass), Zackary Mason (/mob/living/carbon/human))

Forensic scanner attempting to add "" to the logs, which eventually gets output to_chat.

Tracked error down to forensic component lazylists and the fun of trying to OR two lazylists together.
2021-06-30 23:41:04 -03:00
LemonInTheDark
d368e4d49d Changes how weather sends sound to players, reduces sound loop overtime (#59284)
* Converts looping sounds from a list of play locations to just the one

* Updates all uses of looping sounds to match the new arg

* Adds an area based sound manager that hooks into looping sounds to drive the actual audio. I'll be using this to redo how weather effects handle sound

* Some structrual stuff to make everything else smoother
Timers now properly return the time left for client based timers
Weather sends global signals when it starts/stops
Looping sounds now use their timerid var for all their sound related timers, not just the main loop

* This is the painful part
Adds an area sound manager component, it handles the logic of moving into new areas potentially creating new
sound loops. We do some extra work to prevent stacking sound loops.
Adds an ash storm listener element that adds a tailored area sound manager to clients on the lavaland z level.
It's removed on logout.
Adds the ash_storm_sounds assoc list, a reference to this is passed into area sound managers, and it's modified
in a manner that doesn't break the reference in ash_storm (This is what I hate)

* Hooks ash storm listener into cliented mobs and possessed objects

* Documents the odd ref stuff, adds an ignore start var to looping sounds, fixes some errors and lint issues

* Applies kyler's review

banging

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Cleans up some var names, reduces the amount of looping we do in some areas

* Makes the code compile, redoes the movement listener to be more general

* fuck

* We don't need to detach on del if we're just removing signals on detach

* Should? work

* if(direct) memes

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-06-30 20:51:35 -04:00
bloons3
6e01f2901f Enhances AI law and borg logging (#59684)
Persistent logging for sometimes disputed actions

The "impacted cyborgs" is useful for reconstructing which borgs were synced to an AI at what time, which sometimes may not be clear from logs
2021-06-30 18:16:23 -03:00
Wayland-Smithy
03c1ce3932 Fix hand teleporter and other portals looping forever (#59894)
Makes portals use Bumped() instead of COMSIG_ATOM_ENTERED for detecting atoms crossing the event horizon.

Removes unused and potential loop causing forceMove argument from do_teleport()
2021-06-29 21:53:37 -03:00
Watermelon914
7e9e2df721 Adds USB to arrest consoles. Adds list circuit components. (#59850)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-06-29 13:23:14 -07:00
AnturK
11b8701215 Fixes minor quirk runtime. (#59870) 2021-06-29 20:13:12 +01:00
Timberpoes
c3917b8225 Cooked steaks are once again edible. (#59855) 2021-06-28 15:39:23 -07:00
zxaber
24be009e96 Jaunting no longer allows you to end up inside a wall (#59520)
Jaunting now keeps track of the last five non-blocked tiles you moved across while in the jaunt. Upon exit, it will attempt to deposit you into the last unblocked tile. Should it run out of tiles to try, you will be returned to your starting location. As such, jaunting mobs can no longer end up inside walls or dense objects. Tables, and anything else with the climbable element, are still allowed.

Added support to /turf/proc/is_blocked_turf() to allow ignoring climbable atoms.

Added the TRAIT_CLIMBABLE trait, applied by the climbable element, to accomplish the above.
2021-06-28 11:03:22 -03:00
Timberpoes
fbdfde900c The to_chat proc no longer accepts null or empty strings and runtimes instead. (#59843)
* Catch null text sent to to_chat

* Brain traumas no longer send empty to_chat gain strings

* Make to_chat_immediate changes and clean up args list formatting

* Fix empty to_chat message where there is no memo for admins

* Fix additional edge case where there are no messages for the ckey.
2021-06-28 16:11:33 +03:00
cacogen
d3dd525e08 Cannabis has more believable effects (#59360)
Adds cannabis reagent and replaces space drugs with it in cannabis products
Adds space drugs to rainbow weed, which fits its theme and might satisfy the people who miss the effect
Removes lipolicide from cannabis products in favour of the reagent consuming nutrition directly
Cannabis reagent gives you messages describing symptoms of cannabis intoxication, makes you laugh, makes you hungry, has a chance to couchlock you buckled to a chair and put you to sleep lying down
Cannabis no longer references hallucinating, can't be overdosed and has no addiction
Adds Stoned status effect, which is applied by cannabis reagent
Stoned status effect slows you down, gives you bloodshot eyes, makes you clumsy, boosts your mood and gives you the drugged sound environment
Adds "stoned" icon state for Stoned status effect screen alert (sprite shamelessly stolen from the Smoke spell)
Adds BLOODSHOT_EYES trait, which is applied by Stoned status effect
Adds examine eye descriptions for bloodshot eyes and player-chosen red eyes
Adds cannabis movespeed modifier, which is applied by the Stoned status effect
Adds Stoned mood event, which is applied by Stoned status effect and gives the same mood boost as High but doesn't reference tripping
2021-06-27 21:14:48 -03:00
Time-Green
a915c7167e Refactors species stomach code, makes ethereal charge inherent to their stomach (#59801)
A stomach would literally just ask the species datum how to be hungry and made a bunch of exceptions for ethereals. I mostly just moved code around so that hunger is handled by a persons stomach, thus shrinking the species.dm bloat.

This also makes it so ethereal's charge mechanic is unique to their stomache, instead of this really weird inbetween where just nothing happens and you kinda starve to death. You can stick an ethereal stomach in a human and this will replace their hunger mechanic with the charge mechanic and lets them absorb power from APCs and everything. You can also give ethereals a normal stomach and they'll use the normal hunger mechanics
2021-06-27 12:35:53 -03:00
Mothblocks
23790c6c5e Fix missing SIGNAL_HANDLER (#59826)
Adds SIGNAL_HANDLER to everywhere that didn't have it that was picked up by dm-lua, which is now ready enough to catch these.
2021-06-27 15:43:49 +01:00
Emmett Gaines
67c89fa1ab Greyscale Mat Datum Stationary Smooth Tanks (#59556)
Stationary gas tanks have been in a terrible place for a long time, this addresses some of the issues with a more balance focused change coming in a second mapping pr after this one.

Stationary gas tanks have been made constructable and act similarly to canisters in that they can be damaged, repaired, and over-pressurized to explode. Additionally, they can be made with any rigid material and their stats depend on that material. A glass tank is going to have far less pressure capability than one made of plasteel.

In terms of gameplay there are two main differences now: Adjacent stationary tanks will merge together both graphically and with their internal storage. Any port on any of the tanks can access this shared storage. Also stationary tanks no longer magically have many times the volume for gas as the tile it's in, instead they have a pressure cap and a normal amount of volume.

Of interest to coders this pr also adds a generic grouping datum that acts similar to how pipe networks work. It maintains a listing of all adjacent objects whose type falls within a specified filter. In this case it's used for the gas tanks to know of every other tank in the group. I'll be looking into spreading it's usage elsewhere where this can replace existing one off systems.

Some (de)construction:
First a glass tank is constructed which is then immediately damaged by the high pressure in the gas storage that is now shared. After repairing it for a moment another metal tank is built.
2021-06-26 19:26:33 -07:00
Timberpoes
ffacc8b1e5 Adds a kneecapping element and adds that very element to baseball bats. (#59816)
Implements appropriate signal handlers for /obj/item/proc/attack_secondary() - Secondary item attacks now send signals and signal handlers can now cancel the attack chain, continue it or move to the primary attack chain.

Adds a kneecapping element.

Kneecapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances. If these circumstances are not met, the secondary attack chain will continue as normal with the item's normal secondary attack.

Element is incompatible with non-items. Requires the parent item to have a force equal to or greater than WOUND_MINIMUM_DAMAGE. Also requires that the parent can actually get past pre_secondary_attack without the attack chain cancelling. Funnily enough, the Element doesn't require a blunt weapon. If admins add it to sharp or pointy weapons, they get the same aimed attack but with sharp and pointy wounds instead - Because all the Element does is add a hefty wounding modifier.

Kneecapping attacks have a wounding bonus between severe and critical+10 wound thresholds. Without some serious wound protecting armour this all but guarantees a wound of some sort. The attack is directed specifically at a limb and the limb takes the damage.

Requires the attacker to be aiming for either leg zone, which will be targetted specifically. They will than have a 3-second do_mob before executing the attack.

Kneecapping requires the target to either be on the floor, immobilised or buckled to something.

Passing all the checks will cancel the entire attack chain for the Element to handle attacking logic.

This Element has been added to the baseball bat. Any other items that wish to implement its functionality in the future are free to.
2021-06-26 10:10:58 -03:00
DragonTrance
279c93a0a7 Adds Defines for Species IDs (#59797)
Simply puts species IDs into defines ("lizard" turns into #define SPECIES_LIZARD "lizard"). This does not affect any gameplay, and is purely for making sure future code doesn't go all fucked up because someone accidentally misspells something

I only changed code that was spelt correctly, so if there actually is a typo somewhere, it isn't changed
2021-06-25 15:30:16 -03:00