mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-24 17:11:40 +00:00
This updates synthetic limbs to make more sense. It tweaks what you can 'see' when examining people. If someone has a robotic leg but is wearing pants, how would you know that? If someone has a burn on their arm, but their jumpsuit sleeves down, how would you know that? If someone has a replacement Vey-Med arm, how would you know it's robotic? It also treats examining FBPs more 'realistically'. If they are covered except for their head, it doesn't matter if their whole body is Bishop robotic. If their head is Vey-Med and that's all you can see, they just look human to you. So FBP manufacturers can have a 'lifelike' var set. Vey-Med has this. This makes the limbs not show obviously non-organic damage (dents) until they are more damaged and start showing wires/metal. Attempts to treat these limbs with medical stuff results in a different message. Manufacturers can also set individual blood colors. Vey-Med blood is now white, ala Bishop from Aliens. isSynthetic proc = Is the mob actually synthetic, as in, mechanically for breathing/tox purposes? looksSynthetic proc = Does the mob display outward signs of being synthetic? Based on head and torso and what's revealed. Other fixes: You can no longer attach limbs to non-existent parents. You can't give somone a foot on a leg that doesn't exist. You can't attach fleshy limbs to robotic ones. BODIES DO NOT WORK THAT WAY. 'Synthetic' var on humans points to manufacturer if you need to grab it quickly. isSynthetic returns this as well. Robolimb count (and thus overheating speed) updates whenever your limbs change. Lifelike FBPs do not show a 'system offline glyph'. isSynthetic and looksSynthetic moved to human_helpers becasue they were defined on human in mob_helpers Nanopaste correctly repairs limbs using the new procs (both burn and brute, making it an expensive welder+wire)
60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
// Damage things. TODO: Merge these down to reduce on defines.
|
|
// Way to waste perfectly good damage-type names (BRUTE) on this... If you were really worried about case sensitivity, you could have just used lowertext(damagetype) in the proc.
|
|
#define BRUTE "brute"
|
|
#define BURN "fire"
|
|
#define TOX "tox"
|
|
#define OXY "oxy"
|
|
#define CLONE "clone"
|
|
#define HALLOSS "halloss"
|
|
|
|
#define CUT "cut"
|
|
#define BRUISE "bruise"
|
|
#define PIERCE "pierce"
|
|
|
|
#define STUN "stun"
|
|
#define WEAKEN "weaken"
|
|
#define PARALYZE "paralize"
|
|
#define IRRADIATE "irradiate"
|
|
#define AGONY "agony" // Added in PAIN!
|
|
#define SLUR "slur"
|
|
#define STUTTER "stutter"
|
|
#define EYE_BLUR "eye_blur"
|
|
#define DROWSY "drowsy"
|
|
|
|
// I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches.
|
|
#define BRUTELOSS 0x1
|
|
#define FIRELOSS 0x2
|
|
#define TOXLOSS 0x4
|
|
#define OXYLOSS 0x8
|
|
|
|
#define FIRE_DAMAGE_MODIFIER 0.0215 // Higher values result in more external fire damage to the skin. (default 0.0215)
|
|
#define AIR_DAMAGE_MODIFIER 2.025 // More means less damage from hot air scalding lungs, less = more damage. (default 2.025)
|
|
|
|
// Organ defines.
|
|
#define ORGAN_CUT_AWAY (1<<0)
|
|
#define ORGAN_BLEEDING (1<<1)
|
|
#define ORGAN_BROKEN (1<<2)
|
|
#define ORGAN_DESTROYED (1<<3)
|
|
#define ORGAN_SPLINTED (1<<4)
|
|
#define ORGAN_DEAD (1<<5)
|
|
#define ORGAN_MUTATED (1<<6)
|
|
|
|
#define DROPLIMB_EDGE 0
|
|
#define DROPLIMB_BLUNT 1
|
|
#define DROPLIMB_BURN 2
|
|
|
|
// Damage above this value must be repaired with surgery.
|
|
#define ROBOLIMB_REPAIR_CAP 30
|
|
|
|
#define ORGAN_ASSISTED 1 // Like pacemakers, not robotic
|
|
#define ORGAN_ROBOT 2 // Fully robotic, no organic parts
|
|
#define ORGAN_LIFELIKE 3 // Robotic, made to appear organic
|
|
|
|
//Germs and infections.
|
|
#define GERM_LEVEL_AMBIENT 110 // Maximum germ level you can reach by standing still.
|
|
#define GERM_LEVEL_MOVE_CAP 200 // Maximum germ level you can reach by running around.
|
|
|
|
#define INFECTION_LEVEL_ONE 100
|
|
#define INFECTION_LEVEL_TWO 500
|
|
#define INFECTION_LEVEL_THREE 1000
|