Two config variables added - disable_player_mice and uneducated_mice. The first, if enabled, prevents players from spawning as mice, and the second, if enabled, prevents mice from understanding human speech (which they now do my default)

universal_understand = 1 now allows player-controlled mobs to understand what everybody is saying without necessarily allowing them to talk back intelligibly. Mice have universal_understand = 1 by default.
This commit is contained in:
RavingManiac
2013-12-18 16:56:49 +08:00
parent 751219dbfd
commit e92bb6a02b
5 changed files with 29 additions and 5 deletions

View File

@@ -43,7 +43,8 @@
var/Tickcomp = 0 var/Tickcomp = 0
var/socket_talk = 0 // use socket_talk to communicate with other processes var/socket_talk = 0 // use socket_talk to communicate with other processes
var/list/resource_urls = null var/list/resource_urls = null
var/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round.
var/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round.
var/list/mode_names = list() var/list/mode_names = list()
var/list/modes = list() // allowed modes var/list/modes = list() // allowed modes
var/list/votable_modes = list() // votable modes var/list/votable_modes = list() // votable modes
@@ -61,6 +62,9 @@
var/automute_on = 0 //enables automuting/spam prevention var/automute_on = 0 //enables automuting/spam prevention
var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access.
var/disable_player_mice = 0
var/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech
var/usealienwhitelist = 0 var/usealienwhitelist = 0
var/limitalienplayers = 0 var/limitalienplayers = 0
var/alien_to_human_ratio = 0.5 var/alien_to_human_ratio = 0.5
@@ -385,6 +389,11 @@
if("ticklag") if("ticklag")
Ticklag = text2num(value) Ticklag = text2num(value)
if("allow_antag_hud")
config.antag_hud_allowed = 1
if("antag_hud_restricted")
config.antag_hud_restricted = 1
if("socket_talk") if("socket_talk")
socket_talk = text2num(value) socket_talk = text2num(value)
@@ -419,6 +428,12 @@
if("ghost_interaction") if("ghost_interaction")
config.ghost_interaction = 1 config.ghost_interaction = 1
if("disable_player_mice")
config.disable_player_mice = 1
if("uneducated_mice")
config.uneducated_mice = 1
if("comms_password") if("comms_password")
config.comms_password = value config.comms_password = value

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 name = "Become mouse"
set category = "Ghost" 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 var/timedifference = world.time - client.time_died_as_mouse
if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600) if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600)
var/timedifference_text 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!") 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. if(response != "Squeek!") return //Hit the wrong key...again.
//find a viable mouse candidate //find a viable mouse candidate
var/mob/living/simple_animal/mouse/host 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>" src << "<span class='warning'>Unable to find any unwelded vents to spawn mice at.</span>"
if(host) if(host)
if(config.uneducated_mice)
host.universal_understand = 0
host.ckey = src.ckey 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>" 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>"

View File

@@ -27,6 +27,7 @@
minbodytemp = 223 //Below -50 Degrees Celcius minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius
universal_speak = 0 universal_speak = 0
universal_understand = 1
/mob/living/simple_animal/mouse/Life() /mob/living/simple_animal/mouse/Life()
..() ..()
@@ -50,6 +51,7 @@
/mob/living/simple_animal/mouse/New() /mob/living/simple_animal/mouse/New()
..() ..()
name = "[name] ([rand(1, 1000)])"
if(!body_color) if(!body_color)
body_color = pick( list("brown","gray","white") ) body_color = pick( list("brown","gray","white") )
icon_state = "mouse_[body_color]" icon_state = "mouse_[body_color]"

View File

@@ -207,6 +207,7 @@
//Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything. //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_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/robot_talk_understand = 0
var/alien_talk_understand = 0 var/alien_talk_understand = 0

View File

@@ -66,7 +66,7 @@
if(!other) if(!other)
return 1 return 1
//Universal speak makes everything understandable, for obvious reasons. //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 return 1
else if (src.stat == 2) else if (src.stat == 2)
return 1 return 1
@@ -83,11 +83,11 @@
else else
return 0 return 0
else if(other.universal_speak || src.universal_speak) else if(other.universal_speak || src.universal_speak || src.universal_understand)
return 1 return 1
else if(isAI(src) && ispAI(other)) else if(isAI(src) && ispAI(other))
return 1 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 1
return 0 return 0