This PR includes several changes to bring our wound code up to date with
baystation, nebula, and modern standards. Highlights include:
- The usage of integers between 0 and 100 for ratios (expressed as a
percentage), instead of 0.0 to 1.0. Small decimal values are prone to
floating point precision errors, but by moving to a percentage instead,
we can reduce the impact of this.
- The untangling of damage flags and injury flags, which were used
interchangably in the code. This could have caused issues should we
expand any of these.
- Larger embedded objects now halt bleeding in wounds, until they are
pulled out. In exchange however, embedded objects will halt healing in
wounds (it is difficult to close an open wound that currently has a rod
stuck in it)
- A lot of data, such as implanted objects and organs, are now stored in
amputated limbs.
changes:
Organs now use Initialize().
The observe message now shows the configured respawn delay instead of always 30 minutes.
Seed datums no longer have a timer in New().
External organs no longer have a timer in New()/Initialize()
Converted some spawns in organs to timers.
Floor init no longer breaks to plating first for mapped in tiles.
Added the INITIALIZE_IMMEDIATE macro to make Initialize() not wait for SSatoms init.
Mannequins now use INITIALIZE_IMMEDIATE instead of a custom-defined New().
Mannequins (from get_mannequin) now delete themselves if unused for 5 minutes or longer.
Now you can attach your useless chunks of meat back!
Needs second step to make meat limb usable, use hemostat/cable/mousetrap.
Changes how organs 'die'. Instead of damage they now acquire germs, 2-6 points per tick, twice faster after hitting acute infection stage. Once they reach necrosis stage, they die. All in all it takes ~7 minutes for organ to go bad without a freezer.
As a bonus, you can now attach robogroins and roboheads (no brain included)
Fixes stumps being un-cuttable, which prevented all kinds of fun stuff with replacements.
Removed ORGAN_DESTROYED check from processing, take_damage should be taking care of that now.