diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 07410fe5b7f6..6e08540bbaa4 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -533,7 +533,8 @@ livingdoll.filtered = TRUE var/icon/mob_mask = icon(icon, icon_state) if(mob_mask.Height() > world.icon_size || mob_mask.Width() > world.icon_size) - mob_mask = icon('icons/mob/screen_gen.dmi', "megasprite") //swap to something that fits if they wont + var/health_doll_icon_state = health_doll_icon ? health_doll_icon : "megasprite" + mob_mask = icon('icons/mob/screen_gen.dmi', health_doll_icon_state) //swap to something generic if they have no special doll UNLINT(livingdoll.filters += filter(type="alpha", icon = mob_mask)) livingdoll.filters += filter(type="drop_shadow", size = -1) if(severity > 0) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index ab75a5c65977..df52c8a0f576 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -73,6 +73,8 @@ var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob. + var/health_doll_icon //if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi + var/bubble_icon = "default" //what icon the mob uses for speechbubbles var/last_bumped = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 7465f0b193f6..5ac2b887009e 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -6,6 +6,7 @@ icon_living = "alienh" icon_dead = "alienh_dead" icon_gib = "syndicate_gib" + health_doll_icon = "alienq" gender = FEMALE response_help = "pokes" response_disarm = "shoves" diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 5a5bb3f09a5a..5821e1ec2fdf 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -8,6 +8,7 @@ icon_living = "base" icon_dead = "base_dead" icon_gib = "carp_gib" + health_doll_icon = "megacarp" mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) speak_chance = 0 turns_per_move = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index 9423b7b05eed..1e4375d8009d 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -9,6 +9,7 @@ icon_state = "crawling" icon_living = "crawling" icon_dead = "dead" + health_doll_icon = "crawling" mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 80 maxHealth = 220 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 09cd436e72f8..d24767767cef 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -28,6 +28,7 @@ Difficulty: Medium icon_state = "miner" icon_living = "miner" icon = 'icons/mob/broadMobs.dmi' + health_doll_icon = "miner" mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) light_color = "#E4C7C5" movement_type = GROUND diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 270245016b12..6f9e3f666e3f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -36,6 +36,7 @@ Difficulty: Hard icon_state = "bubblegum" icon_living = "bubblegum" icon_dead = "" + health_doll_icon = "bubblegum" friendly = "stares down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' speak_emote = list("gurgles") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 4e3388e03d93..7348672f8da8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -31,6 +31,7 @@ Difficulty: Very Hard icon_state = "eva" icon_living = "eva" icon_dead = "" + health_doll_icon = "eva" friendly = "stares down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' speak_emote = list("roars") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 2643782d381d..b7d86dc059cc 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -41,6 +41,7 @@ Difficulty: Medium icon_state = "dragon" icon_living = "dragon" icon_dead = "dragon_dead" + health_doll_icon = "dragon" friendly = "stares down" speak_emote = list("roars") armour_penetration = 40 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index b4f731910463..405f0e8b49a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -43,6 +43,7 @@ Difficulty: Hard attack_sound = 'sound/weapons/sonic_jackhammer.ogg' icon_state = "hierophant" icon_living = "hierophant" + health_doll_icon = "hierophant" friendly = "stares down" icon = 'icons/mob/lavaland/hierophant_new.dmi' faction = list("boss") //asteroid mobs? get that shit out of my beautiful square house diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 03ff750cccbf..67cda1af55be 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -22,6 +22,7 @@ Difficulty: Medium maxHealth = 800 icon_state = "legion" icon_living = "legion" + health_doll_icon = "mega_legion" desc = "One of many." icon = 'icons/mob/lavaland/legion.dmi' attacktext = "chomps" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 8b6f929de5e7..c4d70728079e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -67,6 +67,7 @@ icon_living = "watcher" icon_aggro = "watcher" icon_dead = "watcher_dead" + health_doll_icon = "watcher" pixel_x = -10 throw_message = "bounces harmlessly off of" melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 8d7a10054189..328b5adde542 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -25,6 +25,7 @@ icon_aggro = "broodmother" icon_dead = "egg_sac" icon_gib = "syndicate_gib" + health_doll_icon = "broodmother" maxHealth = 800 health = 800 melee_damage_lower = 30 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 684b57b29170..9b0a659f095c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -24,6 +24,7 @@ icon_aggro = "herald" icon_dead = "herald_dying" icon_gib = "syndicate_gib" + health_doll_icon = "herald" maxHealth = 800 health = 800 melee_damage_lower = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 0ec875f986b3..dfdd8f8f54b9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -24,6 +24,7 @@ icon_aggro = "legionnaire" icon_dead = "legionnaire_dead" icon_gib = "syndicate_gib" + health_doll_icon = "legionnaire" maxHealth = 800 health = 800 melee_damage_lower = 30 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index ebbd16777e10..62c8e0e4e7d4 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -24,6 +24,7 @@ icon_aggro = "pandora" icon_dead = "pandora_dead" icon_gib = "syndicate_gib" + health_doll_icon = "pandora" maxHealth = 800 health = 800 melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 2493bcabc9aa..4d35caf9b0e5 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -248,6 +248,7 @@ icon_state = "legion" icon_living = "legion" icon_dead = "legion" + health_doll_icon = "legion" health = 450 maxHealth = 450 melee_damage_lower = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 4eabe1b110f7..d3cb1f5fc0fa 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -6,6 +6,7 @@ icon_living = "clown" icon_dead = "clown_dead" icon_gib = "clown_gib" + health_doll_icon = "clown" //if >32x32, it will use this generic. for all the huge clown mobs that subtype from this mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 04825893a59d..9b9376dfe924 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -6,6 +6,7 @@ icon_living = "pine_1" icon_dead = "pine_1" icon_gib = "pine_1" + health_doll_icon = "pine_1" gender = NEUTER speak_chance = 0 turns_per_move = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 4e077a84bb10..4766d6af0b19 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -8,6 +8,7 @@ icon_aggro = "Fugu0" icon_dead = "Fugu_dead" icon_gib = "syndicate_gib" + health_doll_icon = "Fugu0" mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) mouse_opacity = MOUSE_OPACITY_ICON move_to_delay = 5 diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 2651ee655c55..feee6f67857e 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