Merge pull request #4070 from RavingManiac/master

Crouching monkey, hidden mousetrap
This commit is contained in:
Zuhayr
2013-12-20 03:43:34 -08:00
8 changed files with 58 additions and 7 deletions
+14 -1
View File
@@ -45,6 +45,7 @@
visible_message("\red <b>SPLAT!</b>")
M.splat()
playsound(target.loc, 'sound/effects/snap.ogg', 50, 1)
layer = MOB_LAYER - 0.2
armed = 0
update_icon()
pulse(0)
@@ -112,4 +113,16 @@
/obj/item/device/assembly/mousetrap/armed
icon_state = "mousetraparmed"
armed = 1
armed = 1
/obj/item/device/assembly/mousetrap/verb/hide_under()
set src in oview(1)
set name = "Hide"
set category = "Object"
if(usr.stat)
return
layer = TURF_LAYER+0.2
usr << "<span class='notice'>You hide [src].</span>"
+7 -1
View File
@@ -293,6 +293,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(config.disable_player_mice)
src << "<span class='warning'>Spawning as a mouse is currently disabled.</span>"
return
var/timedifference = world.time - client.time_died_as_mouse
if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600)
var/timedifference_text
@@ -302,7 +306,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/response = alert(src, "Are you -sure- you want to become a mouse?","Are you sure you want to squeek?","Squeek!","Nope!")
if(response != "Squeek!") return //Hit the wrong key...again.
//find a viable mouse candidate
var/mob/living/simple_animal/mouse/host
@@ -318,6 +322,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "<span class='warning'>Unable to find any unwelded vents to spawn mice at.</span>"
if(host)
if(config.uneducated_mice)
host.universal_understand = 0
host.ckey = src.ckey
host << "<span class='info'>You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent.</span>"
+11 -1
View File
@@ -67,8 +67,18 @@
G.process()
if(!client && stat == CONSCIOUS)
if(prob(33) && canmove && isturf(loc))
step(src, pick(cardinal))
var/isBeingPulled = 0
for(var/mob/M in range(src, 1)) //won't move if being pulled
if(M.pulling == src)
isBeingPulled = 1
if(isBeingPulled == 0)
step(src, pick(cardinal))
if(prob(1))
emote(pick("scratch","jump","roll","tail"))
@@ -27,6 +27,7 @@
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
universal_speak = 0
universal_understand = 1
/mob/living/simple_animal/mouse/Life()
..()
@@ -50,6 +51,7 @@
/mob/living/simple_animal/mouse/New()
..()
name = "[name] ([rand(1, 1000)])"
if(!body_color)
body_color = pick( list("brown","gray","white") )
icon_state = "mouse_[body_color]"
@@ -63,6 +65,7 @@
src.stat = DEAD
src.icon_dead = "mouse_[body_color]_splat"
src.icon_state = "mouse_[body_color]_splat"
layer = MOB_LAYER
if(client)
client.time_died_as_mouse = world.time
@@ -179,6 +182,7 @@
..()
/mob/living/simple_animal/mouse/Die()
layer = MOB_LAYER
if(client)
client.time_died_as_mouse = world.time
..()
+1
View File
@@ -207,6 +207,7 @@
//Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything.
var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE
var/universal_understand = 0 // Set to 1 to enable the mob to understand everyone, not necessarily speak
var/robot_talk_understand = 0
var/alien_talk_understand = 0
+3 -3
View File
@@ -66,7 +66,7 @@
if(!other)
return 1
//Universal speak makes everything understandable, for obvious reasons.
else if(other.universal_speak || src.universal_speak)
else if(other.universal_speak || src.universal_speak || src.universal_understand)
return 1
else if (src.stat == 2)
return 1
@@ -83,11 +83,11 @@
else
return 0
else if(other.universal_speak || src.universal_speak)
else if(other.universal_speak || src.universal_speak || src.universal_understand)
return 1
else if(isAI(src) && ispAI(other))
return 1
else if (istype(other, src.type) || istype(src, other.type))
else if (istype(other, src.type) || istype(src, other.type))
return 1
return 0