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.
Splits can_inject into can_inject and try_inject. The latter can perform side effects, while the former cannot. Moved the show_error bool parameter to a flag that try_inject checks.
Changes the signature to can_inject(mob/user, target_zone, injection_flags). This was previously redefined in several places, making it impossible to use named parameters. This refactor now allows named parameters to be used, and thus avoiding the ugliness of TRUE, FALSE, FALSE in parameters.
Venus flytraps were formerly immune to fire and cold damage. Now plasma fires and the coldness of space can hurt them. Fire does double the damage compared to cold.
At full health a Venus Flytrap will die in:
~5 seconds inside of a fire
~10 seconds inside of space
flips the min and max damage so at max they do 6 and at min they do 5 instead of the inverse. also raises Sergeant Araneus health to 250 from 200 (not max health, he already has 250 max they just spawned hurt)
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.
Instead of using var/ventcrawling on `/mob/living`, it is now instead
two traits. It functions in exactly the same way.
This now ensures that manipulation of ventcrawling will not clash with
any other manipulation, such as a proposed genetics ability to give
people ventcrawling, versus abductor organs.
---
Intended to be a pure refactor, no functionality should change.
NO_BREATH and NO_FIRE are added to Mafia/Highlander players and
plasmaman there won't be turned into Humans.
Also shifts Ashwalkers above Ethereals and under Lizards in human.dm
just too keep it in a pretty order.
This PR adds station traits which are essentially small changes to a normal round that can be used to create small variations in how a round might play out, sometimes there might be only one, very simple trait, but you might have a round where they have a somewhat bigger impact, to make rounds feel slightly more different from each other.
The following traits have been added:
Positive:
Lucky winner - Free pizza and beer every 6-12 minutes
Galactic Grant - Larger starting funds for cargo
Premium internals boxes - emergency box has flare + radio as bonus
Bountiful bounties - Bounties pay 20% more
Strong supply lines - Imports 20% cheaper
Filled maint - More loot in maint
Fast shuttle - Cargo shuttle is faster
Free scarves - Free scarfs if a slot is free
Neutral:
Bananium shipment - Clown starts with 5 sheets of bananium (Neutral because this helps noone but the clown)
Unnatural atmosphere - Lava planet can get more restricted gasses
Unique AI - Random lawset at roundstart for AI
Ian adventure - Ian teleports to a random spot on the station
Glitched PDAs - PDA's have a different beep
Announcer intern - Changes the announcement messages to sound like they're from an intern at Centcom
Negative:
Carp infestation - Carp event is more common and can start earlier
Weak supply lines - Imports 20% more expensive
Blackout - Station lights are partially broken around the station
Empty maint - Less loot in maint
Overflow bureacracy mistake - Random overflow job (From a vetted list)
Late Arrivals - Everyone starts in arrivals
Random spawns - Random spawn location (by drop pod)
Slow shuttle - Cargo shuttle is slower
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
This PR repaths areas to follow a department - purpose - room formula (just department - room if purpose is unnecessary), reorganizes the area file to properly sort by department, removes some unused areas, and better utilizes child subtypes for areas. It fixes several problems with areas which were previously improperly subtyped causing problems like the lack of AI monitoring on vault areas and the inability to use the civilian door remote on most service areas.
Properly organizing our areas will make mistakes in adding areas or duplicates harder to do. By organizing each department in this way, it also provides better infrastructure for autoname devices and any future code that has to reference areas by department.
About The Pull Request
Dynamic 2021, among much other things, splits the threat level into two separate budgets, one for round start and one for midround/latejoin. You can read the design doc, plus methodology and charts here: https://hackmd.io/@tgstation/S1C4dYJkO.
To server owners: this is incompatible with current dynamic.json configurations. This is not just because some fields have different values now, but because the older values are not balanced towards this system.
Inidividual list of changes (as I remember them):
Threat level is now split into two separate budgets, one for round start and one for midround/latejoin.
In TESTING, you can now run dynamic simulations to see the roundstart picks.
antag_cap is now based on an equation rather than a fixed list of antags per indice--the old system is not scalable. You can now pass it either a number for a fixed constant, or a list with "denominator" and an optional "offset" to fit the equation ceil(x / denominator) + offset, with x being population.
Midround/latejoin timers are now vars on /datum/game_mode/dynamic itself, and thus can be configured by head admins per server.
Removes some older, as far as I can tell completely unused admin tools relating to dynamic.
autotraitor_cooldown is now properly respected from config, and is based on an exact time rather than on ticks (450 used to be 15 minutes, now it's just 15 MINUTES).
The rulesets dynamic chooses are now in a dynamic.json file in round logs. Relies on tgstation/tgstation13.org#64 to be public.
Adds more logging to the autotraitor ruleset for admins.
Midround/latejoin chance modifiers are now configurable.
Labelled "Do Not Merge", as the design doc outlines the specific playtesting schedule I would like to perform.
Note to self: Remove the custom MOTD before merge.
Why It's Good For The Game
(Copied from design doc)
Dynamic currently dumps as much threat as it can into round start threats. This means that rounds at ~50 threat can have an absurd amount of antagonists round start, while leaving very little threat for midround/latejoin antagonists. What inevitably happens is just one of those picked decides to murderbone, leading to the inevitable 20 minute shuttle call. Furthermore, once those antagonists are dead, Dynamic doesn’t have any threat left to spend on new antagonists that keep the round flowing, promoting the mentality of “antags dead, I’m bored, let’s leave”.
The proposed solution of Dynamic 2021 is to split threat level into two separate budgets, one for round start and one for midround/latejoin. This split, like threat level, will also be done on a lorentz curve–meaning that while most rounds will have them evenly split, there is still the possibility of chaotic high antagonist round start rounds, or the possibility of a midround onslaught.
Wing sprites are courtesy of Papaporo Paprito over on Fulpstation!
This PR adds a second sprite for flight potion wings for moths.
A new system is implemented to make this possible, using radial menus.
About The Pull Request
This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:
Disarm and Grab intents have been removed.
Harm/Help is now combat mode, toggled by F or 4 by default
The context/verb/popup menu now only works when you do shift+right-click
Right click is now disarm, both in and out of combat mode.
Grabbing is now on ctrl-click.
If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)
Minor interaction changes:
Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game
Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.
As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.
As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.
In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.
The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog
cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
instead of heat and cold damage being handled by unsuitable_atmos_damage, instead its handled by unsuitable_heat_damage and unsuitable_cold_damage
if these vars arent set on the mob, they are set by default to the value of unsuitable_atmos_damage
* Fixes / refactors emotes
Crack emote no longer runtimes
Ghosts can use help emote
Exhale / inhale emote only work for living
Move beep emote living subtype
Help emote no longer tells you that you can't use it
* Remove var in arguments
Lint
* Replace loop with join
"long beard" is not a beard option
replaced it with Beard (Very Long) which is the same thing
adds vars for corpses to set their hair colors
makes wizard have white beard
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.
Fixes 2 wendigo runtimes:
- When the wendigo tries to teleport to you but there is no location to teleport it would runtimes because the code tried to pick from a empty list
- The wendigo scream message used capitalize which is not needed and also runtimed, since capitalize expects a string not some object
the current tolerance on jousting is 2 deciseconds not enough to do fun stuff with any of the mobs you can ride on station like cows or goliaths, this is now 3
mob riding never had a keycheck so u could ride goliaths without a lasso and stuff like that
Adds a visual indicator for when you trigger someone's Bad Touch quirk.
Players who have this quirk may not have the time to convey that they do
when hugged, as the hugger may be off-screen by the time the quirk holder
has finished typing a say or emote. This provides a clear indicator that
the quirk holder gets a negative moodlet from hugs.
Co-authored-by: Y0SH1M4S73R <Y0SH1M4S73R@github.com>