mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
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:
+53
-24
@@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user