diff --git a/code/game/gamemodes/vampire/vampire_helpers.dm b/code/game/gamemodes/vampire/vampire_helpers.dm index bc928aea502..edb506a962d 100644 --- a/code/game/gamemodes/vampire/vampire_helpers.dm +++ b/code/game/gamemodes/vampire/vampire_helpers.dm @@ -184,7 +184,7 @@ /mob/proc/vampire_start_frenzy(var/force_frenzy = 0) var/datum/vampire/vampire = mind.antag_datums[MODE_VAMPIRE] if (vampire.status & VAMP_FRENZIED) - return + return TRUE var/probablity = force_frenzy ? 100 : vampire.frenzy * 0.5 @@ -199,12 +199,19 @@ sight |= SEE_MOBS verbs += /mob/living/carbon/human/proc/grapple + + return TRUE + +/mob/living/carbon/human/vampire_start_frenzy() + . = ..() + if(.) + update_body() /mob/proc/vampire_stop_frenzy(var/force_stop = 0) var/datum/vampire/vampire = mind.antag_datums[MODE_VAMPIRE] if (!(vampire.status & VAMP_FRENZIED)) - return + return TRUE if (prob(force_stop ? 100 : vampire.blood_usable)) vampire.status &= ~VAMP_FRENZIED @@ -219,6 +226,13 @@ verbs -= /mob/living/carbon/human/proc/grapple regenerate_icons() + + return TRUE + +/mob/living/carbon/human/vampire_stop_frenzy() + . = ..() + if(.) + update_body() // Removes all vampire powers. /mob/proc/remove_vampire_powers() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 59e48a8b4c1..19d33563163 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -258,7 +258,6 @@ There are several things that need to be remembered: return var/husk_color_mod = rgb(96,88,80) - var/hulk_color_mod = rgb(48,224,40) var/husk = (HUSK in mutations) var/fat = (FAT in mutations) @@ -277,7 +276,10 @@ There are several things that need to be remembered: qdel(stand_icon) stand_icon = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi',"blank") - var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin][lip_style || "nolips"][!!husk][!!fat][!!hulk][!!skeleton]" + var/is_frenzied = FALSE + if(mind?.vampire && (mind.vampire.status & VAMP_FRENZIED)) + is_frenzied = TRUE + var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin][lip_style || "nolips"][!!husk][!!fat][!!hulk][!!skeleton][is_frenzied]" var/obj/item/organ/internal/eyes/eyes = get_eyes() if(eyes) icon_key += "[rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3])]" @@ -320,12 +322,14 @@ There are several things that need to be remembered: else base_icon.Blend(temp, ICON_OVERLAY) + var/list/add_images = part.get_additional_images(src) + if(add_images) + add_overlay(add_images, TRUE) + compile_overlays() + if(!(species.flags & NO_SCAN)) if(husk) base_icon.ColorTone(husk_color_mod) - else if(hulk) - var/list/tone = ReadRGB(hulk_color_mod) - base_icon.MapColors(rgb(tone[1],0,0),rgb(0,tone[2],0),rgb(0,0,tone[3])) //Handle husk overlay. if(husk && ("overlay_husk" in icon_states(species.icobase))) diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index ed34853da9e..51db99bfd82 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -61,7 +61,7 @@ return if(owner.species.has_organ[owner.species.vision_organ]) var/obj/item/organ/internal/eyes/eyes = owner.get_eyes() - if(eyes && species.eyes) + if(eyes && species.eyes && !(owner.mind?.vampire && (owner.mind.vampire.status & VAMP_FRENZIED))) var/eyecolor if (eyes.eye_colour) eyecolor = rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]) @@ -100,6 +100,12 @@ return mob_icon +/obj/item/organ/external/head/get_additional_images(var/mob/living/carbon/human/H) + if(H.mind?.vampire && (H.mind.vampire.status & VAMP_FRENZIED)) + var/image/return_image = image(H.species.eyes_icons, H, "[H.species.eyes]_frenzy", EFFECTS_ABOVE_LIGHTING_LAYER) + return_image.appearance_flags = KEEP_APART + return list(return_image) + /obj/item/organ/external/proc/apply_markings(restrict_to_robotic = FALSE) if (!cached_markings) update_marking_cache() @@ -206,6 +212,9 @@ return mob_icon +/obj/item/organ/external/proc/get_additional_images(var/mob/living/carbon/human/H) + return + // new damage icon system // adjusted to set damage_state to brute/burn code only (without r_name0 as before) /obj/item/organ/external/update_icon() diff --git a/html/changelogs/geeves-spoopy_eyes.yml b/html/changelogs/geeves-spoopy_eyes.yml new file mode 100644 index 00000000000..eaff12d404c --- /dev/null +++ b/html/changelogs/geeves-spoopy_eyes.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "When vampires frenzy, their eyes will start glowing bright red." + - rscdel: "Going hulk now really never turns someone green." diff --git a/icons/mob/human_face/eyes.dmi b/icons/mob/human_face/eyes.dmi index 58e86b4269a..17884a91ee7 100644 Binary files a/icons/mob/human_face/eyes.dmi and b/icons/mob/human_face/eyes.dmi differ