From 35574307c04de2bce8e76e6c659d5cc3b1348a83 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sun, 4 Sep 2016 16:49:24 -0500 Subject: [PATCH 1/4] Adds organ fixing --- code/game/gamemodes/cult/runes.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 91d802c8bf5..f7fdd714707 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -273,6 +273,17 @@ var/list/sacrificed = list() for (,drain>0,drain-=5) sleep(2) user.heal_organ_damage(5, 0) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + for(var/obj/item/organ/I in H.internal_organs) + if(I.damage > 0) + I.damage = max(I.damage - 5, 0) //Heals 5 damage per organ per use + if(I.damage <= 5 && I.organ_tag == O_EYES) + H.sdisabilities &= ~BLIND + for(var/obj/item/organ/E in H.organs) + if((E.damage > 0) && (E.damage < E.min_broken_damage * config.organ_health_multiplier) && (E.status & ORGAN_BROKEN)) + if(prob(25)) + E.status = 0 return From 15235231d658ddc04ca85eee446930d1320910b9 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Wed, 14 Sep 2016 15:53:23 -0500 Subject: [PATCH 2/4] Still needs to fix internal bleeding --- code/game/gamemodes/cult/runes.dm | 5 ++-- html/changelogs/Anewbe - Blood Drain.yml | 36 ++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/Anewbe - Blood Drain.yml diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index f7fdd714707..27287201e32 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -281,9 +281,8 @@ var/list/sacrificed = list() if(I.damage <= 5 && I.organ_tag == O_EYES) H.sdisabilities &= ~BLIND for(var/obj/item/organ/E in H.organs) - if((E.damage > 0) && (E.damage < E.min_broken_damage * config.organ_health_multiplier) && (E.status & ORGAN_BROKEN)) - if(prob(25)) - E.status = 0 + if((E.damage < E.min_broken_damage * config.organ_health_multiplier) && (E.status & ORGAN_BROKEN)) + E.status = 0 return diff --git a/html/changelogs/Anewbe - Blood Drain.yml b/html/changelogs/Anewbe - Blood Drain.yml new file mode 100644 index 00000000000..9a25b45b532 --- /dev/null +++ b/html/changelogs/Anewbe - Blood Drain.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Blood Drain now heals internal damage, including broken bones." \ No newline at end of file From 0d580689d762334e7d133e10e7ebd1d70a13a4d5 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Fri, 16 Sep 2016 18:33:42 -0500 Subject: [PATCH 3/4] Adds in IB removal --- code/game/gamemodes/cult/runes.dm | 9 +++++++-- html/changelogs/Anewbe - Blood Drain.yml | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 27287201e32..a74f6fa6bd3 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -281,8 +281,13 @@ var/list/sacrificed = list() if(I.damage <= 5 && I.organ_tag == O_EYES) H.sdisabilities &= ~BLIND for(var/obj/item/organ/E in H.organs) - if((E.damage < E.min_broken_damage * config.organ_health_multiplier) && (E.status & ORGAN_BROKEN)) - E.status = 0 + var/obj/item/organ/external/affected = E + if((affected.damage < affected.min_broken_damage * config.organ_health_multiplier) && (affected.status & ORGAN_BROKEN)) + affected.status = 0 + for(var/datum/wound/W in affected.wounds) + if(istype(W, /datum/wound/internal_bleeding)) + affected.wounds -= W + affected.update_damages() return diff --git a/html/changelogs/Anewbe - Blood Drain.yml b/html/changelogs/Anewbe - Blood Drain.yml index 9a25b45b532..c8291e227d9 100644 --- a/html/changelogs/Anewbe - Blood Drain.yml +++ b/html/changelogs/Anewbe - Blood Drain.yml @@ -33,4 +33,4 @@ delete-after: True # Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. # Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. changes: - - rscadd: "Blood Drain now heals internal damage, including broken bones." \ No newline at end of file + - rscadd: "Blood Drain now heals internal damage, including broken bones and internal bleeding." \ No newline at end of file From 92bb0e0848104d453cbebb2aaed5f3c252950f91 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Fri, 16 Sep 2016 19:07:03 -0500 Subject: [PATCH 4/4] Cleans up code --- code/game/gamemodes/cult/runes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index a74f6fa6bd3..84251050203 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -280,10 +280,10 @@ var/list/sacrificed = list() I.damage = max(I.damage - 5, 0) //Heals 5 damage per organ per use if(I.damage <= 5 && I.organ_tag == O_EYES) H.sdisabilities &= ~BLIND - for(var/obj/item/organ/E in H.organs) + for(var/obj/item/organ/E in H.bad_external_organs) var/obj/item/organ/external/affected = E if((affected.damage < affected.min_broken_damage * config.organ_health_multiplier) && (affected.status & ORGAN_BROKEN)) - affected.status = 0 + affected.status &= ~ORGAN_BROKEN for(var/datum/wound/W in affected.wounds) if(istype(W, /datum/wound/internal_bleeding)) affected.wounds -= W