diff --git a/code/modules/mob/living/simple_animal/hostile/heart_attack.dm b/code/modules/mob/living/simple_animal/hostile/heart_attack.dm new file mode 100644 index 00000000000..9f20099c6d8 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/heart_attack.dm @@ -0,0 +1,43 @@ +/mob/living/simple_animal/hostile/heart_attack + name = "heart" + icon = 'icons/obj/surgery.dmi' + icon_state = "heart-on" + icon_dead = "heart-off" + environment_smash_flags = 0 + melee_damage_lower = 15 + melee_damage_upper = 15 + health = 50 + maxHealth = 50 + stat_attack = 1 + var/blood_data = list( + "viruses" = null, + "blood_DNA" = null, + "blood_type" = "O+", + "blood_colour" = DEFAULT_BLOOD, + "resistances" = null, + "trace_chem" = null, + "virus2" = null, + "immunity" = null, + ) + var/datum/dna/source_dna + +/mob/living/simple_animal/hostile/heart_attack/proc/update_heart(var/obj/item/organ/internal/heart/source, var/datum/dna/_dna, var/list/vir = list()) + if (!istype(source)) + return + appearance = source.appearance + blood_data = source.blood_data + blood_data["virus2"] = vir + source_dna = _dna + + +/mob/living/simple_animal/hostile/heart_attack/death(var/gibbed = FALSE) + ..() + visible_message("[src] blows apart!") + hgibs(loc, blood_data["virus2"], source_dna, blood_data["blood_colour"], blood_data["blood_colour"], 2) + qdel(src) + +/mob/living/simple_animal/hostile/heart_attack/UnarmedAttack(var/atom/A) + ..() + var/datum/reagent/blood/B = new + B.data = blood_data + blood_splatter(loc,B,TRUE) diff --git a/code/modules/virus2/effect/stage_4.dm b/code/modules/virus2/effect/stage_4.dm index 54c36ffabc3..aa3ae3292b7 100644 --- a/code/modules/virus2/effect/stage_4.dm +++ b/code/modules/virus2/effect/stage_4.dm @@ -556,15 +556,8 @@ spawn_turfs.Add(T) if(!spawn_turfs.len) spawn_turfs.Add(get_turf(H)) - var/mob/living/simple_animal/hostile/heart_attack = new(pick(spawn_turfs)) - heart_attack.appearance = blown_heart.appearance - heart_attack.icon_dead = "heart-off" - heart_attack.environment_smash_flags = 0 - heart_attack.melee_damage_lower = 15 - heart_attack.melee_damage_upper = 15 - heart_attack.health = 50 - heart_attack.maxHealth = 50 - heart_attack.stat_attack = 1 + var/mob/living/simple_animal/hostile/heart_attack/HA = new(pick(spawn_turfs)) + HA.update_heart(blown_heart,H.dna,virus_copylist(H.virus2)) score["heartattacks"]++ qdel(blown_heart) diff --git a/vgstation13.dme b/vgstation13.dme index 985ec3130de..1d5bcc0e51d 100644 --- a/vgstation13.dme +++ b/vgstation13.dme @@ -2024,6 +2024,7 @@ #include "code\modules\mob\living\simple_animal\hostile\glow_orb.dm" #include "code\modules\mob\living\simple_animal\hostile\gremlin.dm" #include "code\modules\mob\living\simple_animal\hostile\grinch.dm" +#include "code\modules\mob\living\simple_animal\hostile\heart_attack.dm" #include "code\modules\mob\living\simple_animal\hostile\hive_aliens.dm" #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm"