Commit Graph

4076 Commits

Author SHA1 Message Date
SkyratBot
f7ae1d7225 [MIRROR] surgery_initiator component to element. (#7335)
* surgery_initiator component to element. (#60634)

* surgery_initiator component to element.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2021-08-03 20:04:42 +01:00
SkyratBot
7db6e26066 [MIRROR] fixes cannons losing their sprites (#7286)
* fixes cannons losing their sprites (#60559)

* fixes cannons losing their sprites

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-08-01 11:55:53 +01:00
SkyratBot
ccc38b0fc4 [MIRROR] Trash Cannons (#7225)
* Trash Cannons (#60476)

* Trash Cannons

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-07-29 11:15:03 +01:00
SkyratBot
9f7d93f3f3 [MIRROR] Remove nanites (#7210)
* Remove nanites

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-29 00:45:17 +01:00
Pinta
caeea29798 [READY][MOSTLY MODULAR] Mediguns! (#6546)
* Creates the basis of the medigun

* Adds ability to take out and put in cells

* Adds Base cells in

Sprites are made by @Arctasia

* Cell Sprites change size when on ground

Uses the item scaling module from this PR, god bless the author for making this;
https://github.com/tgstation/tgstation/pull/56102

* Adds the other two variants of Mediguns

Upgraded version will be accessible by using a printable medigun upgrade kit.

* CMO medigun can't be put in chargers

Mostly balancing stuff to make sure the gun isn't too busted. I'll probably end up doing further tweaking down the line.

* Adds in the basic Tier II Ammo Types

* Adds in the basic tier III cells

also tweaks the recharge value on the CMO medigun cell

* Update modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/medgun/medcells.dm

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

* Update modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/medgun/medcells.dm

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

* Update modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/medgun/medcells.dm

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

* Update modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/medgun/medguns.dm

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

* Update modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/medgun/medguns.dm

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

* Makes the medigun heal Radiation

also fixes an issue of the cell type not swapping after the medigun is removed, leaving the medigun on a mode that doesn't exist.

* haha whoops

* Fixes Medigun code a bit

Fixes the right click option to work with the new right click modifiers from https://github.com/tgstation/tgstation/pull/59656.
Fixes an oversight where basically anything could be shoved inside of a medicell. That seemed a little bit unrealistic.

* Adds upgrade kit

The standard medigun can be upgraded to the faster charge model! I might end up tweaking the crafting requirements later!

* Adds Medigun kits

* Adds Basic Medigun Kit to Cargo

* Makes the higher Tier medicells obtainable through research

* CMO medigun kit is in CMO locker

* Higher Tier Projectiles pass through windows

* Updates inhand sprite

* Gives the different cell projectiles colors when shot.

* Changes the sound of the medigun

* Updates description

* Changes medigun to use alt+click

* adds the medigun and medicell sprites in.

lets gooooooo

* Adds in overlays

* Adds empty and updates the CMO texture

* The basic Medicells are orderable by themselves

QoL, and this might be useful for future variants.

* Basic Brute Charge

* Changes mediguns to use their own texture file.

I don't want the original projectile file to get overly cluttered.

* Update projectile.dmi

* Adds in icons for other types

* Rest of the tiers have sprites

Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>
2021-07-28 23:53:37 +01:00
SkyratBot
195373fc57 [MIRROR] fixes issues with prisoner EPBs (#7191)
* fixes issues with prisoner EPBs (#60435)

* fixes issues with prisoner EPBs

Co-authored-by: Greniza <61635418+Greniza@users.noreply.github.com>
2021-07-28 22:14:20 +01:00
SkyratBot
f4e61e4051 [MIRROR] Ports/Adds new outfits for command and centcom staff! (#7135)
* Ports/Adds new outfits for command and centcom staff!

* Update rust_g.dll

* Update security.dm

Co-authored-by: Imaginos16 <77556824+Imaginos16@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-28 21:54:26 +01:00
SkyratBot
227b722820 [MIRROR] Job refactor: strings to references and typepaths [This could seriously break things :)] (#7006)
* Job refactor: strings to references and typepaths

* 0

* holy fuck

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-28 21:12:42 +01:00
GoldenAlpharex
1426798fea Magic mirrors are no longer scared of colorful ears and tails (#7112) 2021-07-26 18:38:13 +01:00
SkyratBot
0bb9dc48e7 [MIRROR] Add plasma xeno statue (#7137)
* Add plasma xeno statue (#60408)

The sprite existed for a long time but was never added to the code for some reason.

* Add plasma xeno statue

Co-authored-by: Tim <timothymtorres@gmail.com>
2021-07-26 15:48:51 +01:00
SkyratBot
247afa352b Kills grown/misc.dm (#7074)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-07-26 15:43:57 +01:00
Gandalf
7b8392db55 Armory minidate (#6921)
* a

* Update NSSJourney.dmm

* aaaa

* FFFF

* Update bullets.dm

* Update gun_spawns.dm

* a

* Update gun_spawns.dm

* a

* a

* Update gun_spawns.dm

* a

* Update guns.dm

* a

* aaaaaaaaaaaaaaaaaaaaaaaaaaa

* a

* Update gun_spawns.dm

* Update rack.dm
2021-07-26 15:38:50 +01:00
OrionTheFox
62f68df5ff Add HoP's Parade Uniform/Suit (#7035)
* Add HoP's Parade Uniform/Suit

I'm being forced against my will to do this, its 1:30AM. Help me.

* FIX THIS DAMN CONFLICT
2021-07-23 10:44:59 +12:00
SkyratBot
c1163dff19 [MIRROR] EVEN MORE HARDDEL FIXES (#7017)
* EVEN MORE HARDDEL FIXES (#60228)

Fixes a ton of harddels, sourced from #59996
I think this brings us down to like, ~100 per round from ~200, with only like 20 of those being proper hell failures. I've seen harddel profiles below 1 second of total cost. Feeling good.

See you on the other side

Makes the cryopod control computer into a weakref, never trust bee code
Converts brig door timer internal lists to weakrefs
Fixes a harddel caused by qdeling a motion sensitive camera after it had left its source area, jesus christ why didn't we do this already holy shit
Converts the radio implant ref held by the antenna mutation to weakrefs because it isn't reliably cleaned up, makes the radio implant actually qdel its fucking radio
Removes the target var from the throwing datum, it does literally nothing and just exists to cause harddels, mostly for the singularity
 Fixes a cable harddel sourced from things that try to enter blueprints after smoothing, but before roundstart. IE, shuttles. Removes shuttles from the blueprints
Fixes emmisive blockers being added post qdel
Removes some manual ghosting from cryopods, I initially did this for harddel reasons, but I figured out a better fix for that. I'm now doing it because it's got this really strange logic for like "re-entering the game" that doesn't actually link to what the ghostize proc does. We should remove this at some point
Fixes robot hud objects harddeling due to hanging refs
Fixes buildmode related hanging refs, I'm coming for you admin team
Fixes a few instances of trying to add the forensics component post qdel, hhhhhhhhhhh
Fixes some split personality harddels/weirdness
Replaces a use of disconnect_duct with an init qdel hint, I suspect there's more issues with duct harddels, I've seen some odd logs about ahhh the area_contents list, but we can worry about that later
Makes teleporter targets into weakrefs, properly types them as /atom
Makes frequency devices into weakrefs
Makes cameras remove themselves from camera nets on Destroy
Makes tgui ui datums implement destroy, this means if I ever see one hang a ref to user or whatever, I know there's an error with calling close() properly. I've seen this harddel once, but not after this change so I assume there was some error with close(). IDK maybe this is a papering over? Would have to ask @ stylemistake
I've seen logs of beartraps being in world post del, putting a return there just in case. The same is true of nerf darts, but I haven't really looked into that yet
Makes a shoe's ref to untying alerts a weakref, yes this is needed.
Moves clearing client_in_contents to the Login of the new mob. This prevents doing things like ghosting someone before a mob qdel causing harddels
Fixes a harddel set sourced from adding a status effect to a qdeleted thing. Is this an error? I'm honestly not sure.
Converts bsa code to weakrefs
Converts the partner var of heat exchangers to weakrefs
Converts camera assemblies to weakrefs
Fixes some dumb behavior with ammo casings and assuming you'll be on a turf post Destroy parent call
Fixes? merger related harddels, you were never cleared from your own members list, so origin objects would end up making a new list, creating harddels. Potential input from @ ninjanomnom about the logic
Chasms store a static list of "falling atoms", which only exists for chasms that go somewhere else. This list wasn't being cleared of qdeleted objects, which is what happens when you fall in most chasms. Fixes this, and converts the list to weakrefs.
Fixes some runtimes in both sheet code, and the weather listener element. This is here because runtime spam made testing more of a pain, didn't think it needed its own pr
Fixes colorful reagent harddels sourced from reagents that were qdel'd before roundstart. I'm only like 50% sure this actually got it, but the issue may have been solved by #60174, so eh
Turns the nuke op antag datum's ref to the war button into a weakref
Fixes some holopad code that was not nulling refs all the time
Converts camera bugs to weakrefs, this was the result of the bug being "reworked" like 6 years back without taking the existing ref clearing into account. Whole item needs a redo, but this'll do for now.
Ensures that the both pulling and pullee refs are cleared on Destroy
The crew monitor held all users in a non clearing list, makes that list a weakref because I hate everything

Oh and I removed all sources of gas_mixture qdeletion, I'm kinda unsure on this since it's not technically supported, but any harddels from it might? indicate something going wrong with like, gas passing logic. I'd like @ MrStonedOne's thoughts, since I trust him to call me an idiot if I'm wrong.

<!-- Please add a short description of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding. -->

## Why it's not good for the game

I crashed sybil like 10 times to get this data, I'm gonna put it to good use. Don't think you're safe sybilites, I'm coming for you.

* EVEN MORE HARDDEL FIXES

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-07-20 12:59:41 +02:00
Gandalf
b2f0f6cf46 Reverts infinite showers (#7016)
* AAAAAAAA

* Update shower.dm

* Update shower.dm

* Update shower.dm
2021-07-19 16:42:23 +01:00
SkyratBot
99333fdfcc [MIRROR] Replace a number of New() overrides with Initialize() (#6945)
* Replace a number of New() overrides with Initialize() (#60223)

* Replace a number of New() overrides with Initialize()

Co-authored-by: coiax <yellowbounder@gmail.com>
2021-07-19 16:55:01 +12:00
SkyratBot
22a02bc61b [MIRROR] Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2 (#6850)
* 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

* Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2

Co-authored-by: Beatrice <83368538+SpaceDragon00@users.noreply.github.com>
2021-07-12 21:45:06 +01:00
SkyratBot
7c34b1f5ee [MIRROR] Less absurd sturdiness for railings, more in line with grilles now. (#6841)
* Less absurd sturdiness for railings, more in line with grilles now. (#60111)

* Less absurd sturdiness for railings, more in line with grilles now.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2021-07-12 21:44:19 +01:00
Y0SH1M4S73R
93d03dc6bb [Alternative to #6407] Makes mutant bodyparts and mutcolors into editable genetic traits (#6750)
* Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code)

* Mirror

* genetically-editable mutant bodyparts and colors - skyrat edition

Co-authored-by: Funce <funce.973@gmail.com>
2021-07-08 16:04:19 +01:00
SkyratBot
877940ba8d [MIRROR] Revert "Barticles for bonfires 2021" (#6625)
* Revert "Barticles for bonfires 2021 (#59869)" (#59916)

This reverts commit 0ad74e9637.

* Revert "Barticles for bonfires 2021"

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-08 03:29:23 +02:00
SkyratBot
c7cab95593 [MIRROR] Rust Component / Wirebrush Rust Remover (#6778)
* Rust Component / Wirebrush Rust Remover (#59977)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Rust Component / Wirebrush Rust Remover

* Revert "[modular] wirebrush (#6521)"

This reverts commit 4f87b970f4.

* Makes the advanced wirebrush not critfail anymore.

Co-authored-by: Matthew J <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-07-08 03:06:22 +02:00
Gandalf
25fdbeeb24 aaaaaaaaaaaa (#6767) 2021-07-06 23:53:07 +01:00
SkyratBot
bc5ae88629 [MIRROR] Environment Protection Bags + Minor Weather Changes (#6701)
* Environment Protection Bags + Minor Weather Changes (#59752)

Co-authored-by: Matthew J. <12817816+ZephyrTFA@ users.noreply.github.com>

* Environment Protection Bags + Minor Weather Changes

Co-authored-by: Greniza <61635418+Greniza@users.noreply.github.com>
Co-authored-by: Matthew J. <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-04 22:20:40 +01:00
SkyratBot
c0d3bcce69 [MIRROR] sets commission plaques to below open door layer (#6710)
* Set commission plaques to below open door layer (#59984)

it looks bad when you drop an item

* sets commission plaques to below open door layer

Co-authored-by: Fikou <piotrbryla@onet.pl>
2021-07-04 22:15:00 +01:00
SkyratBot
de665b204b [MIRROR] Large cardboard box icon fix (#6691)
* Large cardboard box icon fix (#59938)

* cardboard box fix

* Large cardboard box icon fix

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2021-07-03 22:25:55 +01:00
SkyratBot
bac6697cf0 [MIRROR] Fix error on secondary attacking certain secure closets. (#6660)
* Fix error on secondary attacking certain secure closets. (#59867)

* Feex

* Reviewify

* Fix error on secondary attacking certain secure closets.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-07-03 01:17:43 +01:00
SkyratBot
4c20018d2a [MIRROR] Sink frames are now deconstructable (#6650)
* Sink frames are now deconstructable (#59887)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Sink frames are now deconstructable

Co-authored-by: aaaa1023 <74441292+aaaa1023@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-07-02 16:44:01 +01:00
SkyratBot
d00afdebb9 [MIRROR] Catwalk Flooring (#6647)
* Catwalk Flooring (#59773)

* Catwalk Flooring

* a

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-02 16:43:51 +01:00
SkyratBot
cab78dcf78 [MIRROR] Changes how weather sends sound to players, reduces sound loop overtime (#6627)
* 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>

* Changes how weather sends sound to players, reduces sound loop overtime

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
2021-07-01 02:18:04 +01:00
SkyratBot
fcbe57e4be [MIRROR] Barticles for bonfires 2021 (#6623)
* Barticles for bonfires 2021 (#59869)

* barticles

* better bode

* Barticles for bonfires 2021

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-06-30 23:35:30 +01:00
Gandalf
778a589555 Removes a lot of redundant non-modular changes and maybe fixes cleanbots (#6615)
* oof

* Update _ai_controller.dm

* no need for this anymore
2021-06-30 21:50:50 +02:00
SkyratBot
f7ff01b3a1 [MIRROR] Fix cyborg locker right click (#6609)
* Fix cyborg locker right click (#59885)

I guess silicon shared the old AltClick proc with other living, but that is not the case for secondary click.

* Fix cyborg locker right click

Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
2021-06-30 20:00:22 +01:00
SkyratBot
95ba2bbaab [MIRROR] Make transit tube dispenser stations buildable (#6606)
* Make transit tube dispenser stations buildable (#59852)

Dispenser stations had some sprite issues due to using wrong icon states and having wrong orientation for flipped versions.

This PR fixes the issues and adds them to the RPD.
I can remove them from RPD construction if you don't want them to be constructible - this was the main motivation for implementing the changes in a downstream.

* Make transit tube dispenser stations buildable

Co-authored-by: KubeRoot <kubinator4321@gmail.com>
2021-06-30 19:59:55 +01:00
DuffCreeper
0afcf0db5c bye stonks (#6540)
you were too weird

Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-28 14:29:11 +01:00
SkyratBot
418f5cc9c6 [MIRROR] Free golem policy (#6551)
* Free golem policy (#59831)

Adds policy.json functionality for Free Golems, will make it easier for future headmins to alter the policy.json rather than PR a change.

* Free golem policy

Co-authored-by: Coconutwarrior97 <40315842+Coconutwarrior97@users.noreply.github.com>
2021-06-27 16:16:14 +01:00
SkyratBot
79c3c379b9 [MIRROR] Fix missing SIGNAL_HANDLER (#6552)
* 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.

* Fix missing SIGNAL_HANDLER

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-06-27 16:16:04 +01:00
SkyratBot
665fe76566 [MIRROR] Modifies right click logic so that it is not the same priority as modifier keys. (#6498)
* Modifies right click logic so that it is not the same priority as modifier keys. (#59656)

Strips out the existing right click code - Due to the myriad of ways right clicking has been implemented, dedicated signals and procs for right clicking without modifiers are fundamentally incompatible with our system of primary and secondary attacks.

Adds additional signals to attacking code. These signals allow atoms to cancel the attack chain early on secondary attacks, or override the standard procs and not send signals to prevent any undesired behaviour from signal handlers.

Items that used RightClick procs have been converted to attack_hand_secondary.

The slaughter demon, having its own set of snowflake code as poor OOP principles have been applied in UnarmedAttack() procs with lacking calls to parent procs and arbitrary redefinition of behaviour, checks for a right click in its own UnarmedAttack() and performs a bodyslam off that.

Storage components now hijack the secondary attackby stage via signals to handle their opening and closing shortcuts on right click. When you right click a storage component equipped item with an object in your active hand, the object has an opportunity to perform its logic in pre secondary attack code and cancel the attack chain. If it does not cancel the attack chain in pre-attack, then the storage component takes over for attackby and, if possible, opens the relevant inventory and ends the attack chain.

The forensic scanner is a proof-of-concept of this working in action. With its scan logic moved from afterattack code to pre attack code for right clicking, right clicking with the scanner will now perform a scan where previously one was impossible. Left clicking still does what it always does - Scans at the very end of the attack chain.

The logic still isn't perfect - For example, you still can't attack containers in melee even in combat mode (you'll either open them or put your weapon into them regardless of which option you choose) - But this is a better setup overall which allows for items to at least override this behaviour in pre-attack if needed.

* Modifies right click logic so that it is not the same priority as modifier keys.

* a

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-27 16:10:15 +01:00
SkyratBot
73fdf1fa20 [MIRROR] Integrates spider eggs into the mob spawners (#6502)
* Integrates spider eggs into the mob spawners

* Update corpse.dm

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-27 16:01:04 +01:00
SkyratBot
b9c1cda706 [MIRROR] Fix incorrect return for closet attack_hand_secondary causing lockers to have their locks toggled twice. (#6536)
* Fix incorrect return for closet attack_hand_secondary causing lockers to have their locks toggled twice. (#59814)

/obj/structure/closet/attack_hand_secondary(mob/user, modifiers) doesn't return one of the expected attack chain cancelling/continuing defines and instead returns TRUE.

This means that right clicking them acts as a secondary attack followed by a primary attack.

When the secondary attack against a secure closet actually attempts to toggle the lock, it now cancels the entire attack chain.

* Fix incorrect return for closet attack_hand_secondary causing lockers to have their locks toggled twice.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-06-26 16:11:45 +01:00
SkyratBot
1211d28c90 [MIRROR] Fixes blockers blocking themselves + cleanup (#6528)
* Fixes blockers blocking themselves + cleanup (#59808)

* Fixes blockers blocking themselves + cleanup

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-06-25 22:34:02 +01:00
SkyratBot
a14b1dadb5 [MIRROR] CanPass refactor (#6527)
* CanPass refactor (#59804)

* CanPass refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-06-25 22:33:51 +01:00
SkyratBot
707f38ea7f [MIRROR] Fixes bodybags, cargo crates, and directional lighting. (#6459)
* Fixes bodybags, cargo crates, and directional lighting. (#59709)

Fixes a couple bugs created by the neon carpets PR:
* Bodybags can once again be closed. (Fixes #59704, Fixes #59747)
* Cargo crates no longer report having delivered an emissive blocker
* Directional lighting no longer masks the emissive plane.

* Fixes bodybags, cargo crates, and directional lighting.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-06-24 01:58:05 +01:00
Gandalf
1a2f4f5d69 missed mirror 2021-06-23 22:35:37 +01:00
SkyratBot
5326760cb3 [MIRROR] Makes turfs persist their signals, uses this to optimize connect_loc (#6465)
* Makes turfs persist their signals, uses this to optimize connect_loc  (#59608)

* Makes turfs persist signals

* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear

* Converts all uses of connect_loc over to the new patterns

* Adds some comments, actually makes turfs persist signals

* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work

* bro fuck documentation

* Changes from a var to a proc, prevents admemems and idiots

* Extra detail on why we do the copy post qdel

* Makes turfs persist their signals, uses this to optimize connect_loc

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-06-23 04:23:48 +01:00
SkyratBot
d85a02babd [MIRROR] Refactors move procs to support multitle objects (#6423)
* Refactors move procs to support multitle objects

* Update _blob.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-22 22:40:04 +01:00
SkyratBot
9eaae7deea [MIRROR] Tramstation Tram "Upgrades" (#6456)
* Tramstation Tram "Upgrades" (#59277)

The tram now smashes through walls instead of phasing through them. Spawns sparks and shakes the screen for nearby observers as the tram kool-aids its way through obstructions.
The tram now equal-opportunity smashes through most machinery and structures. If a structure is normally not anchored by default (girders, lockers, closets, ect), it will unanchor them and throw them while doing some damage. Machinery now actually gets destroyed when hit by the tram, which also fixes the issue with the recycler breaking the tram.
Tram platforms themselves have been made inherently indestructible to prevent them from ever breaking in any unexpected gameplay method.
The permabrig mouse has been moved to the general activity room instead of the room with the exposed APC wiring.

* Tramstation Tram "Upgrades"

Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
2021-06-22 22:37:08 +01:00
Useroth
873144d8ef Adds a setter for density (#59529) (#6437)
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>
2021-06-22 01:24:59 +01:00
SkyratBot
87e3a63f7d [MIRROR] During unit tests, does extra verification on text based overlays (#6415)
* During unit tests, does extra verification on text based overlays (#59553)

This makes it so during unit tests, adding a text based overlay to something will runtime if the icon does not have an icon state matching that text. I would do this during normal compiles as well but getting the icon states from an icon is surprisingly expensive.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* During unit tests, does extra verification on text based overlays

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2021-06-21 00:48:24 +01:00
Gandalf
d0bfc4de04 The Nanotrasen Representative (MY WAY) (#6368)
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* Ads

* dddd

* a

* a

* a

* Update uniform_digi.dmi

* Update uniform_digi.dmi

* Update uniform_digi.dmi

* Some random new potted plants!

* a

* Update flora.dm

* a

* fixes

* a

* a

* e
2021-06-20 02:23:29 +01:00
SkyratBot
071b56751d [MIRROR] Converts the new span_ procs to macros, fixing a few oversights/errors along the way (#6394)
* Converts the new span_ procs to macros, fixing a few oversights/errors along the way (#59685)

This is a partial re-implementation of #59645

oranges has expressed a desire for the span_ procs to instead be macros.

I agree. Even though it's a small micro-optimisation, a well contained macro can be self-linting. I've already caught one edge case thanks to this in launch_pad.dm

Similarly, there was an edge case where a [ was escaped inappropriately (that errored out) in watercloset.dm and a case where a ] that should probably have been escaped actually wasn't in robot_defense.dm

I have opted to make an exception to the ALLCAPS convention for these macros.

I have guaraded these macros in parenthesis. In doing so, additional error states can be captured as part of the build process as malformed inputs will then cause errors and prompt further investigation.

* Converts the new span_ procs to macros, fixing a few oversights/errors along the way

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-06-19 22:54:47 +01:00