Players have to wait 5 minutes between dying as a mouse and respawning as a mouse. Global variable mouse_respawn_time determines the respawn time in minutes.

Mice can no longer open airlocks.

Mice can no longer strip items from humans

Mice can no longer put other creatures into disposal units (though they can still climb into disposal units)

Message for when mice crawl into vents removed. Mouse nibbling message only displayed to observers half the time.
This commit is contained in:
RavingManiac
2013-02-19 08:04:53 +08:00
parent 11a0b81400
commit b2b2894e3b
9 changed files with 31 additions and 3 deletions
@@ -263,6 +263,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set name = "Become mouse"
set category = "Ghost"
if(client.can_spawn_as_mouse == 0)
src << "<span class='warning'>You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death.</span>"
return
//find a viable mouse candidate
var/mob/living/simple_animal/mouse/host
var/obj/machinery/atmospherics/unary/vent_pump/vent_found
@@ -461,6 +461,7 @@ It can still be worn/put on as normal.
*/
/obj/effect/equip_e/human/done() //TODO: And rewrite this :< ~Carn
target.cpr_time = 1
if(ismouse(source)) return //mice cannot strip people
if(!source || !target) return //Target or source no longer exist
if(source.loc != s_loc) return //source has moved
if(target.loc != t_loc) return //target has moved
@@ -84,9 +84,11 @@
if(loc==startloc)
var/obj/target_vent = vents[selection_position]
if(target_vent)
/*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("<B>[src] scrambles into the ventillation ducts!</B>"), 1)
*/
loc = target_vent.loc
else
src << "\blue You need to remain still while entering a vent."
@@ -107,15 +109,19 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
src << text("\blue You are now hiding.")
/*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << text("<B>[] scurries to the ground!</B>", src)
*/
else
layer = MOB_LAYER
src << text("\blue You have stopped hiding.")
/*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << text("[] slowly peaks up from the ground...", src)
*/
//make mice fit under tables etc? this was hacky, and not working
/*
@@ -152,6 +158,17 @@
M << 'sound/effects/mousesqueek.ogg'
..()
/mob/living/simple_animal/mouse/Die()
if(client)
client.mouse_respawn_timer()
..()
/client/proc/mouse_respawn_timer()
can_spawn_as_mouse = 0
spawn(mouse_respawn_time * 600)
can_spawn_as_mouse = 1
return
/*
* Mouse types
*/