Try this experiment at home:
1.Ctrl shift click your ghost
2.Notice that you still have the Ghost tabs, and you don't see OOC > Ghost, uh oh.
This happens for more than ctrl-shift-clicking, it happens a lot with event mobs.
This reloads verbs on /mob/Login, aka when the client goes into a new mob (or when they reconnect).
Adds simple deconstruct steps to the hygiene bot assembly, as well as adds a simple crafting menu option to craft one.
Also, corrects an issue with hygienebots not needing to be opened in order to be emagged. They now need to be emagged to be opened with a screwdriver, then emag the open panel in order to emag the robot, just like every other robot.
* cryo fixes and cleanup
Move magic numbers to defines
Fixes cryo deleting 100L of gas each time it transfers
Remove unneeded/unused variables
Moves gas all gas consumption to process_atmos
delta_time in process_atmos
* simplify consume_gas
About The Pull Request
As the title says.
Creates a new proc, use_power_from_net() that attempts to pull power from the grid (by adding the amount needed to the APC's powernet load), and returns the amount gathered if there was enough surplus to do so. This bypasses the APC's internal cell for power drawn this way.
Changes cell chargers to use this new proc for charging a cell. The charger machine still uses some power from the APC, set to 1% of it's max cell charging rate, for machine-related power costs. I'm not deadset on that number, I just needed to start with something. To be clear, this 1% is to simulate running the cell charger's circuitry; all of the power for the cell it's charging is 1-to-1 coming from the powernet.
This does not subvert the original PR's purpose; cells are still drawing as much power from the grid as they charge with.
Why It's Good For The Game
Fixes cell chargers breaking rooms after the prior cell charger fix. The load is now on the grid, and it being surplus means that it (probably) won't actually powersink anything.
Fixes#54919 by taking a different approach that entirely avoids the issue.
This repaths the nanodrug and nanomed vending machines, as well as visually tweaks the nanodrug vending machine from the nanomed vending machine, in order to
A) Fix the correct vending refills working on the correct vending machines.
B) Not make 2 different vending machines with different contents sell look identical.
Allows for visual clarity between 2 distinct, different vending machines. I got lazy and didn't do it the first time, and now they've been confusing players, apparently.
Additionally, makes them actually deconstruct able and constructible as a result of the fix to the circuit board.
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.
You can no longer quick swap another pair of glasses with nearsighted to see perfectly.
Currently you can:
Choose nearsighted
Quick swap to another pair of glasses
See perfectly
This wasn't fixed by Shaps' changes since those call dropped, which do not run through unequip code.
I know one of you is abusing this, show yourself!
Previously if a comparison assertion failed, it would re-evaluate the a and b parameters, which could lead to confusing output if the values passed are not fixed or are impure.
Replica pods were calling CanUse as opposed to canUseTopic when harvesting seeds, and since CanUse hinges on the machinery being usable and powered, it was preventing the harvesting of replica pods when depowered as expected. The only thing that should be needed for harvesting trays should pretty exclusively be the standard level of adjacency.
also corrects a line of spelling.
Fixes a bug, corrects some grammar. Makes the world a better place.
My original intention was just fixing an issue with the Mk-honk banana shoes but, considering I didn't want to add two new variables to a component with already lot of args and lengthy AddComponent() calls in term of text, I had to merge some TRUE/FALSE variable/args into the breakdown_flags bitfield (now named mat_container_flags) in the process.
Machines no longer vomit out their component parts when qdel'd and instead only vomit out their actual inventory contents.
Doing this uncovered another issue - Random vending machines will return INITIALIZE_HINT_QDEL and then attempt to qdel their circuits, which are still type paths and not initialised atoms yet (circuit was previously nulled by dump_contents, but this no longer happens in dump_inventory_contents). These circuits have been set to null appropriately.
Someone changed /obj/screen/alert to be /atom/movable/screen/alert and it caused this problem.
Also fixes the issue with void storm breaking if someone dies and gets revived.
Fixes#55006#54632 added some code to handle organ processing, including a big ol' global list which defines the organ processing order.
Downside to this is that it didn't take account of 5 year old Xenomorph code where the organ slots weren't defines. As a result, `/mob/living/carbon/proc/handle_organs()` would never call the `on_life()` for Xeno organs as they weren't in the big ol' global list.
I created defines for Xeno organs, added them to the global list and updated the organs with the new defines. As a result, Xeno plasma vessels now have their `on_life()` proc fired once again and generate plasma.
In local testing I was generating the expected amount of plasma on and off weeds and was able to successfully evolve up to a Queen.
Adds a new set of nanite protocol programs as a researchable Bepis tech.
Protocol programs are programs that are mutually exclusive within their time, so remember that only one of the following can be active at once in the same host.
Hive Protocol: Makes nanites use space more efficiently, increasing maximum volume by 250 (500 -> 750)
Zip Protocol: Makes nanites use a compression routine when not in use, increasing maximum volume by 500 (500 -> 1000) but consuming 0.2 nanites per tick to perform the zipping/unzipping
Free-Range Protocol: Makes nanite use looser storage routines, reducing the maximum volume by 250 (500 -> 250) but gaining 0.5 nanite replication rate
S.L.O.P. (Safety Level Override Protocol): Removes nanite storage safety measures, allowing them to reach up to 2000 volume. However, when the volume surpasses the maximum recommended volume (500) the host will start to suffer from side effects, manifesting in slow organ damage. The more the nanite volume approaches the physical limit, the more harmful it becomes.
Replaced the Tinker Nanite Replication Protocol with the Pyramid Protocol, which gives an extra 1.2 regeneration rate, but only while the nanites are at 80% volume or above.
Renamed the Offline Production Protocol to Eclipse Protocol.
Chain detonation now uses dyn_explosion(), at a rate of 1 power per 50 nanite volume. The power level should be similar to how it was for normal nanite volumes, but it should scale more linearly when going above the limit with the new programs.
If nanite volume is suddenly significantly higher than the maximum allowed (likely caused by deleting an active storage protocol) the extra nanites will be forcefully expelled from the host's body, which can range from minor oozing, to vomiting puddles of nanites, to nanites rapidly bursting from eyes, ears, and skin pores.
Despite how it looks, this process causes no lasting damage, since it's a security feature made to prevent acute nanite poisoning.
Added some comments on a few nanite functions.
Refactored vomit code to make it a bit more customizable. The toxic arg (supposedly used to choose an alternate vomit icon, but in fact not functional) is now vomit_type, and purge (which determined vomit would remove 10% of reagents or 67% of reagents) is now purge_ratio, which accepts custom values. Made the refactor mostly to allow a 0% ratio, but it can be handy in other future uses.
Adds extra content to Bepis research, giving a little more reason to invest money into it.
Creates more options to customize a previously rigid parameter in nanites, maximum nanite volume. This opens up strategies that involve storing up large amounts of nanites for special occasions, or viceversa reducing the maximum rate to get more constant replication rate to sustain continued programs.
About The Pull Request
Title. Law of conservation of energy, not handholding.
Why It's Good For The Game
This will close#53192.
Changelog
🆑
fix: You can't defy lack of gravity through the power of love.
/🆑
About The Pull Request
Fixes the cursed heart being unable to track targets in containers.
Fixes the shitcode that was reality_smash_tracker, now it is only responsible for generating influences.
closes#53583closes#52554
Changelog
🆑
fix: fixes the cursed heart being unable to track people inside containers.
fix: fixes influence vision getting broken by replacing someone's eyes.
/🆑
About The Pull Request
See changelog.
Why It's Good For The Game
This will close#54987, close#50204.
Changelog
🆑
admin: Admins now have the option to remove a language from the blocked_languages list when granting it to a mob through the language menu.
/🆑
A new option has been added to the AI display radial menu alongside random, "Portrait"
It opens a small menu that lets you peruse all of the portraits and select one as your display.
This can let avid artists draw exactly what they want their AI to be like, and not-so-avid artists to bring tears to my eyes.
* rotation, better mouse tracking, fixed chat output for tgui paper
* revert this stuff
* made mousemove only change states
* rebuild
* fix wrapping and move all sanitization to sanitizeText
Thermal regulators now have a few to_chat messages letting you know if your hardsuit's thermal regulator is on or not, as well as letting you know when the cell has run out of charge, or when the cell is dead when attempting to toggle it on.
Improves feedback for using hardsuits, as not being able to tell when the suit is keeping you warm or not can be deadly, especially if the icon toggle stops working for any reason.
* Adds the sect of the Ever Burning candle
* make the burning sacrifice 20 seconds instead of 10
only made it 10 seconds for testing purposes, also make the "unmelting" clothing red instead of blue to be more red candle-ish
* make another check at the end of the candle fuel rite
The candle fuel rite will now check if the sacrifice is still on fire and dead at the end of the rite, you can technically extinguish them and only light them on fire at the last moment but it's fine god won't notice
* make the unmelting wax rite actually fireproof clothing hood/helmets
so yes you can supposedly get 2 fireproof for the price of one, but since hardsuit and hoodie are allegedly just one big connected suit it sort of make sense.
I also took away the forced color from the fireproofed clothing as making it mesh well with most clothing ended badly so now you can only tell its unmelting by the name.
* few improvements to rites
makes a tighter if check for the unmelting was helmet thing. adds a sound effect at the end of each rite, gives the sect a max favor of 10 000 instead of 1000 which I could've sworn was originally the case but apparently not.
* change the for loop
* Do the thing that cobby asks
I still kept the for loop for the candle fuel for reasons cited above. In other news I just learned that the word SPAM came from a Monty python skit
* WHY CAN IAN BE SET ON FIRE AAAAA
* what if we kissed on the burning altar
* change the for loop to an if check for the sacrifice
also added a bunch of early returns which forces me to set chosen sacrifice to null a whole lot more
* updqte sect description
Two things at hand here.
A: Pockets were not logged at all. I hate god.
B: I'm using log_message here because it gives me the freedom to be more grammatically correct. Please attack my spelling and offer suggestions of other mob strip panel things to log in the comments
B.5: I updated stripping to use log_message for the same reasons.
Whoever the damn bastard is who tried to take our grills. know this: we will not bend over while you take the only thing that still makes us happy. We just want to drink energy drinks and grill some hamburgers in peace. This is your final warning, try doing this again and we will assemble a lawn mower squad outside of your house at the early hours of 6AM to make sure you cannot enjoy your sunday morning in peace.
Newfood compatibility is now included by checking IS_EDIBLE() and removing the shitty foodtype that was there before