* Implements a Demolition Modifier variable to items, affects damage vs structures and robots. (#66967)
Adds a modifier variable which can be used to increase or decrease a given items damage to structures, machinery, vehicles, and robots (including cyborgs, simple-bots, and anything else with the MOB_ROBOTIC biotype)
* Fixes attacks on mech equipment ignoring armor / melee damage, also fixes mech equipment not being disabled at 0% health, also also unit tests mech armor (#67411)
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Adds a new desk bell item, for sadists. (#67199)
It's entirely unrealistic that there isn't a way for customers to annoy the hell out of any workers they desire with the simple press of a button.
Changelog
cl Wallem
add: Adds a desk bell, so you can let the service industry know how much you truly care about their hearing.
/cl
* Adds a new desk bell item, for sadists.
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Revert "Add stamped requisition forms now give bonus credits (#66230)" (#66851)
This reverts commit f021767645.
This reverts commit f021767 from:
Add stamped requisition forms now give bonus credits #66230
This bug was encountered when we were testing this PR but I thought it got fixed.
Why It's Good For The Game
Cargo crates will now reappear.
* Revert "Add stamped requisition forms now give bonus credits (#66230)"
Co-authored-by: Tim <timothymtorres@gmail.com>
* Steal objective can now be cashed out early for less reward as soon as you place the bug on. Removes smuggling objective and adds a new 'Destroy Machinery' objective (#66771)
Steal objective can now be cashed out early for less reward, but completing the time in its entirety will give extra TC and reputation.
The smuggling objective has been removed and replaced with the 'Destroy Machinery' objective, which focuses on disrupting workflow by destroying stuff like protolathes, telecomms and research servers.
Made the easier steal objectives worth slightly less TC
* Steal objective can now be cashed out early for less reward as soon as you place the bug on. Removes smuggling objective and adds a new 'Destroy Machinery' objective
* eeeee
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Refactors firestacks into status effects (#66573)
This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.
Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.
Also changed some related proc names to be snake_case like everything should be.
This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing
* Hud Image Culling By Z Level: Theft edition (#65189)
* makes hud images only apply by z level
* makes some of the atom_hud procs have better names
* fixes warning with the hud_user list and adds better documentation
* better docs for hud_images
* removes TODOs
* docs for hud_list
* adds support for linked z levels so mobs can see lower ones
* fixes merge conflict and shittily makes only shocked airlocks get added
* adds support for setting images in the hud as active and inactive
* gets rid of unatomic spatial grid change
* maybe i should actually try COMPILING my changes
* fixes merge skew and makes it compile again
* fixes huds refusing to remove from users who changed z level
* improves z level and registration logic
* fixes antag huds not appearing
* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me
* Ensures that hiding a basic appearance also hides the atom's active list too
* Fixes antag huds going poof
Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it
This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.
Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.
* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list
* fixes mistake with hud_users list being set non associatively (bad)
* as anything in bot path loops
* Fixes merge skew problems
* Makes bot paths non global
This way they can show themselves to only the bot that "owns" them, ya
feel me?
* Fixes huds not showing up sometimes, cleans up some code
Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:
call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen
*cries*
* Renames add_hud_to_atom to show_to
My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars
* remove_hud_from_mob -> hide_from
* Nitpicks a few comments
* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh
* Moves check down, improves stack trace a bit
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* small touch-up
* this should do it
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* updateDialog and updateUsrDialog cleanup (#66494)
This PR focuses on cleaning up two procs - updateDialog and updateUsrDialog. Both of which are/were used updating for old HTML UIs. As these UIs got converted to TGUI over time, these old code fragments started to pile up, often due to coders simply overlooking them. This resulted in them being dead code doing nothing when called, or randomly opening up windows when they shouldnt, for example when a vending machine is screwdrivered and UI cannot even be interacted with.
However, there were also some desirable uses - like opening a window when an ID is inserted into civilian bounty console, which you are then gonna obviously use to pick a bounty. I kept these uses and replaced them with proper ui_interact, so they now always work, instead of them working only when you had them set as a currently used machine on mob. The list of these changes is:
Civilian Bounty Console will now always bring up its UI when you insert the ID.
Air Alarm and APC will now always bring up its UI when you unlock their controls.
Portable Chem Mixer, Chem Dispenser, Chem Heater, Improvised Chem Heater, Chem Spectometer and Chem Master will now always bring up their UI when you add or replace beaker to them.
Two old /Topic calls were cleaned up as well, as they were no longer relevant.
Removes dead or outdated code, adds sensible UX when working with certain UIs.
* updateDialog and updateUsrDialog cleanup
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
* Changes the values of the pen colour variable from color name to hexadecimal (#65553)
About The Pull Request
See the title. Hexadecimal values are better than color names for programming since they can be sanitized and are more easily converted to RGB(A) or HSV. Color names aren't really meant to be used in some functions and methods about colors.
TL;DR: color names don't work with the Color common package in the TGUI folder.
Why It's Good For The Game
This will remove the need of a hacky bandaid from /obj/item/canvas/proc/get_paint_tool_color that only covers about half the pen colors anyway.
Changelog
cl
fix: Fixed certain pens breaking painting on a canvas because of their peculiar colors.
/cl
* Changes the values of the pen colour variable from color name to hexadecimal.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Changes how fingerprints are applied to objects through gloves. (#65674)
* Changes how fingerprints are applied to objects through gloves.
* Fixed the issues from transfer_prints
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Removes a forgotten devil proc in photocopier code (#65432)
Someone forgot this here (and even left it in when tgui'ing the
photocopier) So now i'm going to kill it
* Removes a forgotten devil proc in photocopier code
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
* Tool act superpack 2 (#64428)
About The Pull Request
Continuation of #64375, extracting tool behavior from attackby() and moving it into discrete _act procs. This is about as many files as I had in the last version, as I still want this to be reviewable.
As before, I've tested everything in game and it works as it previously did.
Why It's Good For The Game
The more code moved out of attackby, the more modular things become.
Changelog
cl
refactor: Moves more tool behavior out of attackby().
/cl
* Tool act superpack 2
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* It begins.
* I should've made more commits
* Adding a new animation!
* This was a good day
* Adding the last missing items
Aka, the hydraulic clamps and the rapid mail delivery device
* It works and I couldn't be happier
At long last...
* I lied, but now it works
* Final little tweak to an icon
* Removes some unused icon_states
* Okay now everything's actually fixed and finished, minus balance changes.
* Whoops
* Fixed the shapeshifter borg and uses the RIGHT WIDEBORG SPRITES HOW DID I MISS THAT???
* Reverting the non-modular clipboard change because I actually did it upstream
* Revert "Reverting the non-modular clipboard change because I actually did it upstream"
This reverts commit bb475498d6a67410792a57e1d91ef5d2d25067dd.
* The clamps can place things on tables + adding chameleon stamp to emag modules
* Conveyors too, actually!
* I'm dumb
* Fixes to wideborgs
* Fixing the animations (thanks TG)
* No free secborgs :)
* Fixes animations and open cover sprites!
* Updates to the zoomba and MissM sprites and bounty cubes are now small, so they fit in both clamps (not even wrapped!)
* Yes I can code
* Fixes the zoomba sprites and transparency for hardlight paper planes!
* More fixes to the Zoomba icon, and to the hardlight paper planes (now it's actually transparent)
* Adds the flash because I forgor
* Fixes stamps being randomly applied to paper even when not blind (#64041)
ui_interact doesn't actually return true or false, and for some reason I
was under the impression that it was.
If you really think about it this is Shiz's fault for merging it after
20 minutes and NOT because i didn't properly test it.
* Fixes stamps being randomly applied to paper even when not blind
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
* You can now stamp papers while blind (#63983)
* fix
* documentation
* missing message
* better msg
* You can now stamp papers while blind
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
* modsuit works with speed potions + ai movement fix + file sortage (#63670)
modsuit examining now tells you about wire panels
fixes being able to remove stuff with the dna lock
fixes 63650
fixes 63633
sorts module files
* modsuit works with speed potions + ai movement fix + file sortage
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Improve the bureaucracy system (#61323)
Adds a blank printing system.
Virtually every Space Station 13 server has its own system of bureaucracy. As a rule, it is some kind of Wiki page with markup tags and a few sample forms. And that's usually the end of it. With stamps and a filing system in place, people rarely use them. This PR takes it upon itself to remedy this situation by introducing form standards into the game itself and adding the ability to print them.
Co-authored-by: twilightwanderer <twilightwanderer@ users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* Improve the bureaucracy system
Co-authored-by: twilightwanderer <88540658+twilightwanderer@users.noreply.github.com>
Co-authored-by: twilightwanderer <twilightwanderer@ users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)
About The Pull Request
Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.
This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.
Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.
Some implications of this setup were:
You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.
Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:
endless-stack-of-intercoms
Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!
Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used
Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.
Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.
tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game
fml
Changelog
cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl
* [MDB IGNORE] dir sanity, primarily on WALLITEMs
* apc directionals
* bluespace vendor fix
* defib fix
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
* runtime fix for borgs cryoing with upgrade modules + no more mmi laying around after they cryo, and various other runtime fixes
* Fixing conflicts
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Printer Circuit Component (#62012)
I'm adding a circuit component that can print text string on a paper object in a variety of colors and font typefaces (currently only web-safe ones are available, maybe i'll add some fancy ones in the future but they'd need to be imported either through @ import of @ font-face in a separate CSS not imported by every tgui UI).
It's important to note that because the UI sanitizes new text inputed by users and not what's already written on the paper (so the pen_color and pen_font don't be purged in the process), we can't safely have these strings "printed" into the info variable directly, because of that these values will be stored in two new list variables, one for the text and one for font color, face and the signature. When the paper sheet UI is opened, these will be sanitized and then parsed into the text, so the next time the paper is edited we can clear these two lists.
Obviously better than a hacky byond proc - parsemarkdown() is outdated af -, albeit a bit messy... like the rest of paper code.
Requires #62033.
* Printer Circuit Component
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Changes paper bins to be easier to use (#61429)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Changes paper bins to be easier to use
Co-authored-by: Superlagg <sprambersonson@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Updates Greyscale Colors of PDAs and Gives QM a Survival Pen since I was in there anyway. (#61261)
About The Pull Request
Hallo! This is part two of my PDA update, where I take the old hokey colors that were just left in to not rock the boat, and changes them to better fit the current aesthetic of the game. It also makes the captain's PDA have some more fanfare, without even adding a sprite, I just did a funny trick with the layers.
In addition to that, I have updated the sprite for the survival pen, and made it so QMs start with one in their PDA.
bespoke final
peen
Why It's Good For The Game
The old PDA colors on the new PDA sprites were odd in a few places, this fixes that. I spent about a week or so going to different players of the different jobs and departments getting their input on what colors they'd like their PDAs to be, and now the best looking options that make sense, will be added in! Woo!
Also I just think the QM having a emergency shovel is kind of cool, and its a really neat item that deserves just a little more love, so why not?
Changelog
cl
expansion: Updated old GAGS colors for the PDAs based on user feedback
imageadd: Updated appearance of the Survival Pen
expansion: The Quartermaster now starts with a Survival Pen because its flavorful. Survival Pen has also been updated to use the fancy font, since, its fancy.
/cl
* Updates Greyscale Colors of PDAs and Gives QM a Survival Pen since I was in there anyway.
Co-authored-by: EricZilla <81941674+EricZilla@users.noreply.github.com>
* Baton refactor. item/melee/baton is now a subtype of item/melee/baton (formerly classic_baton)
* EEEE
* E
* follow the fucking guidelines
* E
* Update CentCom_skyrat.dmm
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Pen & Paper Bin minor resprite (#61159)
sprites for thing that didn't have one, and they look better i think probably
* Pen & Paper Bin minor resprite
Co-authored-by: Kokonut <38844529+maxymax13@users.noreply.github.com>