From 11fdd3cac3b2dd0c7473ec5fc55e1bf9671a6dc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 20:24:40 +0000 Subject: [PATCH 01/12] Bump pillow from 8.1.1 to 8.2.0 in /tools/mapmerge2 Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.1.1 to 8.2.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/8.1.1...8.2.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- tools/mapmerge2/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index ce5a9546..999167e9 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ pygit2==0.27.2 bidict==0.13.1 -Pillow==8.1.1 +Pillow==8.2.0 From 6986dbc4dc94b0fd2cf7be000a0f47d7defc2e80 Mon Sep 17 00:00:00 2001 From: Archie Date: Fri, 11 Jun 2021 18:14:57 -0300 Subject: [PATCH 02/12] Fixes several things --- _maps/map_files/hyper/Diner.dmm | 6 +++--- code/modules/food_and_drinks/drinks/drinks.dm | 20 +++++++++--------- icons/obj/drinks.dmi | Bin 103812 -> 103817 bytes 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/_maps/map_files/hyper/Diner.dmm b/_maps/map_files/hyper/Diner.dmm index c067d0e0..260d1316 100644 --- a/_maps/map_files/hyper/Diner.dmm +++ b/_maps/map_files/hyper/Diner.dmm @@ -70,8 +70,8 @@ "br" = (/obj/effect/turf_decal/loading_area{dir = 6; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel/cafeteria,/area/diner) "bs" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "diner shutters"; tag = dshutters},/turf/open/floor/plating,/area/diner) "bt" = (/obj/structure/table/plasmaglass,/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/item/reagent_containers/food/drinks/drinkingglass,/turf/open/floor/plasteel/dark,/area/diner) -"bu" = (/obj/structure/table/plasmaglass,/obj/machinery/chem_dispenser/drinks{dir = 8},/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/turf/open/floor/plasteel/dark,/area/diner) -"bv" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/dark,/area/diner) +"bu" = (/obj/structure/table/plasmaglass,/obj/machinery/chem_dispenser/drinks{dir = 8},/obj/machinery/light{dir = 4; pixel_x = 7; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/dark,/area/diner) +"bv" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/flour,/obj/item/reagent_containers/food/condiment/flour,/turf/open/floor/plasteel/dark,/area/diner) "bw" = (/obj/structure/table/plasmaglass,/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/diner) "bx" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/dark,/area/diner) "by" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/dark,/area/diner) @@ -104,7 +104,7 @@ "kS" = (/turf/open/floor/plasteel{dir = 1; icon_state = "floor_trim"},/area/diner) "lm" = (/obj/structure/table/plasmaglass,/turf/open/floor/carpet/black,/area/diner) "mb" = (/obj/structure/lattice/catwalk,/obj/structure/railing{dir = 4},/obj/structure/railing{dir = 1},/turf/open/space/basic,/area/space/nearstation) -"mn" = (/obj/machinery/vending/boozeomat,/turf/closed/wall,/area/diner) +"mn" = (/obj/machinery/vending/boozeomat{req_access = null},/turf/closed/wall,/area/diner) "mV" = (/turf/open/floor/plasteel{dir = 4; icon_state = "floor_plate"},/area/diner) "nQ" = (/obj/structure/table/plasmaglass,/obj/item/reagent_containers/food/condiment/saltshaker{pixel_y = 10},/obj/item/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = 4},/turf/open/floor/carpet/black,/area/diner) "op" = (/obj/structure/table/plasmaglass,/obj/item/ashtray,/turf/open/floor/carpet/black,/area/diner) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 82f86749..f4ebd218 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -470,7 +470,7 @@ desc = "You wanted ORANGE. It gave you Lemon Lime." icon_state = "lemon-lime" list_reagents = list(/datum/reagent/consumable/lemon_lime = 30) - foodtype = FRUIT + foodtype = SUGAR | FRUIT /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime/Initialize() . = ..() @@ -481,35 +481,35 @@ desc = "Tastes like a hull breach in your mouth." icon_state = "space-up" list_reagents = list(/datum/reagent/consumable/space_up = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/starkist name = "Star-kist" desc = "The taste of a star in liquid form. And, a bit of tuna...?" icon_state = "starkist" list_reagents = list(/datum/reagent/consumable/space_cola = 15, /datum/reagent/consumable/orangejuice = 15) - foodtype = SUGAR | FRUIT | JUNKFOOD + foodtype = SUGAR | FRUIT /obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind name = "Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind" list_reagents = list(/datum/reagent/consumable/spacemountainwind = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko name = "Thirteen Loko" desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkenness, or even death. Please Drink Responsibly." icon_state = "thirteen_loko" list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb name = "Dr. Gibb" desc = "A delicious mixture of 42 different flavors." icon_state = "dr_gibb" list_reagents = list(/datum/reagent/consumable/dr_gibb = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game name = "Pwr Game" @@ -522,14 +522,14 @@ desc = "~Shake me up some of that Shambler's Juice!~" icon_state = "shamblers" list_reagents = list(/datum/reagent/consumable/shamblers = 30) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull name = "Grey Bull" desc = "Grey Bull, it gives you gloves!" icon_state = "energy_drink" - list_reagents = list(/datum/reagent/consumable/grey_bull = 20) - foodtype = SUGAR | JUNKFOOD + list_reagents = list(/datum/reagent/consumable/grey_bull = 30) + foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/air name = "canned air" @@ -542,5 +542,5 @@ desc = "Unleash the ape!" icon_state = "menergy" list_reagents = list(/datum/reagent/consumable/monkey_energy = 50) - foodtype = SUGAR | JUNKFOOD + foodtype = SUGAR price = 3 diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index b0fc76df92c6ed5618abb8201cf3c901da71c062..61ad164d433c60ec8d5e22dcf76efe14b445ccc7 100644 GIT binary patch delta 2072 zcmV+z2= zi0!1)v+!n+#vqIC&3u5sE3xinF7+@aRi*s(vna(xcg+^uiot>v}tv>y1lu2H?fRUJN&1AHfp@OTm7_QOWcOs zn(|Lq?}Aue-L0;#-ffH`KmI-CR!eTHyVZyF^{4gq%i*P4J~j9WI_9AJK{qIjf0LyJus&x@LFfbh{pFiIxr1c0Qcazka_aJ(k!%QG{lmsGu z9us+V+N`1aNoiz%1BVo9meIvzqcrl@E`AxS5<#Rlrnrb|Ia15mj71VtDGDy2Hly9Z zW_t`jD%I*ZmbM46UYV9{_<-F_($F>RSvBuK@L+kD5YucqiN}2N(M2%uC~2F+Oc=WH zeHR76)*}X-Y0?f(x|75h^5CT)whyE-7&!I7TqB|Zm=dh1tplc0ATOPV9d`OM0*D3@a>qs^#4@$M2-NWq*J3O+K>|3@PSY@2f zhW^*K{MOHZv)GR-32?i{oN#!{-z3#q*bAMzf{$

_|bd#oXIDH-AOyqcH=du2ic# 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 a(3ANG8wiueEFh`qmWhKL2)7&v0d0*K*Xc Date: Fri, 11 Jun 2021 23:08:13 -0300 Subject: [PATCH 03/12] blacklists dust from layenia --- code/game/gamemodes/dynamic/dynamic_rulesets_events.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index df980539..c26e7e1c 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -459,6 +459,7 @@ //property_weights = list("extended" = 1) //always_max_weight = TRUE occurances_max = 0 + map_blacklist = list("LayeniaStation.dmm") /datum/dynamic_ruleset/event/major_dust name = "Major Space Dust" @@ -474,6 +475,7 @@ repeatable = TRUE //property_weights = list("extended" = 1) occurances_max = 3 + map_blacklist = list("LayeniaStation.dmm") /datum/dynamic_ruleset/event/electrical_storm From d57b624b6c8a6a235e6f47b73fbab75c3489521f Mon Sep 17 00:00:00 2001 From: Archie Date: Sat, 12 Jun 2021 00:52:53 -0300 Subject: [PATCH 04/12] Balancing + reorg --- hyperstation/code/modules/events/crystalline_reentry.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hyperstation/code/modules/events/crystalline_reentry.dm b/hyperstation/code/modules/events/crystalline_reentry.dm index 034e5ce3..71206465 100644 --- a/hyperstation/code/modules/events/crystalline_reentry.dm +++ b/hyperstation/code/modules/events/crystalline_reentry.dm @@ -14,6 +14,7 @@ /datum/round_event/crystalline_reentry announceWhen = 0 + startWhen = 10 fakeable = FALSE /datum/round_event/crystalline_reentry/announce(fake) @@ -177,7 +178,6 @@ if(asteroidhealth <= 0) collision_effect() atmos_spawn_air("water_vapor=1000;TEMP=0") //brr - make_debris() switch(rand(1,100)) if(1 to 20) var/obj/structure/spawner/crystalline/M = new(src.loc) @@ -205,6 +205,7 @@ new thing_to_spawn(get_turf(src)) /obj/effect/crystalline_reentry/proc/collision_effect() + make_debris() explosion(src.loc, 0, 0, 5, 3, 1, 0, 0, 0, 0) var/sound/meteor_sound = sound(meteorsound) var/random_frequency = get_rand_frequency() @@ -267,8 +268,8 @@ /obj/structure/spawner/crystalline/proc/delayedInitialize() //Why is this needed? Simple, because apparently explosion is so slow that it triggers after the spawner spawns and kills it on the spot. This just makes it killable. resistance_flags = FIRE_PROOF | LAVA_PROOF - max_integrity = 250 - obj_integrity = 250 + max_integrity = 200 + obj_integrity = 200 /obj/effect/light_emitter/crystalline set_luminosity = 4 From 955b40626662930db2ce144112d40ffcb9d1671d Mon Sep 17 00:00:00 2001 From: Archie Date: Sat, 12 Jun 2021 01:28:03 -0300 Subject: [PATCH 05/12] right! --- hyperstation/code/modules/events/crystalline_reentry.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hyperstation/code/modules/events/crystalline_reentry.dm b/hyperstation/code/modules/events/crystalline_reentry.dm index 71206465..bcdb01c5 100644 --- a/hyperstation/code/modules/events/crystalline_reentry.dm +++ b/hyperstation/code/modules/events/crystalline_reentry.dm @@ -268,8 +268,8 @@ /obj/structure/spawner/crystalline/proc/delayedInitialize() //Why is this needed? Simple, because apparently explosion is so slow that it triggers after the spawner spawns and kills it on the spot. This just makes it killable. resistance_flags = FIRE_PROOF | LAVA_PROOF - max_integrity = 200 - obj_integrity = 200 + max_integrity = 225 + obj_integrity = 225 /obj/effect/light_emitter/crystalline set_luminosity = 4 From ebb2283741db238d80efbd8f87c51e12a14cbabc Mon Sep 17 00:00:00 2001 From: Archie Date: Sat, 12 Jun 2021 21:13:42 -0300 Subject: [PATCH 06/12] Well well well --- code/modules/mob/living/simple_animal/simple_animal.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index bffdbac4..223a1a88 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -369,7 +369,7 @@ /mob/living/simple_animal/proc/make_babies() // <3 <3 <3 if(gender != FEMALE || stat || next_scan_time > world.time || !childtype || !animal_species || !SSticker.IsRoundInProgress()) return - next_scan_time = world.time + 2000 //Please stop making it so they multiply like rabbits + next_scan_time = world.time + 6000 //Please stop making it so they multiply like rabbits var/alone = 1 var/mob/living/simple_animal/partner var/children = 0 From 5f100df030076ae1d66b31a00e631602738685f4 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 13 Jun 2021 01:51:40 -0300 Subject: [PATCH 07/12] ghost changes --- code/modules/mob/dead/observer/observer.dm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 752094a3..b8142624 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -300,17 +300,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp succumb() if(stat == DEAD) ghostize(1) - else - //Low RP, removing. - /* + else if(!(ishuman(src))) var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 suicide_log(TRUE) - */ + else to_chat(usr, "You cannot ghost, if you wish to remove yourself from the round, please locate a cryogenic freezer.") - message_admins("[usr] attempted to ghost.") + message_admins("[src] attempted to ghost.") /mob/camera/verb/ghost() set category = "OOC" From 4d1b608e9c374fbd1f96a49f73e7a71b29333902 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 13 Jun 2021 01:55:13 -0300 Subject: [PATCH 08/12] silicon --- code/modules/mob/dead/observer/observer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index b8142624..2c20a22f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -300,7 +300,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp succumb() if(stat == DEAD) ghostize(1) - else if(!(ishuman(src))) + else if(!(ishuman(src)) && !(issilicon(src))) var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all From 94438776635ccb9c26498ad14ab2c5dabbb4b030 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 13 Jun 2021 17:14:36 -0300 Subject: [PATCH 09/12] Mimic Player handling --- hyperstation/code/mobs/mimic.dm | 53 ++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 082d7d5e..3ebb8140 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -12,7 +12,8 @@ turns_per_move = 5 move_to_delay = 1 speed = 0 - see_in_dark = 6 + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE pass_flags = PASSTABLE butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 2) response_help = "prods" @@ -35,10 +36,15 @@ pressure_resistance = 600 var/unstealth = FALSE var/knockdown_people = 1 + var/playerTransformCD = 50 + var/playerTfTime var/static/mimic_blacklisted_transform_items = typecacheof(list( /obj/item/projectile, /obj/item/radio/intercom)) - var/turns_since_notarget + var/warned + var/playstyle_string = "You are a mimic, a tricky creature that can take the form of \ + almost any items nearby by shift-clicking it. While morphed, you move slowly and do less damage. \ + Finally, you can restore yourself to your original form while morphed by shift-clicking yourself." /mob/living/simple_animal/hostile/hs13mimic/Initialize() . = ..() @@ -52,16 +58,20 @@ /mob/living/simple_animal/hostile/hs13mimic/Life() . = ..() - turns_since_notarget++ - if(turns_since_notarget >= 5) - turns_since_notarget = 0 - if(unstealth && (!target || isdead(target))) - target = null - trytftorandomobject() + if(src.mind && !warned) + to_chat(src, src.playstyle_string) + warned = TRUE /mob/living/simple_animal/hostile/hs13mimic/AttackingTarget() . = ..() - if(knockdown_people && . && prob(15) && iscarbon(target)) + if(unstealth == FALSE && knockdown_people && . && iscarbon(target))//Guaranteed knockdown if we get the first hit while in stealth. Typically, only players can do this since NPC mimics transform first before attacking. + unstealth = TRUE + restore() + var/mob/living/carbon/C = target + C.Knockdown(40) + C.visible_message("\The [src] knocks down \the [C]!", \ + "\The [src] knocks you down!") + else if(knockdown_people && . && prob(15) && iscarbon(target)) var/mob/living/carbon/C = target C.Knockdown(40) C.visible_message("\The [src] knocks down \the [C]!", \ @@ -175,11 +185,12 @@ icon = 'hyperstation/icons/mobs/mimic.dmi' icon_state = "mimic" desc = initial(desc) + speed = initial(speed) wander = TRUE vision_range = 9 /mob/living/simple_animal/hostile/hs13mimic/proc/trigger() - if(unstealth == FALSE) + if(unstealth == FALSE && !stat) unstealth = TRUE visible_message("The [src] Reveals itself to be a Mimic!") Mimictransform() @@ -197,7 +208,7 @@ medhudupdate() var/list/obj/item/listItems = list() for(var/obj/item/I in oview(9,src.loc)) - if(!(is_type_in_typecache(I, mimic_blacklisted_transform_items))) + if(allowed(I)) listItems += I if(LAZYLEN(listItems)) var/obj/item/changedReference = pick(listItems) @@ -210,6 +221,26 @@ else Mimictransform() +/mob/living/simple_animal/hostile/hs13mimic/proc/allowed(atom/movable/A) + return !is_type_in_typecache(A, mimic_blacklisted_transform_items) && (isitem(A)) + +/mob/living/simple_animal/hostile/hs13mimic/ShiftClickOn(atom/movable/A) //if by any chance a player takes control of them + if(playerTfTime <= world.time && !stat) + if(A == src) + restore() + playerTfTime = world.time + playerTransformCD + return + if(istype(A) && allowed(A)) + unstealth = FALSE + name = A.name + icon = A.icon + icon_state = A.icon_state + desc = A.desc + speed = 5 + playerTfTime = world.time + playerTransformCD + else + to_chat(src, "You need to wait a little longer before you can shift into something else!") + ..() //Event control From d94d60e0b78790a973022b291ea7eb0e5ac41712 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 13 Jun 2021 21:05:35 -0300 Subject: [PATCH 10/12] Mimics get thermal vision. --- hyperstation/code/mobs/mimic.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 3ebb8140..eadfe823 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -34,6 +34,7 @@ minbodytemp = 250 //weak to cold maxbodytemp = 1500 pressure_resistance = 600 + sight = SEE_MOBS var/unstealth = FALSE var/knockdown_people = 1 var/playerTransformCD = 50 From 76f9185fff0dfa8b10bcc89c76cacfb0cb7f8263 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 13 Jun 2021 21:56:44 -0300 Subject: [PATCH 11/12] Ability to heal, sound changes. --- hyperstation/code/mobs/mimic.dm | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index eadfe823..362d4159 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -21,8 +21,8 @@ response_harm = "smacks" melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "slams" - attack_sound = 'sound/weapons/punch1.ogg' + attacktext = "glomps" + attack_sound = 'sound/effects/blobattack.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 @@ -60,23 +60,28 @@ /mob/living/simple_animal/hostile/hs13mimic/Life() . = ..() if(src.mind && !warned) + SEND_SOUND(src, sound('sound/magic/mutate.ogg')) to_chat(src, src.playstyle_string) warned = TRUE /mob/living/simple_animal/hostile/hs13mimic/AttackingTarget() . = ..() - if(unstealth == FALSE && knockdown_people && . && iscarbon(target))//Guaranteed knockdown if we get the first hit while in stealth. Typically, only players can do this since NPC mimics transform first before attacking. - unstealth = TRUE - restore() + if(iscarbon(target)) var/mob/living/carbon/C = target - C.Knockdown(40) - C.visible_message("\The [src] knocks down \the [C]!", \ - "\The [src] knocks you down!") - else if(knockdown_people && . && prob(15) && iscarbon(target)) - var/mob/living/carbon/C = target - C.Knockdown(40) - C.visible_message("\The [src] knocks down \the [C]!", \ + if(unstealth == FALSE && knockdown_people && .) //Guaranteed knockdown if we get the first hit while disguised. Typically, only players can do this since NPC mimics transform first before attacking. + unstealth = TRUE + restore() + C.Knockdown(40) + C.visible_message("\The [src] knocks down \the [C]!", \ "\The [src] knocks you down!") + else if(knockdown_people && . && prob(15)) + C.Knockdown(40) + C.visible_message("\The [src] knocks down \the [C]!", \ + "\The [src] knocks you down!") + if(C.nutrition >= 15) + C.nutrition -= (rand(7,15)) //They lose 7-15 nutrition + adjustBruteLoss(-3) //We heal 3 damage + C.adjustCloneLoss(rand(2,4)) //They also take a bit of cellular damage. /mob/living/simple_animal/hostile/hs13mimic/adjustHealth(amount, updating_health = TRUE, forced = FALSE) trigger() From bcd46f7181dc3eb7e4c2c7fca470a3ac1a6574e1 Mon Sep 17 00:00:00 2001 From: Archie Date: Sun, 13 Jun 2021 22:00:26 -0300 Subject: [PATCH 12/12] Description, sound. --- hyperstation/code/mobs/mimic.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hyperstation/code/mobs/mimic.dm b/hyperstation/code/mobs/mimic.dm index 362d4159..5872cd47 100644 --- a/hyperstation/code/mobs/mimic.dm +++ b/hyperstation/code/mobs/mimic.dm @@ -43,9 +43,10 @@ /obj/item/projectile, /obj/item/radio/intercom)) var/warned - var/playstyle_string = "You are a mimic, a tricky creature that can take the form of \ + var/playstyle_string = "You are a mimic, a tricky creature that can take the form of \ almost any items nearby by shift-clicking it. While morphed, you move slowly and do less damage. \ - Finally, you can restore yourself to your original form while morphed by shift-clicking yourself." + Finally, you can restore yourself to your original form while morphed by shift-clicking yourself. \ + Attacking carbon lifeforms will heal you at the cost of destructuring their DNA." /mob/living/simple_animal/hostile/hs13mimic/Initialize() . = ..() @@ -60,7 +61,7 @@ /mob/living/simple_animal/hostile/hs13mimic/Life() . = ..() if(src.mind && !warned) - SEND_SOUND(src, sound('sound/magic/mutate.ogg')) + SEND_SOUND(src, sound('sound/ambience/antag/ling_aler.ogg')) to_chat(src, src.playstyle_string) warned = TRUE