Adds a Frankenstein Surgical Procedure (#4990)

* Makes a Surgery for Frankensteining

* Fix a thing.

* Tweak things!

* Sickness not permanent, Recovery is.
This commit is contained in:
Mechoid
2018-03-05 19:46:05 -06:00
committed by Anewbe
parent 1c94c32830
commit 437aad2d77
5 changed files with 320 additions and 0 deletions
+63
View File
@@ -61,3 +61,66 @@
outgoing_melee_damage_percent = 0.5 //50% less outgoing melee damage.
attack_speed_percent = 1.2 //20% slower attack speed.
//////////////////////
//Surgical Modifiers// As of writing, limited to the 'Frankenstein' modifier.
//////////////////////
/datum/modifier/franken_sickness
name = "surgically attached brain"
desc = "You feel weak, as your central nervous system is still recovering from being repaired."
on_created_text = "<span class='warning'><font size='3'>You feel... off, and your head hurts.</font></span>"
on_expired_text = "<span class='notice'><font size='3'>You feel some strength returning to you.</font></span>"
max_health_percent = 0.9 // -10% max health.
incoming_damage_percent = 1.1 // 10% more incoming damage.
incoming_hal_damage_percent = 1.5 // 50% more halloss damage, stacking on the previous 1.1 widespread.
outgoing_melee_damage_percent = 0.9 // 10% less melee damage.
disable_duration_percent = 1.25 // Stuns last 25% longer.
incoming_healing_percent = 0.9 // -10% to all healing
slowdown = 0.5 // Slower, by a smidge.
evasion = -5 // 5% easier to hit.
accuracy_dispersion = 1 // Inaccurate trait level of tile dispersion.
stacks = MODIFIER_STACK_ALLOWED //You have somehow had the surgery done twice. Your brain is very, very fucked, but I won't say no.
/datum/modifier/franken_sickness/can_apply(var/mob/living/L)
if(!ishuman(L))
return FALSE
if(L.isSynthetic()) //Nonhumans and Machines cannot be Frankensteined, at this time.
return FALSE
return ..()
/datum/modifier/franken_sickness/tick()
if(holder.stat != DEAD)
if(istype(holder, /mob/living/carbon/human))
var/mob/living/carbon/human/F = holder
if(F.can_defib)
F.can_defib = 0
/datum/modifier/franken_sickness/on_expire() //Not permanent, but its child is.
holder.add_modifier(/datum/modifier/franken_recovery, 0)
/datum/modifier/franken_recovery //When Franken_Sickness expires, this will be permanently applied in its place.
name = "neural recovery"
desc = "You feel out of touch, as your central nervous system is still recovering from being repaired."
on_created_text = "<span class='warning'><font size='3'>You feel... off. Everything is fuzzy.</font></span>"
on_expired_text = "<span class='notice'><font size='3'>You feel your senses returning to you.</font></span>"
incoming_hal_damage_percent = 1.5 // 50% more halloss damage.
disable_duration_percent = 1.25 // Stuns last 25% longer.
evasion = -5 // 5% easier to hit.
accuracy_dispersion = 1 // Inaccurate trait level of tile dispersion.
stacks = MODIFIER_STACK_ALLOWED
/datum/modifier/franken_recovery/can_apply(var/mob/living/L)
if(!ishuman(L))
return FALSE
if(L.isSynthetic()) //Nonhumans and Machines cannot be Frankensteined, at this time.
return FALSE
return ..()