* Moves screen objects from mob to hud (#54400)
This moves screen images from icons/mob to icons/hud
Makes more sense and it is easier to find
* Moves screen objects from mob to hud
* Update radial.dm
Co-authored-by: nicbn <nicolas.nattis@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Fixes item actions being blocked by being unable to walk or laying down. (#54310)
* Fixes item actions not being able to be done while laying down, buckled, etc.
Co-authored-by: msgerbs <msgerbs@users.noreply.github.com>
* Adds rollerskates, wheely can do tricks (#53497)
This turns wheelys into a skateboard subtype so they are no longer a copy paste of old skateboard code. They have lower stability compared to skateboards.
I've also made a whole bunch of small adjustments in the process to make skateboard code cleaner and more modular, such as turning the improvised skateboard to its own subtype so that construction steps don't need to be overwritten for all subtypes
Adds two subtypes of wheelys:
-Rollerskates: more stable than wheelys but slow you down when the wheels are retracted
-Skishoes: For skiing! Only work on snow, obviously
I wanted to add some fun alternatives to skateboards with their own drawbacks, and the ski shoes were an opportunity to do something fun for icemoon maps
* Adds rollerskates, wheely can do tricks
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
* merges the sunglasses from detective's office with his spy glasses, makes spy glasses use action button instead of verb (#53355)
* merges the sunglasses from detective's office with his spy glasses, makes spy glasses use action button instead of verb
Co-authored-by: Fikou <piotrbryla@onet.pl>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.
Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.
This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.
To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.
Requested by @optimumtact.
Changelog
cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Reworks the Hierophant Club as a general utility item and removes attacks. (#52880)
This PR reworks the Hierophant Club into a utility item. Mining? Gone. Attacks? Gone.
In their place? 5-tile range point-and-click instant teleport similar to the ninja. Max charge is 1. Recharge time is 15 seconds.
With the removal of this bloat, the item is now small enough to fit in the average backpack.
The hiero club establishes itself as the entry-level megafauna drop from the entry-level megafauna.
* Reworks the Hierophant Club as a general utility item and removes attacks.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR (#51459)
Instruments and sound channels refactor.
* Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR
* Fixes dme dupe
* Fixes dme dupe (#52954)
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Refactors area stuff (#52751)
-bitfielded a bunch of bools on /area, I left some untouched cus they get called a lot
-Unused vars
-Fixed a var pretending to be a fake bool
-Probably more
* Refactors area stuff
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Added it to a random timer as proof of concept.
This is less performant than storing world.time in a variable, but it's a simple, quick, easy and dirty way to add a cooldown to something. Just create an ID and you need do no more besides using the macros.
Helps with clarity and adding cooldowns on the fly.
* Case of lower
* More changes
* Ruins the nice 420 diff, brainfart when doing the second batch of conversions
* More changes
* Next batch. I think
* Converts even more paths
* Restarts bots
* Capital Free Zone
* Come on travis, do something
* Renames areas
* Bots, please stop dying
* Updates CONTRIBUTING.md and updates a few paths I missed.
* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
* king goat memes
* I cant grammar
* newline
* the arena is no longer pressurised
* How into grammar
* I am embarrassed I did not notice this
* no hotel vacations in the arena
* better goat hoof sprite curticy of stephen
* new goat gun sprite
* might as well
* grammar
* no more king goat plushies in toy crates
* Update code/modules/mob/living/simple_animal/hostile/megafauna/king_of_goats.dm
Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
* done
* based and redpilled
Co-authored-by: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
About The Pull Request
This makes space suits use a cell and warm the wearer, This was handled by the handle_environment proc in the past with an override to make the suits work. This corrects this issue, and removes the override.
All space suits will have a cell installed at round start, this cell will last 15 min on average usage.
The cell cover can be toggled by alt+clicking (press the button), or using a crowbar (just pry it open) on the suit.
With the cover open you can remove the cell by using the suit in hand, or ctrl+clicking the suit.
As well with the cover open you can use a screwdriver to set the thermal regulator's temperature. The normal range is 20 c to 45 c, do not use an emag on the suit to increase the temperature range.
Examining the suit will report the temperature setting and the cells charge, if the cover is open you will also be able to see the type of cell that is in the suit.
Suit storage units will now charge the cells in suits, they will also require power to operate properly now.
Why It's Good For The Game
Space suits should be managing the wearers temp in space not using some override.
Lizards now have a portable heater in the form of any space suit.
Now that suits need a cell it is not as easy to spend all session in a space suit.
New interactions with hardsuits and emp's give nice combat buff to an underused item.
Nuke ops can raid xeno for some nice yellow cells, or science for a big old bluespace cell.
* update_icon() improvements
Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().
The rest of obj/item fuck it
* Suggested fixes, also passes the linter
* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON
* Actually this is better
* Signilzes datum/action to update its icon when its connected item does.
* PDA cart swapping, eject hotkey and verb
* Update PDA.dm and action.dm
- Toggle light action button
- Proper use of mob/user instead of usr when appropriate
- Fixes UI not updating when ejecting or inserting cartridge or ejecting ID
- Makes toggle_light item action work with PDAs
* Nanotrasen fires the Wave Motion Gun at the Clock Cult
* Fixes a random changelog appearing from the reebe void.
* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.
* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.
* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron
* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
* Medborg Crew Monitor Upgrade
Adds the crew monitor to medborg upgrades.
Why This is Good for the Game: The important second part of the crew pinpointer; as a result, medborgs no longer have to glue themselves to fixed crew monitor consoles in order to do the paramedicine job they excel at, which is boring and lame.
* Update
Revised per request so that the crew monitor upgrade is integrated with the pin pointer.
* Debug removal
* Verb removal
About The Pull Request
See title.
Why It's Good For The Game
Plasmamen get the same welding protection as everyone else, that is with welding helmets, with the same trade-off and negatives. Goggles are rather hard to obtain for most roles, (provided #45460 is reverted, which is kind of ought to be) and plasmamen aren't able to use helmets.
Basically nullifies the concept of using this as flash protection unless used by a particularly quick-witted plasmaman, (or someone willing to always be half-blind) while still offering welding protection.
I might consider re-adding transparent helmets but only if humans wear them, as it doesn't look good on plasmamen, which is the whole point of the helmet.
Changelog
cl
balance: Plasmaman helmets now have welding visors, which can't stack with their torches in the helmet and are visible.
fix: Clicking on the helmet with any item no longer tells you that someone's already drawn a face on it, you can't put infinite faces on it.
tweak: Plasmaman helmets hide masks again, the sprites are no longer transparent. Mind, the original bounty just wanted it so you could see faces through it, not for it to be transparent.
tweak:Plasmaman helmets now have special smile sprites rather than pulling from the EVA one, as the visors are different sizes.
balance: You can't eat through plasmaman helmets anymore.
/cl
* One
* adds the attack for megafauna.
* saves a few lines of precious diff
* return
* slightly uncurses it.
* That's a lotta damage
* Legion buffs
* There we go. Audio feedback and stuff.
* Untouches code this has no buisness touching,
* Removes mean comments
* comment spelling
* Alright, this replaces the process.
* Removes the unneeded file
About The Pull Request
Table of contents:
You can no longer deploy the box while you are inside of something. Fixes#45288
The box should no longer get hard deleted when someone else opens it.
The box now alerts people to you, even if you are the one who opened it.
Why It's Good For The Game
First one is obvious, exploit bad. You should just teleport out of mechs and welded lockers.
Second one also obvious.
Third one is because I did that on accident while testing and found it very flavourful. Feels a lot more like a sneak box if you always get the reveal animation with the red exclamation mark.
Changelog
cl
fix: You can no longer activate the stealth implant while inside of other objects.
balance: Leaving the stealth box always alerts nearby players.
/cl
About The Pull Request
This PR ports Baystation color carps. In short, normal carps can now spawn in variety of colors,
This only affects normal carps, not special ones like magicarps or megacarps, these retain their own unique sprite. There are also some pretty rare color variant for carps and our friendly Syndicate carp Cayenne has increased chance to get it.
Why It's Good For The Game
Better aesthetics and immersion.
Changelog
cl
imageadd: Normal carps now spawn with a random color! There might even be some really rare color variant.. try asking Cayenne about it.
/cl
* adds small sprites for many of the large megafauna
moves fireball target code back to drake file
changes the speed of every megafauna mob to its move to delay so player controlled ones have the same speed
adds action abilities to each megafauna so players can select the type of attack they want
refactors pretty much all of the megafauna code to be simpler to edit and easier to read as well as have some consistency in where stuff like initialize goes
lesser ash drake now inherits alt click on instead of normal ash drake having it
hierophant no longer blinks on alt click as well
removes pointless check in legion code for ranged timer delay as the proc that calls openfire already checks that
adds icon for new bubblegum blood tracks
bubblegum blood no longer leaves footstep trails as it caused massive lag when many blood tiles were run over in a fight as well as being way too excessive
* fixes a megafauna bug where they could not attack while in space
megafauna can now move through space normally as they would anywhere else
bubblegum no longer runs from corpses and people dying
* fix the weird line errors
* lots of sins have been cleansed (0 = false 1 = true)
switch cases for player attack selection
bubblegum has been bug fixed a bit (steps can be blood warped to, adds blood warp ability)
bubblegum now has some slight additions to its attacks to keep the fight faster paced
bubblegums enrage mode now lasts longer and makes him move faster
legion now has their speed changed properly when they charge (wow this is an old fucking bug like old old)
bubblegum now tries to be aggressive towards people that are laying down (no more resting under bubblegum charges without consequences)
bubblegum now spawns slaughterlings when he devours targets
* fine tunes new bubblegum attacks and replaces some is_procs with defines
* fixes stupid snowflake stuff in bdm code
specifies in defines for bubblegum
lots of sleep_check_death now to avoid stupid stuff
removes need for hierophant_dying var as well as combines all the blast procs into one since they were so similar
* Add files via upload
* Rename space_dragon.dm to code/modules/events/space_dragon.dm
* Adds Space Dragon
* Adds Space Dragon Event
* Remove Copied File
* Put antagonist definition in proper location for space dragon
* Update space_dragon.dm
* Removed passive health regen from space dragon
* Updated Weight and Earliness for Space Dragon
* Added Objective to Space Dragon, Updated Starting Blurb
* Cleaned Up the Objective Determiner
* Actually fix the space dragon objectives
* Fix the objective display for the space dragon's target
* Updated Space Dragon Intro Blurb
* Updated Centcom Message When Space Dragon Spawns
* Updated Space Dragon's description with new lore
* Clean Up Space Dragon's OnFire()
* Add Space Dragon Sprites
* Sprite in wrong location
* Properly adds Space Dragon Sprites
* Adds Space Dragon Tiny Sprite to be Carp
* Space Dragon Uses New Sprites, Tiny Form Updated
* Increased Time Til' Dragon Spawn
* Drake's Tail Sweep Now Uses Prebuilt Spell
Thanks to Cobblestone for the head's up on this.
Cuts something that should be there
hardens pp
largens pp further
maximiezes pp
fixes code
Auto stash before merge of "forth-times-the-yeah" and "BuffEngineering/forth-times-the-yeah"
Adds Initialize()
First Draft
Mostly works
Removes redundant code, adds other colors, adds to CE locker
oops forgot to
hardens pp
maximiezes pp
Adds Initialize()
Auto stash before merge of "forth-times-the-yeah" and "BuffEngineering/forth-times-the-yeah"
oops forgot to
Attempts to balance the hardhat, adds to EngiDrobe
Removes unnecessary code and sprite, adds necessary sprite
How can commas be real if our eyes aren't real
Fixes bad slash
Fixes runtime
Optimizes code after runtime fix
Removes redundant code
Fixes 3/4
*scream
Makes visor coverage consistent with new sprites
Actually fixes the issue
samus? its an honor
Makes requested changes
Doesn't delete welding hardhat sprites
cl ShizCalev
tweak: Paper airplanes can now have their hit probability adjusted by badmins.
add: Added syndicate paper airplanes. They are rather robust and are guaranteed to hit someone in the eye.
add: Added The Art of Origami to the syndicate uplink. This allows you to fold weapons grade paper airplanes. It will also allow you to catch paper airplanes when you have the ability enabled.
/cl
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.
Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove
cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.