Robotic flavour texts.

This commit is contained in:
Segrain
2014-11-21 19:32:40 +03:00
parent 7f199874fb
commit 078d6f74a5
4 changed files with 74 additions and 8 deletions

View File

@@ -112,6 +112,7 @@ datum/preferences
var/list/player_alt_titles = new() // the default name of a job like "Medical Doctor"
var/list/flavor_texts = list()
var/list/flavour_texts_robot = list()
var/med_record = ""
var/sec_record = ""
@@ -395,6 +396,7 @@ datum/preferences
dat += "\t<a href=\"byond://?src=\ref[user];preference=skills\"><b>Set Skills</b> (<i>[GetSkillClass(used_skillpoints)][used_skillpoints > 0 ? " [used_skillpoints]" : "0"])</i></a><br>"
dat += "<a href='byond://?src=\ref[user];preference=flavor_text;task=open'><b>Set Flavor Text</b></a><br>"
dat += "<a href='byond://?src=\ref[user];preference=flavour_text_robot;task=open'><b>Set Robot Flavour Text</b></a><br>"
dat += "<a href='byond://?src=\ref[user];preference=pAI'><b>pAI Configuration</b></a><br>"
dat += "<br>"
@@ -650,6 +652,25 @@ datum/preferences
user << browse(HTML, "window=flavor_text;size=430x300")
return
/datum/preferences/proc/SetFlavourTextRobot(mob/user)
var/HTML = "<body>"
HTML += "<tt><center>"
HTML += "<b>Set Robot Flavour Text</b> <hr />"
HTML += "<br></center>"
HTML += "<a href ='byond://?src=\ref[user];preference=flavour_text_robot;task=Default'>Default:</a> "
HTML += TextPreview(flavour_texts_robot["Default"])
HTML += "<hr />"
for(var/module in robot_module_types)
HTML += "<a href='byond://?src=\ref[user];preference=flavour_text_robot;task=[module]'>[module]:</a> "
HTML += TextPreview(flavour_texts_robot[module])
HTML += "<br>"
HTML += "<hr />"
HTML +="<a href='?src=\ref[user];preference=flavour_text_robot;task=done'>\[Done\]</a>"
HTML += "<tt>"
user << browse(null, "window=preferences")
user << browse(HTML, "window=flavour_text_robot;size=430x300")
return
/datum/preferences/proc/GetPlayerAltTitle(datum/job/job)
return player_alt_titles.Find(job.title) > 0 \
? player_alt_titles[job.title] \
@@ -916,6 +937,30 @@ datum/preferences
SetFlavorText(user)
return
else if(href_list["preference"] == "flavour_text_robot")
switch(href_list["task"])
if("open")
SetFlavourTextRobot(user)
return
if("done")
user << browse(null, "window=flavour_text_robot")
ShowChoices(user)
return
if("Default")
var/msg = input(usr,"Set the default flavour text for your robot. It will be used for any module without individual setting.","Flavour Text",html_decode(flavour_texts_robot["Default"])) as message
if(msg != null)
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
msg = html_encode(msg)
flavour_texts_robot[href_list["task"]] = msg
else
var/msg = input(usr,"Set the flavour text for your robot with [href_list["task"]] module. If you leave this empty, default flavour text will be used for this module.","Flavour Text",html_decode(flavour_texts_robot[href_list["task"]])) as message
if(msg != null)
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
msg = html_encode(msg)
flavour_texts_robot[href_list["task"]] = msg
SetFlavourTextRobot(user)
return
else if(href_list["preference"] == "pAI")
paiController.recruitWindow(user, 0)
return 1
@@ -1575,8 +1620,8 @@ datum/preferences
for(var/name in organ_data)
var/status = organ_data[name]
var/datum/organ/external/O = character.organs_by_name[name]
var/status = organ_data[name]
var/datum/organ/external/O = character.organs_by_name[name]
if(O)
if(status == "amputated")
O.amputated = 1
@@ -1584,7 +1629,7 @@ datum/preferences
O.destspawn = 1
else if(status == "cyborg")
O.status |= ORGAN_ROBOT
else
else
var/datum/organ/internal/I = character.internal_organs_by_name[name]
if(I)
if(status == "assisted")
@@ -1632,4 +1677,4 @@ datum/preferences
user << browse(dat, "window=saves;size=300x390")
/datum/preferences/proc/close_load_dialog(mob/user)
user << browse(null, "window=saves")
user << browse(null, "window=saves")

