makes the nuke op player with the most nuke ops playtime the leader
makes the leader start with loud mode on on their radio
idea for that second one from BeeStation/BeeStation-Hornet#6631
making the most playtime nuke op the leader prevents 1st time players from rolling it, they will generally be more competent, and able to be entrusted, just like you can trust a head of staff more. a player with more competency will also probably be better at actually leading and not just clicking a button to open the ship, if they try.
the radio is a tiny change to make the leader matter more, and able to give better leadership, because im pretty sure most people dont even realize the leader has access to loud mode
Fixes#68779#68382 Added a "melee cooldown" to ALL cooldown actions by default, which is something I wasn't sure about in the PR, but Space suggested it wouldn't affect anything. Turns out did affect some things
I instead have overridden all the new cooldown actions (Alien, spells, and some misc ones) to have a 0 second melee cooldown, allowing constructs and similar to attack and use spells freely
The USB connections for air alarms have been improved and now include scrubber control, vent control and the setting of the air alarm mode. Also fixes a bug where the limits were not being properly set.
The scrubber, vent and limit control can be duplicated in the circuit to allow multiple limits/scrubbers/vents to be controlled by one circuit.
Any airlock can be made into a shell during construction by configuring the airlock electronic before insert.
* The reason why xenos survive fire better than humans goes further than this. The original PR partially fixes it, and makes it so that, on high firestacks, xenos reliably die considerably faster than humans do. However, on low firestacks it's a different story.
The way humans handle being on fire is that their external temeperature (or skin temperature or body temperature, there's no consistent name for it but the var name is bodytemperature) increases based on the line that I copied over to xeno code here. However, being on fire also cancels all other procs that I could find that would ordinarily regulate external temperature through interacting with the atmos around the mob and from equalizing the core and external temperatures of a mob. This equalization still happens, but it becomes a one-way street. The core heats up from equalizing it's temp with the skin but the skin doesn't reduce it's temperature in turn, so even though the body could offset the temperature delta caused by being on fire with few firestacks, it doesn't get the chance to.
Meanwhile, xenos (and all other carbons) don't have two different temperature values. Their external temperature doubles as core temperature and so they suffer differently from being on fire. Their temperature won't interact with the environment to cool itself while on fire, but their metabolism will still lower their temperature if it strays out of safe parameters.
Because of this, while humans are by design unable to offset the temperature increase from fire, other carbons, xenos included, are able to reset their temperature to neutral faster than a fire with low firestacks can raise it and so they can be on fire indefinitely. When high firestacks are involved this is still true, but their metabolism will be overwhelmed, their temperature will start to steadily rise and because of the way their bodies react to high temperatures they will take more damage and die faster than humans.
You now left click to climb up and right click to climb down a ladder. A delay of 1 second has also been added, since otherwise it'd take only one click to immediately move vertically and would be much more spammable.
Ghosts still use the old radials, because their right clicks are bound to the default byond popup menu.
Prison Ofitser, prior to the last mining base rework, was a lovable secbot that would serve as both a deterrent to those wanting to access the security equipment vendor, and a free baton to the more skilled players. it sadly recently got the cut in the mentioned rework. I didn't see any evidence of it being intentional, so I thought I'd attempt to bring him back. This PR also gives it its own subtype à la Armsky as opposed to a var edit.
Prison Ofitser is an integral part of the secbot family, security also very rarely visits the gulag's checkpoint, and since an equipment vendor is located there, protection that isn't a single airlock is welcome.
Why It's Good For The Game
Further reducing reliance on reading the chat box. Previously it wasn't obvious someone pointing at themselves was pointing at something on them, and not just, them.
Changelog
cl
qol: Pointing at something on yourself now shows the item.
/cl
A pretty heavy refactor for pAIs that just spilled into a rework.
Attempts to fully document and organize backend code.
Fixes a large number of bugs left untouched for a decade.
Breaks down the frontend into subcomponents.
Rebalances their software modules.
(should) fix pAI faces get removed if you activate them during alert #68242
* Adds a new clothing variation: Monkey. The Waiter's suit uses this, allowing Pun Pun (and other monkeys) to wear it.
* Makes changing species now check all your clothes to see if you can wear them, rather than solely your no_wear list, fixing problems of Digitigrade lizards keeping non-digitigrade shoes.
Moves venus human traps to use the /obj/effect/mob_spawn/ghost_role/ system of spawning similar to things like spiders. Effects of this include: Having a notification to ghosts when one is ready to be spawned, having venus human traps respect role bans, and allowing them to be possessed from the ghost role menu.
Also adds poll ignore and role defines for venus human traps.
To clarify in more detail: Venus human traps spawn by flowering kudzu (with a 10% chance). However, they spawn immediately under the kudzu and can't be clicked on (even with the alt-click menu), so they can only be possessed by a ghost only if the kudzu above them gets destroyed or they get moved out of the kudzu.
Instead of just fiddling around with layers, moving venus human traps to the same ghost role system used by other ghost roles helps centralize them and make it more obvious that a) you can possess them to begin with, and b) how to possess them
Adds the option for cooldown action sequences which has a list of sequence actions, the owner of the sequence doesn't have direct control over any of the actions in the sequence but is still considered the owner of the sequence actions, the main ability simply handles calling whatever those sub actions should do.
Adds melee cooldown times to cooldown actions.
Cooldown actions now use bitflags so an ability can share its cooldown to multiple other types of abilities
Cooldown times are now handled by the base activate proc, cleaning up copy paste of StartCooldown()
Reworks the admin verb for adding cooldown abilities to where it has significantly more customization (and tells you to mark the mob you want to modify instead of just doing nothing) and also allows for creation of the new sequences, allowing entirely new and unseen abilities to be formed out of existing ones. Also adds a verb for removal of mob abilities.
* Removes the xenomorph's corrosive acid from being used on mobs, as they oneshot them.
* Makes defines for species' limbs, and makes use of those. Also replaces some hardcodes with defines.
* Makes Xenomorph bodyparts all alien bodytypes, so xenomorphs with something embedded will not state that they have something in their human limb.
* AI (de)construction posibrains will not ping ghosts
* fixes MMIs not transferring brainmob to ejected brain
adds ability to (un)anchor AIs with a wrench
* adds comments for new posibrain creation
adds arg to deactivated ai core structure Initialize() to skip creating an MMI which will be overwritten anyway
* Readds Alien Vore
Aliens can now eat people again. Behavior was removed by #43991 (b6c41e3b32)
because nasku thought it was weird, and the code was really bad.
I think it's funny, and I've made the code not trashtier.
Basically, an alien can agressive grab any living mob. If they stay next
to the mob, facing them for 13 seconds, they will "eat" the mob,
IE:insert them into a list on their custom stomach.
The xeno can then hit an action button to spit out the mob, alongside
some acid.
If the mob is alive enough to pull out a weapon inside the xeno/has one
on it, they can attack the xeno from inside, dealing damage to the
creature and its stomach. If the stomach drops below a threshold, the
mob gibs the xeno and escapes.
I've done my best to steer things away from horny and into gross, though
I'm aware you fucks do your best to blur that line.
Anyway something something balance change something something lets xenos
abduct people more easily, I'm mostly doing this cause I think it has
soul.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes internal/external organ for checks
Fixes many single-letter vars for organ for loops
Makes use of `as anything` more often
Fixes the comment for external_organs to explain what it actually is for
Fixes for loops checking internal_organs for external ones, as they aren't stored there (in dummy's harvest_organs, on_species_loss, and purrbation removal)
Attaching a knife to cleanbot would succeed even when the user has trait like anti drop that would cause ItemtransfertoLoc to fail, this pr simply add a check for transferitemtoLoc
More aspects will now be affected by shapeshifting, creating a more accurate disguise:
Age.
Physique.
Hair gradients.
Neck items.
Underwear colour.
Last resort will now respawn you as a /human rather than /human/species/monkey.
As the egg hatches, the game will spawn a human and turn them into a monkey, using code similar to that of lesser form (instead of spawning an actual monkey). This should prevent issues with randomised names.
Using Human form after Lesser form should now shapeshift you into the correct species.
Previously it just ran /humanize() without any argument, which means it defaulted to turning you into a human. This should not be an issue, considering that it still runs a regular shapeshift afterwards and updates your DNA, but for some reason that's not enough.
The Human form ability now uses a radial menu instead of a list.
De-clutters the code a little by reusing the code for the radial menu that's used when you shapeshift into someone. It also makes the ability smoother to use and more consistent.
Lesser form now clears your flesh disguise as it transforms you.
* vocal cord slot
* puts vocal chords back
* reverts changes i couldnt figure out how to make mutant_vocalcords work
* cleanup
* woops
* Makes cardboard golems have no tongues
* adds no tongue to the greet
Replaced the old mining outpost with a new base consisting of separate buildings on islands in the middle of lava. Added a few new areas and decorations to fill out the outpost. Changed the underfloor accessibility of lava so cables and pipes don't mysteriously disappear as they cross catwalks over lava.
The current mining station is fairly boring and dated. In addition, the general layout of the outpost was bland and uninspired, about as exciting as any other hallway. This replacement offers a new and unique take with an interesting layout and new dangers to be aware of.
The bridges between buildings are exposed to the weather, meaning you could find yourself forced to choose between waiting out a storm in an isolated building with a potentially unfriendly roommate, or running through the storm to get back to a shuttle.
Power and communications are also more vulnerable in the new base, placed in a building on the mainland where ne'er-do-wells could gain access unnoticed and sabotage them, making the mining outpost less of a safe space with little risk of anything going seriously wrong. You don't get access to these just for having mining access, better call the relevant portion of engineering to help you.
Gulag prisoners also get a few new options to keep security on their toes, with a few different options for escape routes that encourage the warden to keep an eye on their charges instead of ignoring the gulag while waiting for the prisoners to do their sentences or kill themselves.
* Fix simple mob death message deadchat notification
* Add TRAIT_DEATH_GHOST_ALERT to traits
* Add TRAIT_DEATH_GHOST_ALERT to global trait list
* Add TRAIT_ALERT_GHOSTS_ON_DEATH to space dragons
* Add TRAIT_ALERT_GHOSTS_ON_DEATH to brood spiders
* Add TRAIT_ALERT_GHOSTS_ON_DEATH to elite lavaland mobs
* Add TRAIT_ALERT_GHOSTS_ON_DEATH to revenant
* Add TRAIT_ALERT_GHOSTS_ON_DEATH to morph
* Fix trait name
* Fix trait name
* Fix syntax error for trait
* Add trait check for death notification
* Add more context to trait use
* New player job selection fixes pack
If no jobs are available when random jobbing dont just runtime instead
pop a little tgui alert letting them know they are shit out of luck
Also makes the job debug actually print out the job titles instead of
just printing a . like some kind of insane person
Also also removes some syntax left over from a search and replace
* Update code/modules/mob/dead/new_player/new_player.dm
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Update code/modules/mob/dead/new_player/new_player.dm
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Currently, storage works as a subtype of /datum/component, utilizing GetComponent() and signals to operate. While this is a pretty good idea in theory, the execution was pretty trash, and we end up with alot of GetComponent() snowflake code (something that shouldn't even need to be used frankly), and a heaping load of scattered procs that lead into one another, and procs that don't get utilized properly.
Instead, this PR adds atom_storage and proc/create_storage(. . .) to every atom, allowing for the possibility of storage on quite frankly anything. Not only does this entirely remove the need for signals, but it heavily squashes down the number of needed procs in total (removing snowflake signal procs that just lead to one another), reducing overall proc overhead and improving performance.
* Completely refactors cleaning tools to all use a single component rather than copy pasting everywhere.
* Everything that cleans (including Cleanbots and the like) all use this component. It is called on an atom-level proc, to prevent signal overuse/misuse.
* This additionally means that cleaning is much more consistent between tools, for stuff like cleaning blood off of windows and soap not being able to clean worn clothes, since it isnt a problem anymore.