* 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>
* 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
* 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>
* POLICE TAPE WOO
hmmgh
* Much things, read desc
Placed tape is a structure now instead of an item, door sprites are actually torn, all code besides destruction works (mostly)
* TAPE WORKS 99%
just need to have a visual for lifted tape..
* Adds lifted visual + starts on making tape obtainable
ahgghbkaghb
* finishes the vendors. 100% complete(?)
AAAAAAAAAAAAAAAAAAA
* detdrobe vending
abghb
* lifted alpha is better
hbgb
* change opacity hngh
* indentation bhgjknbg
im so tired
* walking can crumple the tape too
* desc
* USB Cables -- Connect circuits to computers/machines (#59345)
* Initial commit
* Sprites, finishing work
* More ways to detach from circuitboards
* Clear TODOs, give bots a button
* Fix qdel loop
* Designs
* It's the bots that have them
* Grammar fix
* Feedback for connecting to circuit directly
* Add USB cable design to basic circuitry
* Better naming
* Feedback
* Fix for new code
* COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY
* span procs
* USB Cables -- Connect circuits to computers/machines
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
* 0
* A
* a
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Refactors tram code to be more robust (#59596)
Tram code has a lot of locate() in list, a lot of unnecessary typechecking and generally bad practices. This refactors tramcode to be easily more maintainable and to have more consistent behaviour, as well as removing any unnecessary code.
* Refactors tram code to be more robust
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Makes obj_integrity only updated through procs (#59474)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.
get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
* Makes obj_integrity private and only updated through procs
* Mirror!
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Makes railings drop rods on deconstruction (#59397)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Makes railings drop rods on deconstruction
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes runtimes related to forensic components on deleted things. (#59315)
* Fixes runtimes related to forensic components on deleted things.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Some associated move fixes (#59299)
* Moves the loc assignment for null doMove target locations to before exited() is called, making it consistent with other uses of the proc, and fixing a harddel caused by deleting something inside of an open storage component. The component assumes that the removed object has already exited its contents, and so readds it to the screen, causing PAIN
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Some associated move fixes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Makes canister leaking and blowing up use a component and element respectively (#59075)
I want to use this behavior on some other things so into a component and element it goes. Gas leaking is handled by a component so it can process whereas the object breaking and causing an explosion is handled by an element. Some minor changes were made so canisters were more consistent in leaking.
* Makes canister leaking and blowing up use a component and element respectively
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* I hate TGUI even if its better than what we had before
* this is why linters exist
* you need to be a Head or the Warden to get items
* does this please you linter?
* foundation
* basic interactions
* yea I can spell okay?
* linters please leave me alone
* begone debug code
* if you are dead, no interacting
* linters leave me alone
* linters are stealing my soul
* forgot to do this
* sound framework, probably wont work though
* max length, and interaction cooldowns
* message can now be a list and minor code improve
* I am a slave and linters are my master
* fix improper static reference
* add json loading/saving functionality
* default for message is now a list
* jsonize def interactions; implement requirements
* bad
* bug fix; CtrlShiftClick to interact
* minor qol fix
* fix CtrlShiftClick and remove debug code
* haha docker has security measures
* this was painful
* why are you in this branch
* begone
* bruh
* begone
Co-authored-by: Matthew <matthew@tfaluc.com>
Co-authored-by: Matthew J <GoldenKeyboard@users.noreply.github.com>
* use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
* USE SIGNAL_HANDLER REEEEEE
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* fixes traps not adding connect_loc in base type (#59196)
* fixes traps not adding connect_loc in base type
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Catwalks are now above cables and piping.
* Revert map changes
* Revert oldstation change
* merge type
* Reimplements the cable check, but for space tiles only
* Gives curators a console for printing portraits not in the round onto canvases (#59146)
* Gives curators a console for printing portraits not in the round onto canvases
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Tokens: working
* Headset too
* No more headsets, let's save that for the next PR
* So close to Modular
* No more sargies
* Well that wasn't it
* Adds Trim Tokens and includes them in the sergeant token.
* Actually adds Trim Tokens, staging helps :)
* Fixes CDO not matching the security_has_maint_access config
* Adds sound to the trim token's application.
* Not all tokens are infinite anymore.
* Grumble grumble no more sargies
* 1 token now
* Better conditions, one less unnecessary return
* Remember kids, always check for floating parenthesis
* I swear I know what I'm doing
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Commission Plaques (#58995)
Adds commission plaques- these commemorate the day a station was added to the game (adjusted for SS13 time) and the day it was removed (in the case of removed stations). If I got any of the dates wrong, please feel free to tell me.
They're added to every in rotation station, as well as the Derelict and Runtime Station.
Many thanks to Fikou for providing the git hashes for each commit to add/remove a station:
It's a neat nod to the maps' OOC history, as well as simply being some nice flavour.
* Commission Plaques
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
* Mosin resprite, Bubba mosin, Riot shotgun & Combat shotgun resprite, C20r fix
* mosin so cool!
* Get rid of HoP's gun in favor of old energy gun
* QM Mosin
* oops forgot to update obrez
* disclaimer
* Small wording change
* Skyrat edit note
* I messed a / up
* prevents tram from stealing its own landmarks (#58962)
* stop stealing the landmark please!!!
* better fix
* prevents tram from stealing its own landmarks
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
* tramprocess only fires on maps with trams (#58940)
* SStramprocess only fires on maps with trams actually present on the map
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Gives the monkey a gun (#58565)
This adds a rare-ish negative station trait that gives Pun Pun a weapon, fills their heart with anger, and bloodies up the location they spawn in. (Yes the weapon is even more rarely a gun)
A request for one of the weapons to be a sign meant that a random sign type was added here as well.
* Gives the monkey a gun
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc
* WHEW THAT WAS EASY
* Update ammo.dm
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* this was embarrassingly easy to port
literal copy and paste and it works fine with only one line needing to be removed
* new lines keep the linter check happy
* begone single letter vars
* a
* b
* we lore friendly bois now (i think)
* Presidents use country names which I'd rather be corporation names
dab
Co-authored-by: Prodirus <prodirus@gmail.com>
* Turns existing comments in the file DMdoc comments, adds like one new comment (#58894)
Co-authored-by: Your mother <mothmilk666666666666@ tfwno.gf>
* Turns most extant comments into DMdoc comments and adds one new comment for a variable in code/game/objects/structures/fluff.dm
Co-authored-by: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
Co-authored-by: Your mother <mothmilk666666666666@ tfwno.gf>
* Fixes bitwise flag negation errors. (#58870)
These have been in the codebase for many years. Love, ZeWaka
* Fixes bitwise flag negation errors
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* RCD repairs grilles before adding windows to them (#58812)
* RCD repairs grilles before adding windows to them
- Grilles need to be clear of unanchored items for a window to fit on them
- Attempting to build a window on a grille with unanchored items on it will automatically move 20 of them to your tile
- If more than 20 items are on a tile, adding the window will fail (but you can just do it again to move 20 more)
- Grilles no longer rely on a subtype to break
* Uses text macro thing for simpler code
* RCD repairs grilles before adding windows to them
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* fixes stuff made with bronze sheets deconstructing into tiles or not being able to make bronze golems (#58708)
* fixes poopy bronze tiles sstuff
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf <jzo123@hotmail.com>