* Fixes a bunch map log runtimes, adds CI to catch some more potential map issues (#64599)
* Fixes APC offsets in template maps, airlock note placer helper
* also hellfactory
* remove doubled lavaland mining cable
* Updates CI grep checks for cable check to work, and also check lattices and identical pipes
* Add APC pixel offset checking
* mass apc offset fixes
* Fixes a bunch map log runtimes, adds CI to catch some more potential map issues
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Mining MODsuit Rework (#64688)
makes dropkey deactivate device modules
fixes speed potion being fucky
fixes doubled up balloon alerts
makes some cell code better i think
makes the gps module open the gps tgui for you, instead of putting a gps in your hand
the loader suit can now hold mailbags
Reworks the mining modsuit.
The suit is no longer cold-proof (this can be mitigated by using module space for thermal regulators)
The suit fits less modules than standard suits, but cant burn in lava.
In suit storage it can carry ore bags, resonators and kinetic crushers.
It features a storage, gps, ore bag, drill, clamp and by default comes with a plasma core, being recharged with plasma ore rather than by power cell.
Features two new modules:
Ash Accretion, it gathers dust from basalt (or snow) you walk on to create a layer of ash around the suit, acting as armor and a speed up that quickly drains when you walk on other terrain.
Sphere Transform, turns you into a fast moving ball that can travel past lava, you cannot use your hands when in this form, but you can launch aoe mining bombs to attack or mine
* Mining MODsuit Rework
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Add new surgery tgui (#64579)
* Move element to component, start UI, move assets into their own directory
* Complete UI
* Stop when another surgery is started
* Set your real zone since I forgot you actually need to start the surgery too
* Bring this back since I was just removing it as part of a cleanup for asset cache, but I can't prove it's not used anymore
* Remove unnecessary constructor I was using for something else
* Fix signal override
* Add new surgery tgui that provides a built in body zone selector and doesn't let you start surgeries if their body is covered. Replaces some stuff with balloon alerts
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Fixes progression scaling and other various problems with progression traitors. (#64503)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes progression scaling and other various problems with progression traitors.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes projectiles logging/displaying messages twice (#64683)
#64659 introduced a bug where, now that mob/living/bullet_act() was now calling parent, which called projectile.on_hit() while also calling on_hit() itself with its own armor arguments, would cause duplicated logging entries, impact effects, and messages among other things. This was an annoying bug to figure out a fix for as on_hit was something that all atoms need to call in bullet_act, but it had to be run at the top of the proc since it had to be run alongside the COMSIG_ATOM_BULLET_ACT signal.
The solution I settled on was simply introducing a cut-out proc for getting the armor type that's supposed to be used for on_hit. Note that on_hit doesn't appear to have any mechanical effects like dealing damage or stuns, so there were no effects on actual balance.
* Fixes projectiles logging/displaying messages twice
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Fixes harddels in pinned module code, cleans up a musty pattern that I want to die (#64674)
* Please stop typecasting target, noooooooooooooooooo
* Fixes harddels in pinned module code
The logic for pinned modules was intentionally hanging references to the
mob that pinned the action button. I have depression.
The pinned_to list also was never fully cleared, but that would have
just exasperated the issue. I've converted its use of mobs to refs, and
its use of the module var into something better managed
(Friendly reminder that actions will persist in your nightmares forever
unless they are manually qdel'd, this code wasn't doing that.
Also cleaned up how the pinned_to list is managed, hopefully it's a bit
more action centered now
* Fixes harddels in pinned module code, cleans up a musty pattern that I want to die
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes the song editor UI on pianos/space minimoogs. (#64545)
This fixes a bug (#64516) where the song editor UI failed to update properly on pianos/space minimoogs.
As it turns out, the updateDialog call at the end of the file had nothing set for it, resulting in it runtiming any time it was supposed to be updating.
Setting it to (usr) fixed the problem, and the UI now works properly.
* Fixes the song editor UI on pianos/space minimoogs.
Co-authored-by: sergeirocks100 <31294280+sergeirocks100@users.noreply.github.com>
* Disease and blob camera mobs can move vertically while a location or host hasn't been chosen yet. Revenants can also freely move vertically. (#64626)
I found out on the icebox map, roughly a week or two ago, that the camera mob couldn't be moved to the other station leveleven before the core was placed. I believe this to be an oversight, which is why this PR has been made.
Sentient diseases also suffer from a similar issue while on the host selection stage, so I'm fixing that too.
EDIT: Someone pointed out that revenants (and other mobs with incorporeal movement) don't ignore turfs and obstacles when moving vertically, so I have added a few lines to living/can_z_move to hopefully fix that.
* Disease and blob camera mobs can move vertically while a location or host hasn't been chosen yet. Revenants can also freely move vertically.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds basic list manipulation and fixes some performance issues with lists in integrated circuits (#64541)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Adds basic list manipulation and fixes some performance issues with lists in integrated circuits
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Improves ethereal APC sucking code (#64638)
* armhulen talk to me about the combat mode stuff
* cleans up the istype issues
* ryll please free me from slavery
* Improves ethereal APC sucking code
Co-authored-by: MacBlaze1 <33578623+MacBlaze1@users.noreply.github.com>
* Ports & GAGS-ifies gas canisters from Yogstation (#64678)
Ports canister sprites made by Partheo & Tex from Yogstation.
* Ports & GAGS-ifies gas canisters from Yogstation
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* elite nukie suit improvements (#64668)
deletes the elite armor booster module, instead the elite syndie suit has some armor by default, with the rest being filled by the standard armor booster
makes welding protection a part of armor booster, removes it from nukie suits since they have armor booster
adds new towering sprites, here you can see the space mode and combat mode
* elite nukie suit improvements
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* More items hurt you now if you walk on them barefoot (#64625)
Have you ever stepped on a sharp object as a kid before? I stepped on a broken tea cup when I was a kid, and I could tell you that it hurt like hell.
Light tube and glass shard already hurt you in-game if you step on them barefoot. The PR changes that broken drinking/alcohol glass and broken plate shard will also hurt you now if you step on them barefoot.
I was planning to add knives too but I thought that would be too much.
I hope this works.
* More items hurt you now if you walk on them barefoot
Co-authored-by: Tortoise <64306407+OneAsianTortoise@users.noreply.github.com>
* [s] Makes used grenades slightly more obvious. Also prevents DOSing admins. (#64643)
* Makes used grenades slightly more obvious.
Adds a variable to tell whether a grenade can't detonate properly.
Examining can be used to tell if the grenade has already been used.
A flag on it is set when the grenade detonates so that used grenades can't be reused until it's reset.
It also prevents spamming admins with grenade primed messages since there's no point if the grenade won't work.
* Changes dud var to dud flags.
Changes the name of the dud var to dud_flags to clarify that it is a set of bitfields.
Changes the default value of the dud var to NONE also to clarify that it is a set of bitfields.
Changes the documentation for the dud var to clarify that it is a set of bitfields.
* Fixes eternally armed dud grenades.
Makes the grenades reset their appearance if they reach the end of their fuse while a dud.
Prevents chemical grenades from staying in the 'i am armed' visual state forever.
* [s] Makes used grenades slightly more obvious. Also prevents DOSing admins.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Put a comment explaining the client parent_type line (#64629)
I also took the opportunity to sketch out the description of the client
object itself
* I cast identify at 9th level
Co-authored-by: oranges <email@oranges.net.nz>
* Fixes some rodform gibbing bugs (#64574)
When I initially did moveloops in like, febuary of last year or
something, I made what I thought was a minor change of turning a Move
override into a Moved override, alongside moving some parent calls.
It turns out by doing that I made wizard rods perform one bump before
exiting. This well uh, gibbed the wizard, cause of how explosion code
works.
Life is pain. This resolves that issue
* Fixes some rodform gibbing bugs
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds an extra signaler check to compare frequencies with the incoming signal (#64666)
Fixes setting signallers frequency.
* Adds an extra signaler check to compare frequencies with the incoming signal
Co-authored-by: Jackraxxus <60418544+Jackraxxus@users.noreply.github.com>
* Adds Shuttle Ceilings on Multi-z Maps (#64493)
* Ports multiz shuttle ceiling function from #63920
* Adds support for /turf/open/space/openspace to actually make the code work
* Remove tgstation.dme
* Implement code review suggestions on documentation
* Change variable names
* Replace missed oldT
* Adds Shuttle Ceilings on Multi-z Maps
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
* Remove the beakers requirement for making component printers and module duplicators (#64620)
Remove the beakers requirement for making component printers and module duplicators.
I added this because I was copying, like, the protolathe or something, which can take chemicals even though we don't actually use that for anything, it's just annoying.
* Remove the beakers requirement for making component printers and module duplicators
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Fixes frying objects that store other objects (#64594)
* Fixes frying objects that store other objects
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Splits the Fire Alarm sound into four files (#64324)
* sound fission
* I can't believe malf tools betrayed me like this
* much ado about 0.008
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Pay no attention to this
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Splits the Fire Alarm sound into four files
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Adds burial garments to the religious supply crate (#64565)
Corrects the description of the religious supply crate by adding burial garments to the contents as listed.
* Adds burial garments to the religious supply crate
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* Clicking cancel on the carp rift will no longer summon you as a carp (#64580)
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
* Clicking cancel on the carp rift will no longer summon you as a carp
Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
* Fixes disposal self deletion (#64612)
Disposal holders are meant to stack up in the pipe if they're not moving
The check for this is typically done using the active variable when two
holders collide.
Unfortunately when I converted holders over to move loops, I forgot to
set active to false properly.
This means the part of deconstruct code that handled ejecting the
contents of the pipe couldn't really function, since there was more then
one holder stored in the pipe. so all but one of the holders just got
qdel'd. Not good, makes people upset for some reason
This resolves that issue
* Fixes disposal self deletion
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Add undelivered departmental order crates and syndicate bombs to the cannot be delivered message. (#64606)
* Add undelivered departmental order crates and syndicate bombs to the shuttle cannot be sent message.
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
* fixed ethereals being unable to charge from APCs (#64547)
This PR allows ethereals to receive and give charge to APCs again. I had to make some design choices due to the fact there is no clear solution with ethereals having an action with two possible outcomes. I moved ethereal APC charging to its own function called from the right click attack hand function.
* fixed ethereals being unable to charge from APCs
Co-authored-by: MacBlaze1 <33578623+MacBlaze1@users.noreply.github.com>
* Brimdemons (#64592)
Adds brimdemons, these are lavaland creatures firing blood lasers at their enemies.
Brimdemons drop brimdust, which can be used as a botany reagent (it heals the plant, removes weeds and pests and increases potency), and also to craft ore sensors, which are basically primitive ore scanners, on your ears.
Adds tropical lobstrosities to lavaland and removes them from xenobiology, also gives them a crusher trophy that staggers enemies for 3 seconds.
* Brimdemons
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Refactors pay stands + custom vendors (#63889)
I am disgruntled by the way pay stations work. They're not intuitive, they're a pain to build and have no interface. Basically: They don't get made, and the potential is lost.
Pay stands => Holopay
Summoned by right clicking your ID
Disappears if the card is out of range.
New TGUI window that offers more customization
Other bundled fixes:
Custom vendors become more user friendly
Code improvement
Lots of documentation + refactoring
New bundled number input will likely take place of animated number in tgui input number
Why It's Good For The Game
More RP opportunity for players, plus bug fixes. It's now much easier for players to start their own in game business selling substances clown shoes.
Changelog
cl
code: Created a new input component that accepts only integers. More usage to come.
refactor: Pay stands are now holographic. It's 2562! Create one by right-clicking your ID.
del: Circuit boards for pay stands.
refactor: Pay stands now have their own TGUI.
fix: Custom vendors now alert you when someone makes a purchase.
fix: Custom vendors now place items in your hand when you make a purchase.
/cl
* Refactors pay stands + custom vendors
* I edited these maps in a text editor
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fixes a wizard rod form hard-del + cleans up code (#64469)
Fixes a hard delete with wizard rod form
Moves the wizard var from the base immovable rod to the wizard subtype
Cleans up the code a bit. Better var names / more modern.
Splits the suplex action into a separate proc for the wizard form of rods.
* Fixes a wizard rod form hard-del + cleans up code
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds direct support for weakrefs to vv (#64521)
* Adds direct support for weakrefs to vv
* Update code/modules/admin/view_variables/get_variables.dm
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fine, have a readable name.
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds direct support for weakrefs to vv
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes the span of cult deconversion text, and removes a duplicate definition (#64552)
Fixes the span of cult de-conversion text.
span_warning was completely overtaking the purple that normally comes with de-conversion text, which was very easy to confuse. Removes the span_warning.
Removes the duplicate definition of /datum/antagonist/cult/on_removal(), since i'm here.
* Fixes the span of cult deconversion text, and removes a duplicate definition
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>