In addition to keeping golem feet safe as always golems are now immune to object embeding. As a mitagating nerf and logical extension, golems can no longer be injected with chems either.
MC:
No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
MC can now be told to init a zlevel
All Subsystems:
Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
All subsystems now properlly handle being given a zlevel in their init proc
Subsystem changes:
Air:
Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
Air now fires 4 times faster when it can do so without lagging things up
Pipenet has been merged into air
Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
Hotspots (the fire object) are now object pooled
Pipenet:
Deleted, added to air
Machinery:
Moved all atmos calcualtions in all objects's process() to process_atmos().
Lighting:
Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
Ticker:
Fixed ticker not updating the lobby panel when game start delayed
Fixed the game start timer updating rapidly from queued fires when game start delay is removed
Garbage/qdel:
qdel will now limit its process time to 2ds a fire.
qdel can now be given hints as a return to Destroy() as to what should be done with the object.
the options are:
queue: (default) this is the normal behavior.
letmelive: old default to non-null/zero. does nothing with the object
iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
Fixed some objects not GCing because they didn't properlly clear references in Destory()
Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
- Deathsquad moved from Antagonist to Ghost Roles.
- pAI jobbans split into drone, pAI, and posibrains.
- Posibrains back under pAI preference flag (the byte is full)
- Fixed Posibrain sprite if it fails to get a ghost.
-SPRITES SPRITES SPRITES
-Hopefully fixes create_antag and team problems
-Fixes the Inactive Eye on follow list
-Removes redundant and adds needed checks
-Neater adv camera code
-Minor balance tweaks
-Fixes instant first activation of glands
-Adds 3 mostly negative glands
-Adds anti-tracking helmet to agent equipment
-Makes experimental dissection ignore clothes
-Way out for trapped humans : Mash random buttons
-Abductors now virus immune (also golems and skeletons)
-File cleanup
-Teleporter functionality for camera
- fixes constructable chem master icon when parts are exchanged. 8616
- lowers toolboxes inhands sprite, fixes missing one. 8433
- fixes exploit in pandemic to avoid the bottle creation cooldown. 8031
- fixes chem grenade not getting to southwest side. 8019
- remove handle_env, /handle_random_events() and handle_blood at carbon level, identical to living level.
- fixes human bodytemp dropping to 20C in normal environment. (32.5C 90.5F when naked now)
- you now need both adequate headgear+suit to protect against pressure. (removing two defines)
- fixes alien hunter being immune to env fire in stalk mode (removing hunter/handle_env())
- fixes monkey not metabolizing reagents, also make larva metabolize them. 7108
- remove calculate_affecting_pressure from monkey level, simplification.
- refactors monkey's handle environment, no more handle_temp_damage proc, it's all in handle_env.Fixes temperature alert not showing for monkey.
- refactor monkey/handle_fire (similar to alien/human now.)
- replaces morphine with stimulants in adrenal implant. 8832
- refactor handle_breath_temperature.
Adds a fourth mob size "MOB_SIZE_TINY" to differentiate corgi size and mouse size. (used in bear trap code)
Rewrites beartrap/Crossed() to have less istype checks.
Adds a flying var to simple animals (used in bear trap code)
Makes pulling update in living/life.dm() to fix pulling not stopping when you're incapacitated.
see #7012
* NPCPool will co-ordinate and organize all SNPCs, making them stronger and more intelligent.
* SNPCs can use the botPool system to co-ordinate and delegate with each other.
* SNPCs have been given factions to allow interoperability between certain types of SNPCs.
* Bots (machinery/bot) can use the system too for basic help and coordination.
Holidays are now actual datums with procs and vars and everything.
Holidays run a proc called celebrate() when it's time to celebrate them. Currently none of them do anything but that should change, wink wink.
Holidays can now run for more than a day. The important ones, april fools, christmas, halloween, new years, and easter, all last at least a week. The idea is so people can celebrate christmas in game without having to, you know, actually play on fucking christmas. And also to put a time limit on how long stuff like the annoying spookoween closet skeletons will stick around so it doesn't overstay its welcome and become annoying as shit like last year.
The event SS now allows more than 1 holiday to run at a time. This matters for new years + christmas, easter + april fools, easter + 4/20, and any holiday that can happen on friday the 13th. The events get stored in a list that's only initialized if there's an active holiday so testing for potential holidays is still pretty easy.
Added more easter dates so we won't have to add more until 2040. The current batch run out in 2017.