From 0fdba26fe0b9a6a9e51dba6cb62a0df1d486fdcb Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 13:27:39 -0300 Subject: [PATCH 1/4] I am a cruel fuck --- hyperstation/code/mobs/mimic.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 9683b6f0..bbb70ba2 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -43,11 +43,16 @@ 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." From 439d6cf27d310b3c8071112872b6b1bfbd9d81a9 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 18:06:09 -0300 Subject: [PATCH 2/4] Test --- hyperstation/code/mobs/mimic.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index bbb70ba2..b94cf367 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -123,6 +123,14 @@ else if(!target && unstealth) trytftorandomobject() +/mob/living/simple_animal/hostile/hs13mimic/adjust_bodytemperature() + . = ..() + var/mod = 0 + else if(bodytemperature < 183.222) + mod = (283.222 - bodytemperature) / 10 * 1.75 + if(mod) + add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + /mob/living/simple_animal/hostile/hs13mimic/proc/restore() //back to normal name = initial(name) From 1f124358b059827df8f176a259b57e5c8370f6a9 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 21:00:35 -0300 Subject: [PATCH 3/4] Mimic behavioral changes and a runtime --- code/game/objects/items/devices/scanners.dm | 2 +- hyperstation/code/mobs/mimic.dm | 55 +++++++++++++++------ 2 files changed, 41 insertions(+), 16 deletions(-) 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 b94cf367..7b9c346a 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 - speed = 0 - see_in_dark = 3 + move_to_delay = 3 + speed = 1 + 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,9 +42,13 @@ 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) @@ -123,16 +133,31 @@ else if(!target && unstealth) trytftorandomobject() -/mob/living/simple_animal/hostile/hs13mimic/adjust_bodytemperature() +/mob/living/simple_animal/hostile/hs13mimic/death(gibbed) + restore() . = ..() - var/mod = 0 - else if(bodytemperature < 183.222) - mod = (283.222 - bodytemperature) / 10 * 1.75 - if(mod) - add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + +/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" @@ -155,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 @@ -168,5 +194,4 @@ icon_state = changedReference.icon_state desc = changedReference.desc else - unstealth = FALSE Mimictransform() From dd13eebde49d59b6ce111c0dceba8f88c8732cf4 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 21:02:48 -0300 Subject: [PATCH 4/4] That too. --- hyperstation/code/mobs/mimic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 7b9c346a..bc1bb976 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -11,7 +11,7 @@ health = 38 turns_per_move = 5 move_to_delay = 3 - speed = 1 + speed = 0 see_in_dark = 6 pass_flags = PASSTABLE butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 2)