This PR revives Burger's PR #5797
Fire extinguishing foam now works properly. It is 3 times stronger than water.
Walking through a foam will extenguish your fire stacks.
Atmos suit max temperature threshold was increased from 30k to 40k. Atmos firefighter suit max temperature was increased from 30k to 45k. Heavy firesuit max temperature was increased from 30k to 55k. Same goes for their helmets.
Firesuits and red/white/atmos hardhats no longer protect wearer from pressure. So people cannot use it in space. For areas with 2000+ KPa fire people need to use atmos voidsuit.
Fixes#867
Cyborg stations now refill cyborg's fire extinguishers. Fixes#6171
Fire now produces CO2 while burning, with amount varying by fire severity
This PR will lead us towards the Promised Day, for in its wake there shall be much celebration and ecstasy as this world becomes a world suitable for developer hegemony. The first strike is thusly;
All << is converted into to_chat().
Fixes#3410
Ranged hostile mob stop if they are in range of fire, instead of keep going to point blank range. They also try to get to person within 6 tiles, not point blank.
Hostile mobs also check if their target is in the view or not.
Fixes#4468Fixes#2867Fixes#2721Fixes#2678
Character input limit in Security/Medecal records was increased from 1024 to 3027 for all fields, to keep it consistent with character setup records. Fixes#5766
Fixes Energy net turret sprites. Updates spawned ionrifle turret to allow for two modes, adds lethal turret sprite for ionrifle.
Reworked how slipping on tiles work. If there is too much lube/water on one tile, it will spread to all adjacent tiles.
Fixed a potential bug where spilling copious amounts of water on a tile will turn it to ice.
Containers are much more saner now. They all share a standard system, unless specified.
You can drink from any open holdable container using help intent. You can splash the contents of the container on anything via harm intent.
Sinks are more saner, you can refill or empty them easier with various refill amounts.
Removed silly exclusive cyborg limb checking for hyposprays.
Added a new chemsprayer, the "Xenoblaster" which is a significantly weaker chem sprayer. Two can be found in xenobiology.
Large reagent containers (beer kegs, water tanks, fuel tanks) now share a system together. Both can leak their reagents via harm intent with a wrench, and bother can accept any sort of reagent, with exception to the fuel tank.
Large reagent container leaking happens over time as opposed to just leaking every time it moves.
New chemical, Monoammonium phosphate. Monoammonium phosphate is a fertilizer and also a potent fire extinguishing and preventing chemical. It can be made with 1 part ammonia, 1 part sulfuric acid, 1 part sodium, 1 part phosphorus.
All extinguishers now have monoammonium phosphate in them instead of water.
Extinguishers can hold any reagent, however they must be filled using an extinguisher refiller cartridge. These can be ordered or found in atmospherics.
Nerfed the extinguisher range so it only sprays in a 3x3 radius.
Mini-extinguishers spray in a 1x1 radius.
Adds Monoammonium phosphate containers across the station.
Most watertanks are replaced with Monoammonium phosphate containers.
changes:
ZAS knockdown is now only applied to movables that are within 16 tiles of one of the edge's turfs. There's probably faster ways to do this, but this should be fine for now.
Fixes#2917.
This PR rips out the old Bump() and Bumped() procs and replaces them with Collide() and CollidedWith() respectively. Behavior should be the same, but Bump() should no longer be double-called, and no longer relies on spawns.
Other changes:
LAssailant is now a weakref.
Some direct loc setting are now forceMove().
changes:
- Sleeps in ex_act() should no longer stall explosions (this could sometimes be significant).
- ZAS should no longer runtime when CSRFZ checks a non-simulated turf.
- throw_at() sleeps should no longer delay droplimb() calls.
* Repaths eyes, observers, dview, and new_players to /mob/abstract subtypes.
* Adds /mob/abstract, a base type for 'abstract' mobs that aren't meant to be directly affected by the game world.
Mostly synthetic code cleanup, some tweaks to human examine and ID cards too.
changes:
Synthetic sprint procs have been compressed down to one proc for all machine subspecies vs. one per subspecies.
Synthetic sprint now only stuns synthetics with empty cells for 30 seconds for all types.
Refactored synthetic limb roboticization.
Changed how a lot of synthetic/industrial checks work.
ID portraits are now 128x128, and scaled without blurring.
Species can now specify an examine text color (for their species name) that differs from their flesh color.
Fixed some eye checks not respecting species.vision_organ.
Examine pulse-checking now uses do_mob & has a progress bar.
-changes how gloves leaving fingerprints works, now there is a chance if they can leave or not, ported from polaris, fixing #3120
-allows for glasses with the flag AIRTIGHT to protect your eyes from phoron, such as science glasses, ported from polaris, mesons and etc
-adds evening gloves, cloth footwraps, toeless working boots and etc at people's requests, ported from several other codebases
-removes the last red security piece we had in the code, the red dot of the sec belt
-adds a icon for badges on the belt
-allows you to flip eye patches to cover different eyes
👎 x 2
Turns connecting_turfs into an associated list. From testing a few years ago, assoc lists performed quite well when it came to key-access at runtime. This then allows us to make the loop at ConnectionGroup.dm:112 into a stable one, complexity wise. Only O(world.view^2) instead of O(connecting_turfs.len * world.view^2).
All references to connecting_turfs were edited to match this.
changes:
Holomaps now use an area flag instead of a proc to determine which areas do not draw on the holomap.
The supply shuttle once more has a roof.
The supply shuttle's landing zone is now dynamically lit.
Turfs only generate visibility updates on Initialize() after mapload - visualnet is not initialized by then anyways.
Merged /datum/gas_mixture/(init) into /datum/gas_mixture/New().
Converted a ZAS proc into a macro.
Made ZAS attempt to remove a turf from a zone instead of always rebuilding it in a certain case.
Macroized two misc procs.
Fixes#2947.
changes:
Added a isopenturf() macro, equivalent to istype(thing, /turf/simulated/open).
Converted most/all instances of istype(/turf/simulated/open) to isopenturf().
Made update_above()' aware of queue status & inlined a proc-call.
changes:
MultiZAS now actually works.
The ZAS connection diagnostic verb is now aware of MultiZ.
Potential performance improvement for ZAS connections.
Probably should not be merged until shuttles have roofs unless people want to take their chances at outrunning ZAS getting off the shuttle.