diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index d2c9f5a1..56237527 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -232,7 +232,7 @@ GENE SCANNER msg += "\tSubject has abnormal brain fuctions.\n" //Astrogen shenanigans - if(M.reagents.has_reagent(/datum/reagent/fermi/astral)) + if(M.reagents?.has_reagent(/datum/reagent/fermi/astral)) if(M.mind) msg += "\tWarning: subject may be possesed.\n" else diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 9683b6f0..bc1bb976 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -7,12 +7,13 @@ icon_dead = "mimic_dead" gender = NEUTER speak_chance = 0 + maxHealth = 38 + health = 38 turns_per_move = 5 - maxHealth = 50 - health = 50 - //move_to_delay = 4 + move_to_delay = 3 speed = 0 - see_in_dark = 3 + see_in_dark = 6 + pass_flags = PASSTABLE butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 2) response_help = "prods" response_disarm = "pushes aside" @@ -21,12 +22,17 @@ melee_damage_upper = 12 attacktext = "slams" attack_sound = 'sound/weapons/punch1.ogg' + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) ventcrawler = VENTCRAWLER_ALWAYS + blood_volume = 0 faction = list("mimic") gold_core_spawnable = NO_SPAWN vision_range = 2 aggro_vision_range = 9 wander = TRUE + minbodytemp = 250 //VERY weak to cold + maxbodytemp = 1500 + pressure_resistance = 600 var/unstealth = FALSE var/knockdown_people = 1 @@ -36,18 +42,27 @@ unstealth = FALSE Mimictransform() -/mob/living/simple_animal/hostile/hs13mimic/proc/Mimictransform() //The list of default things to transform needs to be bigger, consider this in the future. +/mob/living/simple_animal/hostile/hs13mimic/attack_hand(mob/living/carbon/human/M) + . = ..() + trigger() +/mob/living/simple_animal/hostile/hs13mimic/proc/Mimictransform() //The list of default things to transform needs to be bigger, consider this in the future. var/transformitem = rand(1,100) + medhudupdate() if(unstealth == FALSE) wander = FALSE vision_range = initial(vision_range) switch(transformitem) - if(1 to 20) + if(1 to 10) name = "drinking glass" icon = 'icons/obj/drinks.dmi' icon_state = "glass_empty" desc = "Your standard drinking glass." + if(11 to 20) + name = "insulated gloves" + icon = 'icons/obj/clothing/gloves.dmi' + icon_state = "yellow" + desc = "These gloves will protect the wearer from electric shock." if(21 to 30) name = "Private Security Officer" desc = "A cardboard cutout of a private security officer." @@ -118,8 +133,31 @@ else if(!target && unstealth) trytftorandomobject() +/mob/living/simple_animal/hostile/hs13mimic/death(gibbed) + restore() + . = ..() + +/mob/living/simple_animal/hostile/hs13mimic/med_hud_set_health() + if(!unstealth) + var/image/holder = hud_list[HEALTH_HUD] + holder.icon_state = null + return //we hide medical hud while morphed + ..() + +/mob/living/simple_animal/hostile/hs13mimic/med_hud_set_status() + if(!unstealth) + var/image/holder = hud_list[STATUS_HUD] + holder.icon_state = null + return //we hide medical hud while morphed + ..() + +/mob/living/simple_animal/hostile/hs13mimic/proc/medhudupdate() + med_hud_set_health() + med_hud_set_status() + /mob/living/simple_animal/hostile/hs13mimic/proc/restore() - //back to normal + //back to normal mimic sprite + medhudupdate() name = initial(name) icon = 'hyperstation/icons/mobs/mimic.dmi' icon_state = "mimic" @@ -142,12 +180,13 @@ C.trigger() /mob/living/simple_animal/hostile/hs13mimic/proc/trytftorandomobject() + unstealth = FALSE + medhudupdate() var/list/obj/item/listItems = list() for(var/obj/item/I in oview(9,src.loc)) listItems += I if(LAZYLEN(listItems)) var/obj/item/changedReference = pick(listItems) - unstealth = FALSE wander = FALSE vision_range = initial(vision_range) name = changedReference.name @@ -155,5 +194,4 @@ icon_state = changedReference.icon_state desc = changedReference.desc else - unstealth = FALSE Mimictransform()