* Combo streaks (not just the hud icons) now reset after half a dozen seconds (amount subject to change). (#57167)
Co-authored-by: Ghommie <425422238+Ghommie@ users.noreply.github.com>
* Combo streaks (not just the hud icons) now reset after half a dozen seconds (amount subject to change).
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Ghommie <425422238+Ghommie@ users.noreply.github.com>
* Fix oversight allowing orbiting players to force the player they're orbitting to *surrender (#56972)
Observers with auto-observe inherit the HUD of the person they're observing. This includes Alerts. Alerts can be clicked. Alerts have varying levels of snowflaked checks. Some called parent and didn't check the return value. Some perform actions direct on usr instead of owner.
All of this has been standardised. Every single screen alert now calls ..() on Click() and returns early if the parent proc call returns false.
/atom/movable/screen/alert/Click now returns some useful value to children that call it.
* Fix oversight allowing orbiting players to force the player they're orbitting to *surrender
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Hovering your mouse over things now shows their name on the top of the screen (#56729)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Hovering your mouse over things now shows their name on the top of the screen
* a
* Update preferences_savefile.dm
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Makes n2o nontoxic, for reasons (#56839)
Counter to the original intent of the change seen here #50126, n2o will currently deal damage when used with both internal tanks and floods, as the threshold picked for it was about 0.15 moles at room temperature. Even outside this oversight, the original goal can't easily be achieved. Because breathing works off partial pressures, anything you can do with an anesthetic can you can do with an n2o flood.
Therefore I don't think it's behavior worth keeping, as even as a way to disincentivize non-antag n2o floods it would do little.
* Makes n2o nontoxic, for reasons
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* fixes 2 runtimes caused by holding people up with a gun (#56800)
Fixes two runtimes, one caused by status effects always expecting a return from throw_alert, and another caused by holding yourself up (which you shouldn't even be able to do). Also fixes an issue caused by multiple people holding up the same person, when one of the perpetrators stopped holding up the victim, all of the victim's related alerts disappeared.
* fixes 2 runtimes caused by holding people up with a gun
Co-authored-by: TJatPBnJ <69724863+TJatPBnJ@users.noreply.github.com>
* Change health analyzer, chemical scan is now on right click (#56779)
Health analyzer is now left click for health (or wounds, if you toggle
it) and right click for chemical scans.
Ever since the tgchat combine-previous-chats-in-one thing, knowing what
mode you're on has been a pain for me, as well as needing to cycle
through all of them. Furthermore, this is just a sane right-click
action to have.
* Chemical scan is now on right click, removes it as a toggle
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
* Refactors plane masters a bit and introduces plane master controllers (#56717)
* plane master controllers
* small adjustments
* bro its a comment CHILL OUT
* powerful
* Refactors plane masters a bit and introduces plane master controllers
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Add pAI internal GPS to possible software (#56404)
pAIs are now a useful space travelling companion, they can help you
navigate if lost (although only the pAI has the GPS view, so they'll
need to communicate the information). If you're holding a GPS, then the
pAI can find you even if you get separated.
* Add pAI internal GPS to possible software
Co-authored-by: coiax <yellowbounder@gmail.com>
* Cleans up blob code, removes a lot of hardcoded stuff, many new defines (#56306)
Cleaned up, commented on, and (hopefully) improves a lot of blob code.
Put pretty much everything balance-related (except for the strains themselves) into a define file, for easier viewing, changing, and balancing.
Added a bunch of new functionality that new strains (some of which I plan to add in the future) could use: from increased expansion range to more spores per factory.
* Cleans up blob code, removes a lot of hardcoded stuff, many new defines
Co-authored-by: NotRanged <rangedvdk@gmail.com>
* reverts Adds Neon Carpet (#55782), it appears to have been causing massive amounts of maptick (#56496)
It appears to have been causing massive amounts of maptick, this'll need a testmerge so we can test my hypothesis
* Reverts Adds Neon Carpet (#55782)
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Replacing magic numbers with defines in robot code (#56241)
While scouring robot code for some (hopefully upcoming) fixes, I found a bunch of gross numbers. These numbers are now letters.
* Replacing magic numbers with defines in robot code
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
* Fixes parallax runtime when observing someone without client (#56092)
When observing someone without client (because they for example disconnected) a runtime happened:
This was because update_parallax didn't take a mob as parameter but instead always updated the parallax of the mob to which the HUD datum belonged (which was the HUD of the person who you tried to observe)
If that mob had no client this caused a runtime.
If you observe someone now the game updates parallax for your client and not the client of the person you tried to observe.
* Fixes parallax runtime when observing someone without client
Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
* Merge pull request #55869 from LemonInTheDark/fixes-plasma-alerts
Fixes plasma alerts not showing up
* Fixes plasma alerts not showing up
Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
* Fixes two bugs with Blob strain rerolling (#55833)
* tested locally and it works
* As suggested
Co-authored-by: Ranged <nickvanderkroon@ gmail.com>
* Fixes two bugs with Blob strain rerolling
Co-authored-by: NotRanged <rangedvdk@gmail.com>
Co-authored-by: Ranged <nickvanderkroon@ gmail.com>
* Rerolling blob strains now uses a radial menu, and lets you see what the strain does before picking it (#55559)
Also provides a generic, forward proof way to provide information to radial menu choices.
Why It's Good For The Game
input is old and crummy.
Blob is a very wiki reliant mechanic. This moves a bit of it into the game itself to fix that.
Provides a real cancel option, whereas the old one had none. This is not a balance change, but a QoL one--everyone just moved the input window off to the side.
* Rerolling blob strains now uses a radial menu, and lets you see what the strain does before picking it
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Fix 'your mind won't reach that far' message when clicking moodlet with TK (#55070)
The mood /atom/movable/screen, instead of having a Click() override, instead has its COMSIG_ATOM_CLICK registered in the mood component. This has the side effect of normal attack chain protocol being ran on it, meaning that if you click it with TK you will get a message saying "Your mind won't reach that far". This fixes that by overriding attack_tk into a noop.
* Fix 'your mind won't reach that far' message when clicking moodlet with TK
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* radial menus ignore the anchor's alpha, color and transform now. (#54870)
* radial menus ignore the anchor's alpha, color and transform now.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds 👏 High 👏 Fives 👏 (#54516)
This PR lets you post up for high-fives with your buds so you can slap some skin and show off how well you vibe together. To initiate a high-five, simply stand next to another person with a slapper (the *slap emote one) in hand, and hit the offer item button (default G) to let the people adjacent to you know you're available. They'll get an alert that you're offering a high-five, and clicking it will follow through and award you both a small positive moodlet, or they can just walk away and leave you hanging, earning you a negative moodlet.
Is a high-five not enough to show the world how tight your crew is? Double the fun! If whoever initiates the high-five has a slapper in both hands, and the taker has two hands free, you'll go for the mythical high-ten for a louder slap and extra emphasis! Woo!
* Adds 👏 High 👏 Fives 👏
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Adds a runechat plane to fix the issues related to the chat messages (#54522)
Previously your chat messages would be obstructed by the blackness of blocked turfs, aswell as dark lighting and some other effects. This fixes that
It still has backdrop ambient occlusion like it used to.
* Adds a runechat plane to fix the issues related to the chat messages
Co-authored-by: Azarak <azarak10@gmail.com>
* 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>
* Merge pull request #53702 from zxaber/kiltborg
[READY] Highlander mode now includes silicons
* [READY] Highlander mode now includes silicons
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
* Prevent inventory HUDs from overlapping multiple overlays (#53974)
Currently, when you drag your mouse off an inventory button while holding it down, it'll leave a permanent ghost image (#53950). This is because MouseExited is not being called properly. However, I couldn't reproduce this in a non-SS13 BYOND project, which makes it difficult for me to fix that.
This is a band-aid fix. It'll leave a ghost image, but then the next time you hover over and exit, it'll remove it, making it much less annoying.
* Prevent inventory HUDs from overlapping multiple overlays
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Custom statues and sculpting changes. (#53154)
### Gameplay changes:
- Spacemen lose their ability to sculpt all minerals into statues barehanded, you need a chisel now.
- You can now create carving blocks out of 5 sheets of most materials.
- Using a chisel on the blocks you can designate what to carve in it (including the preset statues from before).
- Chisels can be printed at autolathe, there's also one in art storage.
### Code changes:
- Squeak component now squeaks on attack_hand for structures.
- Radials now accept atom paths automatically extracting the name with initial.
- Base and rigid stack recipes renamed appropriately.
- Statues now use custom materials.
* Custom statues and sculpting changes.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Fully removes devil and affiliated shitcode (#53612)
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
* Fully removes devil and affiliated shitcode
* weh
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Cyborg inventory runtime fix. (#53741)
Following the cyborg inventory refactor, code changed a bit.
Cyborg inventory screens are inited in the HUD, however AI Shells don't generate a HUD until an AI assumes direct control.
Damaging an AI shell before the AI created a HUD in it would cause runtimes as modules disabled and enabled.
To remedy this, we now initialize the core inventory slots on the robit Init() and then update them as necessary in the HUD code later on if an AI ever deigns to grace your shell with their exalted presence instead of asking for it and then never using it.
* Cyborg inventory runtime fix.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
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>