View File

@@ -154,6 +154,11 @@
S["flavor_texts_legs"] >> flavor_texts["legs"]
S["flavor_texts_feet"] >> flavor_texts["feet"]
//Flavour text for robots.
S["flavour_texts_robot_Default"] >> flavour_texts_robot["Default"]
for(var/module in robot_module_types)
S["flavour_texts_robot_[module]"] >> flavour_texts_robot[module]
//Miscellaneous
S["med_record"] >> med_record
S["sec_record"] >> sec_record
@@ -298,6 +303,11 @@
S["flavor_texts_legs"] << flavor_texts["legs"]
S["flavor_texts_feet"] << flavor_texts["feet"]
//Flavour text for robots.
S["flavour_texts_robot_Default"] << flavour_texts_robot["Default"]
for(var/module in robot_module_types)
S["flavour_texts_robot_[module]"] << flavour_texts_robot[module]
//Miscellaneous
S["med_record"] << med_record
S["sec_record"] << sec_record
@@ -328,4 +338,4 @@
#undef SAVEFILE_VERSION_MAX
#undef SAVEFILE_VERSION_MIN
#undef SAVEFILE_VERSION_MIN

View File

@@ -177,7 +177,8 @@ var/list/robot_verbs_default = list(
/mob/living/silicon/robot/proc/pick_module()
if(module)
return
var/list/modules = list("Standard", "Engineering", "Construction", "Surgeon", "Crisis", "Miner", "Janitor", "Service", "Clerical", "Security")
var/list/modules = list()
modules.Add(robot_module_types)
if((crisis && security_level == SEC_LEVEL_RED) || crisis_override) //Leaving this in until it's balanced appropriately.
src << "\red Crisis mode active. Combat module available."
modules+="Combat"
@@ -358,6 +359,14 @@ var/list/robot_verbs_default = list(
if(icon_state == "robot")
icon_state = "[src.ckey]-Standard"
//Flavour text.
if(client)
var/module_flavour = client.prefs.flavour_texts_robot[modtype]
if(module_flavour)
flavor_text = module_flavour
else
flavor_text = client.prefs.flavour_texts_robot["Default"]
/mob/living/silicon/robot/verb/Namepick()
set category = "Robot Commands"
if(custom_name)
@@ -1267,4 +1276,4 @@ var/list/robot_verbs_default = list(
if(2) //New Module
connected_ai << "<br><br><span class='notice'>NOTICE - Cyborg module change detected: [name] has loaded the [module.name] module.</span><br>"
if(3) //New Name
connected_ai << "<br><br><span class='notice'>NOTICE - Cyborg reclassification detected: [oldname] is now designated as [newname].</span><br>"
connected_ai << "<br><br><span class='notice'>NOTICE - Cyborg reclassification detected: [oldname] is now designated as [newname].</span><br>"

View File

@@ -567,6 +567,8 @@ var/list/liftable_structures = list(\
#define BORGTHERM 2
#define BORGXRAY 4
var/list/robot_module_types = list("Standard", "Engineering", "Construction", "Surgeon", "Crisis", "Miner", "Janitor", "Service", "Clerical", "Security"/*, "Combat"*/)
//some arbitrary defines to be used by self-pruning global lists. (see master_controller)
#define PROCESS_KILL 26 //Used to trigger removal from a processing list
@@ -860,4 +862,4 @@ var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")
//Chemistry
#define CHEM_SYNTH_ENERGY 500 //How much energy does it take to synthesize 1 unit of chemical, in J
#define CHEM_SYNTH_ENERGY 500 //How much energy does it take to synthesize 1 unit of chemical, in J