122 lines
3.4 KiB
Plaintext
122 lines
3.4 KiB
Plaintext
/mob/living/simple_animal/mouse
|
|
name = "mouse"
|
|
desc = "It's a nasty, ugly, evil, disease-ridden rodent."
|
|
icon_state = "mouse_gray"
|
|
icon_living = "mouse_gray"
|
|
icon_dead = "mouse_gray_dead"
|
|
speak = list("Squeak!","SQUEAK!","Squeak?")
|
|
speak_emote = list("squeaks")
|
|
emote_hear = list("squeaks.")
|
|
emote_see = list("runs in a circle.", "shakes.")
|
|
speak_chance = 1
|
|
turns_per_move = 5
|
|
blood_volume = 250
|
|
see_in_dark = 6
|
|
maxHealth = 5
|
|
health = 5
|
|
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1)
|
|
response_help = "pets"
|
|
response_disarm = "gently pushes aside"
|
|
response_harm = "splats"
|
|
density = FALSE
|
|
ventcrawler = VENTCRAWLER_ALWAYS
|
|
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
|
|
mob_size = MOB_SIZE_TINY
|
|
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
|
|
var/body_color //brown, gray and white, leave blank for random
|
|
gold_core_spawnable = FRIENDLY_SPAWN
|
|
var/chew_probability = 1
|
|
|
|
/mob/living/simple_animal/mouse/Initialize()
|
|
. = ..()
|
|
AddComponent(/datum/component/squeak, list('sound/effects/mousesqueek.ogg'=1), 100)
|
|
if(!body_color)
|
|
body_color = pick( list("brown","gray","white") )
|
|
icon_state = "mouse_[body_color]"
|
|
icon_living = "mouse_[body_color]"
|
|
icon_dead = "mouse_[body_color]_dead"
|
|
|
|
|
|
/mob/living/simple_animal/mouse/proc/splat()
|
|
src.health = 0
|
|
src.icon_dead = "mouse_[body_color]_splat"
|
|
death()
|
|
|
|
/mob/living/simple_animal/mouse/death(gibbed, toast)
|
|
if(!ckey)
|
|
..(1)
|
|
if(!gibbed)
|
|
var/obj/item/reagent_containers/food/snacks/deadmouse/M = new(loc)
|
|
M.icon_state = icon_dead
|
|
M.name = name
|
|
if(toast)
|
|
M.add_atom_colour("#3A3A3A", FIXED_COLOUR_PRIORITY)
|
|
M.desc = "It's toast."
|
|
qdel(src)
|
|
else
|
|
..(gibbed)
|
|
|
|
/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
|
|
if( ishuman(AM) )
|
|
if(!stat)
|
|
var/mob/M = AM
|
|
to_chat(M, "<span class='notice'>[icon2html(src, M)] Squeak!</span>")
|
|
..()
|
|
|
|
/mob/living/simple_animal/mouse/handle_automated_action()
|
|
if(isbelly(loc))
|
|
return
|
|
|
|
if(prob(chew_probability))
|
|
var/turf/open/floor/F = get_turf(src)
|
|
if(istype(F) && !F.intact)
|
|
var/obj/structure/cable/C = locate() in F
|
|
if(C && prob(15))
|
|
if(C.avail())
|
|
visible_message("<span class='warning'>[src] chews through the [C]. It's toast!</span>")
|
|
playsound(src, 'sound/effects/sparks2.ogg', 100, 1)
|
|
C.deconstruct()
|
|
death(toast=1)
|
|
else
|
|
C.deconstruct()
|
|
visible_message("<span class='warning'>[src] chews through the [C].</span>")
|
|
|
|
/*
|
|
* Mouse types
|
|
*/
|
|
|
|
/mob/living/simple_animal/mouse/white
|
|
body_color = "white"
|
|
icon_state = "mouse_white"
|
|
|
|
/mob/living/simple_animal/mouse/gray
|
|
body_color = "gray"
|
|
icon_state = "mouse_gray"
|
|
|
|
/mob/living/simple_animal/mouse/brown
|
|
body_color = "brown"
|
|
icon_state = "mouse_brown"
|
|
|
|
//TOM IS ALIVE! SQUEEEEEEEE~K :)
|
|
/mob/living/simple_animal/mouse/brown/Tom
|
|
name = "Tom"
|
|
desc = "Jerry the cat is not amused."
|
|
response_help = "pets"
|
|
response_disarm = "gently pushes aside"
|
|
response_harm = "splats"
|
|
gold_core_spawnable = NO_SPAWN
|
|
|
|
/obj/item/reagent_containers/food/snacks/deadmouse
|
|
name = "dead mouse"
|
|
desc = "It looks like somebody dropped the bass on it. A lizard's favorite meal."
|
|
icon = 'icons/mob/animal.dmi'
|
|
icon_state = "mouse_gray_dead"
|
|
bitesize = 3
|
|
eatverb = "devour"
|
|
list_reagents = list("nutriment" = 3, "vitamin" = 2)
|
|
foodtype = GROSS | MEAT | RAW
|
|
grind_results = list("blood" = 20, "liquidgibs" = 5)
|
|
|
|
/obj/item/reagent_containers/food/snacks/deadmouse/on_grind()
|
|
reagents.clear_reagents()
|