Changes clown/mime naming to use preferences. Player will now choose their mime/clown name in the main preference screen and save it, instead of at roundstart.

Adding a config file for random mime names.
This commit is contained in:
phil235
2015-04-23 23:18:35 +02:00
parent 939b5552ad
commit 88fd7c44cc
5 changed files with 105 additions and 25 deletions
+53 -24
View File
@@ -362,43 +362,72 @@ Turf and target are seperate in case you want to teleport some distance from a t
//Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame()
//Last modified by Carn
/mob/proc/rename_self(var/role, var/allow_numbers=0)
spawn(0)
var/oldname = real_name
var/oldname = real_name
var/time_passed = world.time
var/newname
var/loop = 1
var/loop_safety = 0
var/time_passed = world.time
var/newname
if(role == "clown" || role == "mime")
while(loop && loop_safety < 5)
if(role == "clown")
if(client && client.prefs.clown_name && !loop_safety)
newname = client.prefs.clown_name
else
newname = pick(clown_names)
for(var/i=1,i<=3,i++) //we get 3 attempts to pick a suitable name.
newname = input(src,"You are a [role]. Would you like to change your name to something else?", "Name change",oldname) as text
if((world.time-time_passed)>300)
return //took too long
newname = reject_bad_name(newname,allow_numbers) //returns null if the name doesn't meet some basic requirements. Tidies up a few other things like bad-characters.
if(role == "mime")
if(client && client.prefs.mime_name && !loop_safety)
newname = client.prefs.mime_name
else
newname = pick(mime_names)
for(var/mob/living/M in player_list)
if(M == src)
continue
if(!newname || M.real_name == newname)
newname = null
loop++ // name is already taken so we roll again
break
if(newname)
break //That's a suitable name!
src << "Sorry, that [role]-name wasn't appropriate, please try another. It's possibly too long/short, has bad characters or is already taken."
loop--
loop_safety++
if(!newname) //we'll stick with the oldname then
return
if(newname)
fully_replace_character_name(oldname,newname)
return
if(cmptext("ai",role))
if(isAI(src))
oldname = null//don't bother with the records update crap
else
spawn(0)
for(var/i=1,i<=3,i++) //we get 3 attempts to pick a suitable name.
newname = input(src,"You are a [role]. Would you like to change your name to something else?", "Name change",oldname) as text
if((world.time-time_passed)>300)
return //took too long
newname = reject_bad_name(newname,allow_numbers) //returns null if the name doesn't meet some basic requirements. Tidies up a few other things like bad-characters.
if(cmptext("cyborg",role))
if(isrobot(src))
var/mob/living/silicon/robot/A = src
A.custom_name = newname
for(var/mob/living/M in player_list)
if(M == src)
continue
if(!newname || M.real_name == newname)
newname = null
break
if(newname)
break //That's a suitable name!
src << "Sorry, that [role]-name wasn't appropriate, please try another. It's possibly too long/short, has bad characters or is already taken."
fully_replace_character_name(oldname,newname)
if(!newname) //we'll stick with the oldname then
return
if(cmptext("ai",role))
if(isAI(src))
oldname = null//don't bother with the records update crap
if(cmptext("cyborg",role))
if(isrobot(src))
var/mob/living/silicon/robot/A = src
A.custom_name = newname
fully_replace_character_name(oldname,newname)
+1
View File
@@ -8,6 +8,7 @@ var/list/first_names_male = file2list("config/names/first_male.txt")
var/list/first_names_female = file2list("config/names/first_female.txt")
var/list/last_names = file2list("config/names/last.txt")
var/list/clown_names = file2list("config/names/clown.txt")
var/list/mime_names = file2list("config/names/mime.txt")
var/list/verbs = file2list("config/names/verbs.txt")
+23 -1
View File
@@ -60,6 +60,8 @@ datum/preferences
var/eye_color = "000" //Eye color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/mutant_color = "FFF" //Mutant race skin color
var/clown_name = "Bozo"
var/mime_name = "Mime"
//Mob preview
var/icon/preview_icon_front = null
@@ -92,6 +94,8 @@ datum/preferences
/datum/preferences/New(client/C)
blood_type = random_blood_type()
ooccolor = normal_ooc_colour
clown_name = pick(clown_names)
mime_name = pick(mime_names)
if(istype(C))
if(!IsGuestKey(C.key))
load_path(C.ckey)
@@ -233,6 +237,10 @@ datum/preferences
dat += "</td>"
dat += "<h2>Special Names:</h2>"
dat += "<a href ='?_src_=prefs;preference=clown_name;task=input'><b>Clown:</b> [clown_name]</a><BR>"
dat += "<a href ='?_src_=prefs;preference=mime_name;task=input'><b>Mime:</b> [mime_name]</a><BR>"
dat += "</tr></table>"
@@ -302,7 +310,7 @@ datum/preferences
dat += "</center>"
//user << browse(dat, "window=preferences;size=560x560")
var/datum/browser/popup = new(user, "preferences", "<div align='center'>Character Setup</div>", 640, 680)
var/datum/browser/popup = new(user, "preferences", "<div align='center'>Character Setup</div>", 640, 720)
popup.set_content(dat)
popup.open(0)
@@ -753,6 +761,20 @@ datum/preferences
var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in backbaglist
if(new_backbag)
backbag = backbaglist.Find(new_backbag)
if("clown_name")
var/new_clown_name = reject_bad_name( input(user, "Choose your character's clown name:", "Character Preference") as text|null )
if(new_clown_name)
clown_name = new_clown_name
else
user << "<font color='red'>Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .</font>"
if("mime_name")
var/new_mime_name = reject_bad_name( input(user, "Choose your character's mime name:", "Character Preference") as text|null )
if(new_mime_name)
mime_name = new_mime_name
else
user << "<font color='red'>Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .</font>"
else
switch(href_list["preference"])
if("publicity")
@@ -187,6 +187,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["socks"] >> socks
S["backbag"] >> backbag
S["mutant_color"] >> mutant_color
S["clown_name"] >> clown_name
S["mime_name"] >> mime_name
//Jobs
S["userandomjob"] >> userandomjob
@@ -274,6 +276,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["backbag"] << backbag
S["species"] << pref_species.name
S["mutant_color"] << mutant_color
S["clown_name"] << clown_name
S["mime_name"] << mime_name
//Jobs
S["userandomjob"] << userandomjob
+24
View File
@@ -0,0 +1,24 @@
Mr. Beret
Mime
Mr. Mime
Mr. Mute
Silence
Silencio
Quiet
Silent Sorrow
Silent Knight
Silent Night
Untouchable
Unspeakable
Mute
Marcel Mime
Marcel
Pantomime
Omerta
Lemon Mime
Invisible Man
Transparency
Quiet Riot
Silent Majority
Wall Runner
Oui Oui