mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
there we go
robot rad safe: 250, 750 with upgrade (500 for normal mobs) Also some typo fixes
This commit is contained in:
@@ -171,6 +171,7 @@
|
||||
#define ORGAN_SLOT_HEART_AID "heartdrive"
|
||||
#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop"
|
||||
#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun"
|
||||
#define ORGAN_SLOT_BRAIN_ROBOT_RADSHIELDING "brain_robot_radshielding"
|
||||
#define ORGAN_SLOT_TAIL "tail"
|
||||
#define ORGAN_SLOT_PENIS "penis"
|
||||
#define ORGAN_SLOT_WOMB "womb"
|
||||
|
||||
@@ -18,6 +18,8 @@ Ask ninjanomnom if they're around
|
||||
#define RAD_BURN_THRESHOLD 1000 // Applied radiation must be over this to burn
|
||||
|
||||
#define RAD_MOB_SAFE 500 // How much stored radiation in a mob with no ill effects
|
||||
#define RAD_DEFAULT_ROBOT_SAFE 250 // Like above, except for robotic carbons. Far more susceptible to corruption from radiation.
|
||||
#define RAD_UPGRADED_ROBOT_SAFE 750 // If the robot has been upgraded via an implant, their radiation threshold is raised to be somewhat above that of organics.
|
||||
|
||||
#define RAD_MOB_HAIRLOSS 800 // How much stored radiation to check for hair loss
|
||||
|
||||
|
||||
@@ -119,6 +119,7 @@
|
||||
#define TRAIT_EASYLIMBDISABLE "easy_limb_disable"
|
||||
#define TRAIT_TOXINLOVER "toxinlover"
|
||||
#define TRAIT_ROBOTIC_ORGANISM "robotic_organism"
|
||||
#define TRAIT_ROBOT_RADSHIELDING "robot_radshielding"
|
||||
#define TRAIT_NOBREATH "no_breath"
|
||||
#define TRAIT_ANTIMAGIC "anti_magic"
|
||||
#define TRAIT_HOLY "holy"
|
||||
@@ -308,6 +309,7 @@
|
||||
#define LOCKED_HELMET_TRAIT "locked-helmet"
|
||||
#define NINJA_SUIT_TRAIT "ninja-suit"
|
||||
#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
|
||||
#define ROBOT_RADSHIELDING_IMPLANT_TRAIT "robot-radshielding-implant"
|
||||
#define MARTIAL_ARTIST_TRAIT "martial_artist"
|
||||
#define SLEEPING_CARP_TRAIT "sleeping_carp"
|
||||
#define RISING_BASS_TRAIT "rising_bass"
|
||||
@@ -319,7 +321,7 @@
|
||||
#define MEGAFAUNA_TRAIT "megafauna"
|
||||
#define DEATHSQUAD_TRAIT "deathsquad"
|
||||
#define SLIMEPUDDLE_TRAIT "slimepuddle"
|
||||
#define CORRUPTED_SYSTEM "corrupted_system"
|
||||
#define CORRUPTED_SYSTEM "corrupted-system"
|
||||
/// This trait is added by the active directional block system.
|
||||
#define ACTIVE_BLOCK_TRAIT "active_block"
|
||||
/// This trait is added by the parry system.
|
||||
|
||||
@@ -53,6 +53,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_EASYLIMBDISABLE" = TRAIT_EASYLIMBDISABLE,
|
||||
"TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER,
|
||||
"TRAIT_ROBOTIC_ORGANISM" = TRAIT_ROBOTIC_ORGANISM,
|
||||
"TRAIT_ROBOT_RADSHIELDING" = TRAIT_ROBOT_RADSHIELDING,
|
||||
"TRAIT_NOBREATH" = TRAIT_NOBREATH,
|
||||
"TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC,
|
||||
"TRAIT_HOLY" = TRAIT_HOLY,
|
||||
|
||||
@@ -443,8 +443,10 @@
|
||||
if(radiation > RAD_MOB_SAFE)
|
||||
if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
|
||||
adjustToxLoss(log(radiation-RAD_MOB_SAFE)*RAD_TOX_COEFFICIENT)
|
||||
else if(radiation > RAD_MOB_SAFE * 3)
|
||||
adjustToxLoss(log(radiation-RAD_MOB_SAFE*3)*RAD_TOX_COEFFICIENT, toxins_type = TOX_SYSCORRUPT) //Robots are more resistant to rads, but in the end suffer slow corruption at high levels.
|
||||
else
|
||||
var/rad_threshold = HAS_TRAIT(src, TRAIT_ROBOT_RADSHIELDING) ? RAD_UPGRADED_ROBOT_SAFE : RAD_DEFAULT_ROBOT_SAFE
|
||||
if(radiation > rad_threshold)
|
||||
adjustToxLoss(log(radiation-rad_threshold)*RAD_TOX_COEFFICIENT, toxins_type = TOX_SYSCORRUPT) //Robots are less resistant to rads, unless upgraded in which case they are fine at higher levels than organics.
|
||||
|
||||
/mob/living/carbon/handle_stomach()
|
||||
set waitfor = 0
|
||||
|
||||
@@ -522,6 +522,17 @@
|
||||
category = list("Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/cyberimp_robot_radshielding
|
||||
name = "ECC System Guard Implant"
|
||||
desc = "This implant can counteract the effects of harmful radiation in robots, effectively increasing their radiation tolerance significantly."
|
||||
id = "ci-robot-radshielding"
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
construction_time = 40
|
||||
materials = list(/datum/material/iron = 500, /datum/material/glass = 400, /datum/material/silver = 350, /datum/material/gold = 1000, /datum/material/diamond = 100)
|
||||
build_path = /obj/item/organ/cyberimp/brain/robot_radshielding
|
||||
category = list("Misc", "Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/cyberimp_nutriment
|
||||
name = "Nutriment Pump Implant"
|
||||
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
display_name = "Advanced Cybernetic Implants"
|
||||
description = "Upgraded and more powerful cybernetic implants."
|
||||
prereq_ids = list("neural_programming", "cyber_implants","integrated_HUDs")
|
||||
design_ids = list("ci-toolset", "ci-surgery", "ci-reviver", "ci-nutrimentplus")
|
||||
design_ids = list("ci-toolset", "ci-surgery", "ci-reviver", "ci-nutrimentplus", "ci-robot-radshielding")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/combat_cyber_implants
|
||||
|
||||
@@ -118,6 +118,35 @@
|
||||
crit_fail = FALSE
|
||||
organ_flags &= ~ORGAN_FAILING
|
||||
|
||||
/obj/item/organ/cyberimp/brain/robot_radshielding
|
||||
name = "ECC System Guard implant"
|
||||
desc = "This implant can counteract the effects of harmful radiation in robots, effectively increasing their radiation tolerance significantly."
|
||||
implant_color = "#0066ff"
|
||||
slot = ORGAN_SLOT_BRAIN_ROBOT_RADSHIELDING
|
||||
|
||||
/obj/item/organ/cyberimp/brain/robot_radshielding/emp_act(severity)
|
||||
. = ..()
|
||||
if(!owner || . & EMP_PROTECT_SELF)
|
||||
return
|
||||
if(!HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM))
|
||||
return //Why did you even get yourself implanted this if you aren't a robot?
|
||||
owner.adjustToxLoss(severity / 10, toxins_type = TOX_SYSCORRUPT)
|
||||
to_chat(owner, "<span class='warning'>Your ECC implant suddenly behaves very erratically, scrambling your system.</span>")
|
||||
|
||||
/obj/item/organ/cyberimp/brain/robot_radshielding/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
ADD_TRAIT(owner, TRAIT_ROBOT_RADSHIELDING, ROBOT_RADSHIELDING_IMPLANT_TRAIT) //Organics can get this, but it does literally nothing for them except cause more pain if EMPd, so uh, good on you?
|
||||
|
||||
/obj/item/organ/cyberimp/brain/robot_radshielding/Remove(special = FALSE)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/mob/living/carbon/C = .
|
||||
REMOVE_TRAIT(C, TRAIT_ROBOT_RADSHIELDING, ROBOT_RADSHIELDING_IMPLANT_TRAIT)
|
||||
|
||||
|
||||
|
||||
//[[[[MOUTH]]]]
|
||||
/obj/item/organ/cyberimp/mouth
|
||||
|
||||
@@ -4,7 +4,7 @@ Has a version for organic people and robotic/synthetic ones, considering robotic
|
||||
*/
|
||||
/datum/surgery/purge_corruption
|
||||
name = "Purge corruption"
|
||||
desc = "A highly complex and time-consuming surgery used to purge any corruption currently present in a robotic organism. Will knock the target out for an amount of time proportional to corruption purged."
|
||||
desc = "A highly complex and time-consuming surgery used to purge any corruption currently present in a robot. Will knock out the patient for an amount of time proportional to corruption purged."
|
||||
steps = list(
|
||||
/datum/surgery_step/incise,
|
||||
/datum/surgery_step/retract_skin,
|
||||
@@ -16,7 +16,8 @@ Has a version for organic people and robotic/synthetic ones, considering robotic
|
||||
/datum/surgery_step/override_safeties,
|
||||
/datum/surgery_step/remove_corruption,
|
||||
/datum/surgery_step/close)
|
||||
location = BODY_ZONE_HEAD
|
||||
possible_locs = list(BODY_ZONE_HEAD)
|
||||
target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) //If admins made a monkey into a robotic supersoldier or something.
|
||||
|
||||
/datum/surgery/purge_corruption/robotic
|
||||
requires_bodypart_type = BODYPART_ROBOTIC
|
||||
@@ -32,7 +33,8 @@ Has a version for organic people and robotic/synthetic ones, considering robotic
|
||||
/datum/surgery_step/mechanic_close)
|
||||
|
||||
/datum/surgery/purge_corruption/can_start(mob/user, mob/living/carbon/target, obj/item/tool)
|
||||
if(!(. = ..()))
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
if(!B || !HAS_TRAIT(target, TRAIT_ROBOTIC_ORGANISM))
|
||||
@@ -44,19 +46,19 @@ Has a version for organic people and robotic/synthetic ones, considering robotic
|
||||
time = 50
|
||||
|
||||
/datum/surgery_step/override_safeties/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to override the safeties of [target]'s brain...</span>",
|
||||
"[user] begins to override the hardware safeties of [target]'s brain.",
|
||||
display_results(user, target, "<span class='notice'>You begin to override the safeties of [target]...</span>",
|
||||
"[user] begins to override the hardware safeties of [target].",
|
||||
"[user] begins to perform surgery on [target]'s brain.")
|
||||
|
||||
/datum/surgery_step/override_safeties/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You succeed in overriding the safeties of [target]'s brain.</span>",
|
||||
"[user] successfully overrides the safeties of [target]'s posibrain!",
|
||||
display_results(user, target, "<span class='notice'>You succeed in overriding the safeties of [target].</span>",
|
||||
"[user] successfully overrides the safeties of [target]!",
|
||||
"[user] completes the surgery on [target]'s brain.")
|
||||
return TRUE
|
||||
|
||||
/datum/surgery_step/override_safeties/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You fail overriding the safeties of [target]'s brain.</span>",
|
||||
"[user] fails overriding the safeties of [target]'s brain!",
|
||||
display_results(user, target, "<span class='notice'>You fail overriding the safeties of [target].</span>",
|
||||
"[user] fails overriding the safeties of [target]",
|
||||
"[user] completes the surgery on [target]'s brain.")
|
||||
return FALSE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user