From eb5a3ebf57b971d5f6286491be6d3d60dcfc0289 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 29 Dec 2019 10:12:39 +1000 Subject: [PATCH] Adds resleeving sickness --- code/modules/resleeving/machines.dm | 7 ++++++- code/modules/resleeving/resleeving_sickness.dm | 17 +++++++++++++++++ vorestation.dme | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 code/modules/resleeving/resleeving_sickness.dm diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm index 57bc50683ac..8f5fc52aa28 100644 --- a/code/modules/resleeving/machines.dm +++ b/code/modules/resleeving/machines.dm @@ -409,6 +409,7 @@ anchored = 1 var/blur_amount var/confuse_amount + var/sickness_duration var/mob/living/carbon/human/occupant = null var/connected = null @@ -438,6 +439,9 @@ manip_rating += M.rating blur_amount = (48 - manip_rating * 8) + var/total_rating = manip_rating + scan_rating + sickness_duration = CLAMP((54 - (total_rating-4)*3) MINUTES, 15 MINUTES, 60 MINUTES) + /obj/machinery/transhuman/resleever/attack_hand(mob/user as mob) user.set_machine(src) var/health_text = "" @@ -584,8 +588,9 @@ else occupant << "You feel a small pain in your head as you're given a new backup implant. Oh, and a new body. It's disorienting, to say the least." - occupant.confused = max(occupant.confused, confuse_amount) + occupant.confused = max(occupant.confused, confuse_amount) //Apply immedeate effects occupant.eye_blurry = max(occupant.eye_blurry, blur_amount) + occupant.add_modifier(/datum/modifier/resleeving_sickness, sickness_duration) //And more longterm ones if(occupant.mind && occupant.original_player && ckey(occupant.mind.key) != occupant.original_player) log_and_message_admins("is now a cross-sleeved character. Body originally belonged to [occupant.real_name]. Mind is now [occupant.mind.name].",occupant) diff --git a/code/modules/resleeving/resleeving_sickness.dm b/code/modules/resleeving/resleeving_sickness.dm new file mode 100644 index 00000000000..0084ee64ccd --- /dev/null +++ b/code/modules/resleeving/resleeving_sickness.dm @@ -0,0 +1,17 @@ +/datum/modifier/resleeving_sickness + name = "resleeving sickness" + desc = "You feel rather weak, having been sleeved not so long ago." + + on_created_text = "You feel frail and unfocused." + on_expired_text = "You feel your resilience and focus return to you." + + incoming_brute_damage_percent = 1.3 // 30% more incoming brute damage. + incoming_fire_damage_percent = 1.3 // 30% more incoming burn damage. + incoming_oxy_damage_percent = 1.5 // 50% more incoming oxy damage + incoming_hal_damage_percent = 1.35 // 35% more incoming agony. + bleeding_rate_percent = 1.2 // 20% faster bleeding. + outgoing_melee_damage_percent = 0.75 // 25% less melee damage. + disable_duration_percent = 1.40 // 40% longer stuns. + evasion = -20 // 20% easier to hit. + accuracy = -30 // 30% less accurate. + accuracy_dispersion = 15 // 15% less precise. \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 40a6d8f19a9..86e2e50ab97 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3093,6 +3093,7 @@ #include "code\modules\resleeving\infomorph.dm" #include "code\modules\resleeving\infomorph_software.dm" #include "code\modules\resleeving\machines.dm" +#include "code\modules\resleeving\resleeving_sickness.dm" #include "code\modules\resleeving\sleevecard.dm" #include "code\modules\rogueminer_vr\asteroid.dm" #include "code\modules\rogueminer_vr\controller.dm"