From 4e5556e9d9eda24c0c1dbefd03f9fc2c2e61eb96 Mon Sep 17 00:00:00 2001 From: NanakoAC Date: Fri, 23 Dec 2016 18:52:27 +0000 Subject: [PATCH] Mouse Skeletons (#1279) Adds decomposing animations for mice when dusted. They'll leave behind a little mouse skeleton Mice and lizards will decompose to a skeleton 30 mins after death, or if dusted Also some fixes to various small issues and runtime errors related to held mobs and supermatters. --- code/game/objects/effects/decals/remains.dm | 8 ++- code/modules/mob/death.dm | 7 +- code/modules/mob/holder.dm | 2 + .../living/simple_animal/friendly/lizard.dm | 11 ++++ .../living/simple_animal/friendly/mouse.dm | 62 ++++++++++-------- code/modules/supermatter/supermatter.dm | 5 ++ html/changelogs/Nanako-Skelemice.yml | 36 ++++++++++ icons/effects/blood.dmi | Bin 51730 -> 51724 bytes icons/mob/mouse.dmi | Bin 3003 -> 4275 bytes 9 files changed, 99 insertions(+), 32 deletions(-) create mode 100644 html/changelogs/Nanako-Skelemice.yml diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index ff3c8d4a618..e6cc7a6b67d 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -18,11 +18,13 @@ icon_state = "remainsrobot" /obj/effect/decal/remains/mouse - desc = "They look like the remains of a small rodent." - icon_state = "mouse" + name = "mouse skeleton" + desc = "Looks like the remains of a small rodent. It doesn't squeak anymore." + icon = 'icons/mob/mouse.dmi' + icon_state = "skeleton" /obj/effect/decal/remains/lizard - desc = "They look like the remains of a small rodent." + desc = "They look like the remains of a small reptile." icon_state = "lizard" /obj/effect/decal/remains/attack_hand(mob/user as mob) diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index a48dd5ec78c..da17ad95122 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -25,8 +25,11 @@ //This is the proc for turning a mob into ash. Mostly a copy of gib code (above). //Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here. //Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N -/mob/proc/dust(anim="dust-m",remains=/obj/effect/decal/cleanable/ash) +/mob/proc/dust(anim="dust-m",remains=/obj/effect/decal/cleanable/ash, iconfile = 'icons/mob/mob.dmi') death(1) + if (istype(loc, /obj/item/weapon/holder)) + var/obj/item/weapon/holder/H = loc + H.release_mob() var/atom/movable/overlay/animation = null transforming = 1 canmove = 0 @@ -35,7 +38,7 @@ animation = new(loc) animation.icon_state = "blank" - animation.icon = 'icons/mob/mob.dmi' + animation.icon = iconfile animation.master = src flick(anim, animation) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index c94596263b3..bd1d58c2da9 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -70,6 +70,8 @@ var/list/holder_mob_icon_cache = list() origin_tech = list(TECH_BIO = 6) /obj/item/weapon/holder/process() + if (!contained) + qdel(src) if(!get_holding_mob() || contained.loc != src) if (is_unsafe_container(loc) && contained.loc == src) diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 0a57f51ed17..64652da558c 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -20,11 +20,19 @@ density = 0 seek_speed = 0.75 + var/decompose_time = 18000 + /mob/living/simple_animal/lizard/New() ..() nutrition = rand(max_nutrition*0.25, max_nutrition*0.75) +/mob/living/simple_animal/lizard/Life() + if (!..()) + if ((world.time - timeofdeath) > decompose_time) + dust() + + /mob/living/simple_animal/lizard/attack_hand(mob/living/carbon/human/M as mob) if (src.stat == DEAD)//If the creature is dead, we don't pet it, we just pickup the corpse on click get_scooped(M) @@ -35,3 +43,6 @@ /mob/living/simple_animal/lizard/death() .=..() desc = "It doesn't hiss anymore." + +/mob/living/simple_animal/lizard/dust() + ..(remains = /obj/effect/decal/remains/lizard) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index dbc66e30c82..39a38c0f841 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -49,38 +49,43 @@ can_pull_size = 1 can_pull_mobs = MOB_PULL_NONE + var/decompose_time = 18000 + /mob/living/simple_animal/mouse/Life() - ..() + if(..()) - if(client) - //Player-animals don't do random speech normally, so this is here - //Player-controlled mice will still squeak, but less often than NPC mice - if (stat == CONSCIOUS && prob(speak_chance*0.1)) - squeak_soft(0) + if(client) + //Player-animals don't do random speech normally, so this is here + //Player-controlled mice will still squeak, but less often than NPC mice + if (stat == CONSCIOUS && prob(speak_chance*0.1)) + squeak_soft(0) - if(is_ventcrawling == 0) - sight = SEE_SELF // Returns mouse sight to normal when they leave a vent + if(is_ventcrawling == 0) + sight = SEE_SELF // Returns mouse sight to normal when they leave a vent - if (squeals < maxSqueals) - var/diff = world.time - last_squealgain - if (diff > 600) - squeals++ - last_squealgain = world.time + if (squeals < maxSqueals) + var/diff = world.time - last_squealgain + if (diff > 600) + squeals++ + last_squealgain = world.time - if(!ckey && stat == CONSCIOUS && prob(0.5)) - stat = UNCONSCIOUS - icon_state = "mouse_[body_color]_sleep" - wander = 0 - speak_chance = 0 - //snuffles - else if(stat == UNCONSCIOUS) - if(ckey || prob(1)) - stat = CONSCIOUS - icon_state = "mouse_[body_color]" - wander = 1 - speak_chance = initial(speak_chance) - else if(prob(5)) - audible_emote("snuffles.") + if(!ckey && stat == CONSCIOUS && prob(0.5)) + stat = UNCONSCIOUS + icon_state = "mouse_[body_color]_sleep" + wander = 0 + speak_chance = 0 + //snuffles + else if(stat == UNCONSCIOUS) + if(ckey || prob(1)) + stat = CONSCIOUS + icon_state = "mouse_[body_color]" + wander = 1 + speak_chance = initial(speak_chance) + else if(prob(5)) + audible_emote("snuffles.") + else + if ((world.time - timeofdeath) > decompose_time) + dust() @@ -221,6 +226,9 @@ client.time_died_as_mouse = world.time ..() +/mob/living/simple_animal/mouse/dust() + ..(anim = "dust_[body_color]", remains = /obj/effect/decal/remains/mouse, iconfile = 'icons/mob/mouse.dmi') + /mob/living/simple_animal/mouse/lay_down() set name = "Rest" set category = "IC" diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 479696cdd1f..30663c850ce 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -371,6 +371,11 @@ user.dust() power += 200 else + if (istype(user, /obj/item/weapon/holder)) + var/obj/item/weapon/holder/H = user + Consume(H.contained)//If its a holder, eat the thing inside + qdel(H) + return qdel(user) power += 200 diff --git a/html/changelogs/Nanako-Skelemice.yml b/html/changelogs/Nanako-Skelemice.yml new file mode 100644 index 00000000000..31c6f2b2cb4 --- /dev/null +++ b/html/changelogs/Nanako-Skelemice.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Nanako + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Mice and lizards will now decompose to a skeleton 30mins after death, or if turned to dust by something (like the supermatter)" diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index f0146ec2cc43a14013e66c72eb7d7fda892f79e6..9237d75f6c076c7d8fb71afb5c056008b99c3384 100644 GIT binary patch delta 7872 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 delta 7878 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 UZQ8!G$GQ`Zr#h+?%GP230pp!cqW}N^ diff --git a/icons/mob/mouse.dmi b/icons/mob/mouse.dmi index ee4a5648f7fa3d82f41b3ae978ec4050f1ecc05e..340340847adfc5369fe4e15a138202d4f09d80a0 100644 GIT binary patch literal 4275 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 E0;$Dd$N&HU delta 2970 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 Bw`BkT