diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index 6d2cfe702ed..817f3e7a76a 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -27,6 +27,12 @@
#define ROLE_RAIDER "vox raider"
#define ROLE_VAMPIRE "vampire"
#define ROLE_MUTINEER "mutineer"
+// Role tags for EVERYONE!
+#define ROLE_BORER "cortical borer"
+#define ROLE_DEMON "slaughter demon"
+#define ROLE_SENTIENT "sentient animal"
+#define ROLE_POSIBRAIN "positronic brain"
+#define ROLE_GUARDIAN "guardian"
//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
@@ -44,13 +50,17 @@ var/global/list/special_roles = list(
ROLE_CULTIST = /datum/game_mode/cult,
ROLE_BLOB = /datum/game_mode/blob,
ROLE_NINJA,
- ROLE_MONKEY = /datum/game_mode/monkey,
- ROLE_GANG = /datum/game_mode/gang,
+// ROLE_MONKEY = /datum/game_mode/monkey, Sooner or later these are going to get ported
+// ROLE_GANG = /datum/game_mode/gang,
ROLE_SHADOWLING = /datum/game_mode/shadowling,
- ROLE_ABDUCTOR = /datum/game_mode/abduction,
+// ROLE_ABDUCTOR = /datum/game_mode/abduction,
// ROLE_HOG_GOD = /datum/game_mode/hand_of_god,
// ROLE_HOG_CULTIST = /datum/game_mode/hand_of_god,
ROLE_RAIDER = /datum/game_mode/heist,
ROLE_VAMPIRE = /datum/game_mode/vampire,
ROLE_MUTINEER = /datum/game_mode/mutiny,
+ ROLE_BORER,
+ ROLE_DEMON,
+ ROLE_SENTIENT,
+ ROLE_POSIBRAIN,
)
diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm
index f25fd419da8..f5dc80dcae7 100644
--- a/code/game/jobs/job_controller.dm
+++ b/code/game/jobs/job_controller.dm
@@ -94,7 +94,7 @@ var/global/datum/controller/occupations/job_master
if(!job.player_old_enough(player.client))
Debug("FOC player not old enough, Player: [player]")
continue
- if(flag && (!(flag in player.client.prefs.be_special))
+ if(flag && !(flag in player.client.prefs.be_special))
Debug("FOC flag failed, Player: [player], Flag: [flag], ")
continue
if(player.mind && job.title in player.mind.restricted_roles)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 81669e556c6..792482643ef 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -194,1004 +194,881 @@ datum/preferences
// Hello I am a proc full of snowflake species checks how are you
/datum/preferences/proc/ShowChoices(mob/user)
- if(!user || !user.client) return
- update_preview_icon()
- user << browse_rsc(preview_icon_front, "previewicon.png")
- user << browse_rsc(preview_icon_side, "previewicon2.png")
- var/dat = "
"
+ if(!user || !user.client) return
+ update_preview_icon()
+ user << browse_rsc(preview_icon_front, "previewicon.png")
+ user << browse_rsc(preview_icon_side, "previewicon2.png")
+ var/dat = ""
- dat += "Character Settings"
- dat += "Game Preferences"
- dat += ""
- dat += "
"
+ dat += "Character Settings"
+ dat += "Game Preferences"
+ dat += ""
+ dat += "
"
- switch(current_tab)
- if (0) // Character Settings#
- dat += ""
- dat += "Slot [slot_name] - "
- dat += "Load slot - "
- dat += "Save slot - "
- dat += "Reload slot"
- dat += ""
- dat += "Occupation Choices
"
- dat += "Set Occupation Preferences
"
- dat += "Identity
"
- dat += ""
- if(appearance_isbanned(user))
- dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game. "
- dat += "Name: "
- dat += "[real_name] "
- dat += "(Random Name) "
- dat += "(Always Random Name: [be_random_name ? "Yes" : "No"])"
- dat += " "
- dat += "Gender: [gender == MALE ? "Male" : "Female"] "
- dat += "Age: [age]"
- //dat += "Spawn Point: [spawnpoint]"
- dat += "
Body "
- dat += "(®)"
- dat += " "
- dat += "Species: [species] "
- if(species == "Vox")//oldvox code, sucks I know
- dat += "N2 Tank: [speciesprefs ? "Large N2 Tank" : "Specialized N2 Tank"] "
- dat += "Secondary Language: [language] "
- dat += "Blood Type: [b_type] "
- if(species == "Human")
- dat += "Skin Tone: [-s_tone + 35]/220 "
+ switch(current_tab)
+ if (0) // Character Settings#
+ dat += ""
+ dat += "Slot [slot_name] - "
+ dat += "Load slot - "
+ dat += "Save slot - "
+ dat += "Reload slot"
+ dat += ""
+ dat += "Occupation Choices"
+ dat += "Set Occupation Preferences "
+ dat += "Identity"
+ dat += ""
+ if(appearance_isbanned(user))
+ dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game. "
+ dat += "Name: "
+ dat += "[real_name] "
+ dat += "(Random Name) "
+ dat += "(Always Random Name: [be_random_name ? "Yes" : "No"])"
+ dat += " "
+ dat += "Gender: [gender == MALE ? "Male" : "Female"] "
+ dat += "Age: [age]"
+ //dat += "Spawn Point: [spawnpoint]"
+ dat += "
Body "
+ dat += "(®)"
+ dat += " "
+ dat += "Species: [species] "
+ if(species == "Vox")//oldvox code, sucks I know
+ dat += "N2 Tank: [speciesprefs ? "Large N2 Tank" : "Specialized N2 Tank"] "
+ dat += "Secondary Language: [language] "
+ dat += "Blood Type: [b_type] "
+ if(species == "Human")
+ dat += "Skin Tone: [-s_tone + 35]/220 "
- // dat += "Skin pattern: Adjust "
- dat += " Handicaps "
- dat += "\t\[Set Disabilities\] "
- dat += "Limbs: Adjust "
- if(species != "Slime People" && species != "Machine")
- dat += "Internal Organs: Adjust "
+ // dat += "Skin pattern: Adjust "
+ dat += " Handicaps "
+ dat += "\t\[Set Disabilities\] "
+ dat += "Limbs: Adjust "
+ if(species != "Slime People" && species != "Machine")
+ dat += "Internal Organs: Adjust "
- //display limbs below
- var/ind = 0
- for(var/name in organ_data)
- //world << "[ind] \ [organ_data.len]"
- var/status = organ_data[name]
- var/organ_name = null
- switch(name)
- if("l_arm")
- organ_name = "left arm"
- if("r_arm")
- organ_name = "right arm"
- if("l_leg")
- organ_name = "left leg"
- if("r_leg")
- organ_name = "right leg"
- if("l_foot")
- organ_name = "left foot"
- if("r_foot")
- organ_name = "right foot"
- if("l_hand")
- organ_name = "left hand"
- if("r_hand")
- organ_name = "right hand"
- if("heart")
- organ_name = "heart"
- if("eyes")
- organ_name = "eyes"
+ //display limbs below
+ var/ind = 0
+ for(var/name in organ_data)
+ //world << "[ind] \ [organ_data.len]"
+ var/status = organ_data[name]
+ var/organ_name = null
+ switch(name)
+ if("l_arm")
+ organ_name = "left arm"
+ if("r_arm")
+ organ_name = "right arm"
+ if("l_leg")
+ organ_name = "left leg"
+ if("r_leg")
+ organ_name = "right leg"
+ if("l_foot")
+ organ_name = "left foot"
+ if("r_foot")
+ organ_name = "right foot"
+ if("l_hand")
+ organ_name = "left hand"
+ if("r_hand")
+ organ_name = "right hand"
+ if("heart")
+ organ_name = "heart"
+ if("eyes")
+ organ_name = "eyes"
- if(status == "cyborg")
- ++ind
- if(ind > 1)
- dat += ", "
- var/datum/robolimb/R
- if(rlimb_data[name] && all_robolimbs[rlimb_data[name]])
- R = all_robolimbs[rlimb_data[name]]
- else
- R = basic_robolimb
- dat += "\t[R.company] [organ_name] prothesis"
-
-
- else if(status == "amputated")
- ++ind
- if(ind > 1)
- dat += ", "
- dat += "\tAmputated [organ_name]"
-
- else if(status == "mechanical")
- ++ind
- if(ind > 1)
- dat += ", "
- dat += "\tMechanical [organ_name]"
-
- else if(status == "assisted")
- ++ind
- if(ind > 1)
- dat += ", "
- switch(organ_name)
- if("heart")
- dat += "\tPacemaker-assisted [organ_name]"
- if("voicebox") //on adding voiceboxes for speaking skrell/similar replacements
- dat += "\tSurgically altered [organ_name]"
- if("eyes")
- dat += "\tRetinal overlayed [organ_name]"
- else
- dat += "\tMechanically assisted [organ_name]"
- if(!ind)
- dat += "\[...\]
"
- else
- dat += "
"
- dat += "Underwear: [underwear] "
- dat += "Undershirt: [undershirt] "
- dat += "Socks: [socks] "
- dat += "Backpack Type: [backbaglist[backbag]] "
- dat += "Nanotrasen Relation: [nanotrasen_relation] "
- dat += " | Preview
  | "
- dat += " | "
-
- if(jobban_isbanned(user, "Records"))
- dat += "You are banned from using character records. "
- else
- dat += "Character Records "
- dat += "Set Flavor Text "
- if(lentext(flavor_text) <= 40)
- if(!lentext(flavor_text))
- dat += "\[...\]"
+ if(status == "cyborg")
+ ++ind
+ if(ind > 1)
+ dat += ", "
+ var/datum/robolimb/R
+ if(rlimb_data[name] && all_robolimbs[rlimb_data[name]])
+ R = all_robolimbs[rlimb_data[name]]
else
- dat += "[flavor_text]"
- else
- dat += "[TextPreview(flavor_text)]... "
- dat += " "
+ R = basic_robolimb
+ dat += "\t[R.company] [organ_name] prothesis"
- var/hairname = "Hair"
- if(species == "Machine")
- hairname = "Frame Color"
- dat += " [hairname] "
- dat += "Change Color "
- dat += " Style: [h_style] "
- dat += " Facial "
- dat += "Change Color "
- dat += " Style: [f_style] "
+ else if(status == "amputated")
+ ++ind
+ if(ind > 1)
+ dat += ", "
+ dat += "\tAmputated [organ_name]"
- dat += " Eyes "
- dat += "Change Color "
+ else if(status == "mechanical")
+ ++ind
+ if(ind > 1)
+ dat += ", "
+ dat += "\tMechanical [organ_name]"
- if((species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Vulpkanin", "Machine")) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user)) //admins can always fuck with this, because they are admins
- dat += " Body Color "
- dat += "Change Color "
-
- if(body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
- dat += " Body Accessory "
- dat += "Accessory: [body_accessory ? "[body_accessory]" : "None"] "
-
- dat += " |
"
-
- if (1) // General Preferences
- dat += " "
+ dat += "\tMechanically assisted [organ_name]"
+ if(!ind)
+ dat += "\[...\]
"
+ else
+ dat += "
"
+ dat += "Underwear: [underwear] "
+ dat += "Undershirt: [undershirt] "
+ dat += "Socks: [socks] "
+ dat += "Backpack Type: [backbaglist[backbag]] "
+ dat += "Nanotrasen Relation: [nanotrasen_relation] "
+ dat += " | Preview
  | "
+ dat += " | "
- if(!IsGuestKey(user.key))
- dat += "Undo - "
- dat += "Save Setup - "
+ if(jobban_isbanned(user, "Records"))
+ dat += "You are banned from using character records. "
+ else
+ dat += "Character Records "
+ dat += "Set Flavor Text "
+ if(lentext(flavor_text) <= 40)
+ if(!lentext(flavor_text))
+ dat += "\[...\]"
+ else
+ dat += "[flavor_text]"
+ else
+ dat += "[TextPreview(flavor_text)]... "
+ dat += " "
- dat += "Reset Setup"
- dat += ""
+ var/hairname = "Hair"
+ if(species == "Machine")
+ hairname = "Frame Color"
+ dat += " [hairname] "
+ dat += "Change Color "
+ dat += " Style: [h_style] "
+
+ dat += " Facial "
+ dat += "Change Color "
+ dat += " Style: [f_style] "
+
+ dat += " Eyes "
+ dat += "Change Color "
+
+ if((species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Vulpkanin", "Machine")) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user)) //admins can always fuck with this, because they are admins
+ dat += " Body Color "
+ dat += "Change Color "
+
+ if(body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
+ dat += " Body Accessory "
+ dat += "Accessory: [body_accessory ? "[body_accessory]" : "None"] "
+
+ dat += " |
"
+
+ if (1) // General Preferences
+ dat += "
"
+
+ if(!IsGuestKey(user.key))
+ dat += "Undo - "
+ dat += "Save Setup - "
+
+ dat += "Reset Setup"
+ dat += ""
// user << browse(dat, "window=preferences;size=560x580")
- var/datum/browser/popup = new(user, "preferences", "Character Setup
", 640, 810)
- popup.set_content(dat)
- popup.open(0)
+ var/datum/browser/popup = new(user, "preferences", "Character Setup
", 640, 810)
+ popup.set_content(dat)
+ popup.open(0)
- proc/SetChoices(mob/user, limit = 12, list/splitJobs = list("Civilian","Research Director","AI","Bartender"), width = 760, height = 790)
- if(!job_master)
- return
+/datum/preferences/proc/SetChoices(mob/user, limit = 12, list/splitJobs = list("Civilian","Research Director","AI","Bartender"), width = 760, height = 790)
+ if(!job_master)
+ return
- //limit - The amount of jobs allowed per column. Defaults to 17 to make it look nice.
- //splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice.
- //width - Screen' width. Defaults to 550 to make it look nice.
- //height - Screen's height. Defaults to 500 to make it look nice.
+ //limit - The amount of jobs allowed per column. Defaults to 17 to make it look nice.
+ //splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice.
+ //width - Screen' width. Defaults to 550 to make it look nice.
+ //height - Screen's height. Defaults to 500 to make it look nice.
- var/HTML = ""
- HTML += ""
- HTML += "Choose occupation chances
Unavailable occupations are crossed out.
"
- HTML += "\[Done\]
" // Easier to press up here.
- HTML += "Left-click to raise an occupation preference, right-click to lower it.
"
- HTML += ""
- HTML += "" // Table within a table for alignment, also allows you to easily add more colomns.
- HTML += ""
- var/index = -1
+ var/HTML = ""
+ HTML += ""
+ HTML += "Choose occupation chances Unavailable occupations are crossed out.
"
+ HTML += "\[Done\] " // Easier to press up here.
+ HTML += "Left-click to raise an occupation preference, right-click to lower it.
"
+ HTML += ""
+ HTML += "" // Table within a table for alignment, also allows you to easily add more colomns.
+ HTML += ""
+ var/index = -1
- //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
- var/datum/job/lastJob
- if (!job_master) return
- for(var/datum/job/job in job_master.occupations)
+ //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
+ var/datum/job/lastJob
+ if (!job_master) return
+ for(var/datum/job/job in job_master.occupations)
- index += 1
- if((index >= limit) || (job.title in splitJobs))
- if((index < limit) && (lastJob != null))
- //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with
- //the last job's selection color. Creating a rather nice effect.
- for(var/i = 0, i < (limit - index), i += 1)
- HTML += "|   |   | "
- HTML += " | "
- index = 0
+ index += 1
+ if((index >= limit) || (job.title in splitJobs))
+ if((index < limit) && (lastJob != null))
+ //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with
+ //the last job's selection color. Creating a rather nice effect.
+ for(var/i = 0, i < (limit - index), i += 1)
+ HTML += "|   |   | "
+ HTML += " | "
+ index = 0
- HTML += "| "
- var/rank = job.title
- lastJob = job
- if(!is_job_whitelisted(user, rank))
- HTML += "[rank] | \[KARMA] | "
- continue
- if(jobban_isbanned(user, rank))
- HTML += "[rank] \[BANNED] | "
- continue
- if(!job.player_old_enough(user.client))
- var/available_in_days = job.available_in_days(user.client)
- HTML += "[rank] \[IN [(available_in_days)] DAYS] | "
- continue
- if((job_support_low & CIVILIAN) && (rank != "Civilian"))
- HTML += "[rank] | "
- continue
- if((rank in command_positions) || (rank == "AI"))//Bold head jobs
- HTML += "[rank]"
- else
- HTML += "[rank]"
+ HTML += "| "
+ var/rank = job.title
+ lastJob = job
+ if(!is_job_whitelisted(user, rank))
+ HTML += "[rank] | \[KARMA] | "
+ continue
+ if(jobban_isbanned(user, rank))
+ HTML += "[rank] \[BANNED] | "
+ continue
+ if(!job.player_old_enough(user.client))
+ var/available_in_days = job.available_in_days(user.client)
+ HTML += "[rank] \[IN [(available_in_days)] DAYS] | "
+ continue
+ if((job_support_low & CIVILIAN) && (rank != "Civilian"))
+ HTML += "[rank] | "
+ continue
+ if((rank in command_positions) || (rank == "AI"))//Bold head jobs
+ HTML += "[rank]"
+ else
+ HTML += "[rank]"
- HTML += ""
+ HTML += " | "
- var/prefLevelLabel = "ERROR"
- var/prefLevelColor = "pink"
- var/prefUpperLevel = -1 // level to assign on left click
- var/prefLowerLevel = -1 // level to assign on right click
+ var/prefLevelLabel = "ERROR"
+ var/prefLevelColor = "pink"
+ var/prefUpperLevel = -1 // level to assign on left click
+ var/prefLowerLevel = -1 // level to assign on right click
- if(GetJobDepartment(job, 1) & job.flag)
- prefLevelLabel = "High"
- prefLevelColor = "slateblue"
- prefUpperLevel = 4
- prefLowerLevel = 2
- else if(GetJobDepartment(job, 2) & job.flag)
- prefLevelLabel = "Medium"
- prefLevelColor = "green"
- prefUpperLevel = 1
- prefLowerLevel = 3
- else if(GetJobDepartment(job, 3) & job.flag)
- prefLevelLabel = "Low"
- prefLevelColor = "orange"
- prefUpperLevel = 2
- prefLowerLevel = 4
- else
- prefLevelLabel = "NEVER"
- prefLevelColor = "red"
- prefUpperLevel = 3
- prefLowerLevel = 1
+ if(GetJobDepartment(job, 1) & job.flag)
+ prefLevelLabel = "High"
+ prefLevelColor = "slateblue"
+ prefUpperLevel = 4
+ prefLowerLevel = 2
+ else if(GetJobDepartment(job, 2) & job.flag)
+ prefLevelLabel = "Medium"
+ prefLevelColor = "green"
+ prefUpperLevel = 1
+ prefLowerLevel = 3
+ else if(GetJobDepartment(job, 3) & job.flag)
+ prefLevelLabel = "Low"
+ prefLevelColor = "orange"
+ prefUpperLevel = 2
+ prefLowerLevel = 4
+ else
+ prefLevelLabel = "NEVER"
+ prefLevelColor = "red"
+ prefUpperLevel = 3
+ prefLowerLevel = 1
- HTML += ""
+ HTML += ""
// HTML += ""
- if(rank == "Civilian")//Civilian is special
- if(job_support_low & CIVILIAN)
- HTML += " \[Yes]"
- else
- HTML += " \[No]"
- if(job.alt_titles)
- HTML += " \[[GetPlayerAltTitle(job)]\] | "
- HTML += ""
- continue
-/*
- if(GetJobDepartment(job, 1) & job.flag)
- HTML += " \[High]"
- else if(GetJobDepartment(job, 2) & job.flag)
- HTML += " \[Medium]"
- else if(GetJobDepartment(job, 3) & job.flag)
- HTML += " \[Low]"
+ if(rank == "Civilian")//Civilian is special
+ if(job_support_low & CIVILIAN)
+ HTML += " \[Yes]"
else
- HTML += " \[NEVER]"
- */
- HTML += "[prefLevelLabel]"
-
+ HTML += " \[No]"
if(job.alt_titles)
HTML += " \[[GetPlayerAltTitle(job)]\]"
-
-
HTML += ""
+ continue
+/*
+ if(GetJobDepartment(job, 1) & job.flag)
+ HTML += " \[High]"
+ else if(GetJobDepartment(job, 2) & job.flag)
+ HTML += " \[Medium]"
+ else if(GetJobDepartment(job, 3) & job.flag)
+ HTML += " \[Low]"
+ else
+ HTML += " \[NEVER]"
+ */
+ HTML += "[prefLevelLabel]"
- for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even
- HTML += "|   |   | "
+ if(job.alt_titles)
+ HTML += " \[[GetPlayerAltTitle(job)]\]"
- HTML += " "
- HTML += " | "
+ HTML += ""
- switch(alternate_option)
- if(GET_RANDOM_JOB)
- HTML += " Get random job if preferences unavailable "
- if(BE_CIVILIAN)
- HTML += " Be a civilian if preferences unavailable "
- if(RETURN_TO_LOBBY)
- HTML += " Return to lobby if preferences unavailable "
+ for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even
+ HTML += "|   |   | "
- HTML += "\[Reset\]"
- HTML += ""
+ HTML += " "
- user << browse(null, "window=preferences")
+ HTML += " |
"
+
+ switch(alternate_option)
+ if(GET_RANDOM_JOB)
+ HTML += "
Get random job if preferences unavailable
"
+ if(BE_CIVILIAN)
+ HTML += "
Be a civilian if preferences unavailable
"
+ if(RETURN_TO_LOBBY)
+ HTML += "
Return to lobby if preferences unavailable
"
+
+ HTML += "\[Reset\]"
+ HTML += ""
+
+ user << browse(null, "window=preferences")
// user << browse(HTML, "window=mob_occupation;size=[width]x[height]")
- var/datum/browser/popup = new(user, "mob_occupation", "Occupation Preferences
", width, height)
- popup.set_window_options("can_close=0")
- popup.set_content(HTML)
- popup.open(0)
+ var/datum/browser/popup = new(user, "mob_occupation", "Occupation Preferences
", width, height)
+ popup.set_window_options("can_close=0")
+ popup.set_content(HTML)
+ popup.open(0)
+ return
+
+/datum/preferences/proc/SetJobPreferenceLevel(var/datum/job/job, var/level)
+ if (!job)
+ return 0
+
+ if (level == 1) // to high
+ // remove any other job(s) set to high
+ job_support_med |= job_support_high
+ job_engsec_med |= job_engsec_high
+ job_medsci_med |= job_medsci_high
+ job_karma_med |= job_karma_high
+ job_support_high = 0
+ job_engsec_high = 0
+ job_medsci_high = 0
+ job_karma_high = 0
+
+ if (job.department_flag == SUPPORT)
+ job_support_low &= ~job.flag
+ job_support_med &= ~job.flag
+ job_support_high &= ~job.flag
+
+ switch(level)
+ if (1)
+ job_support_high |= job.flag
+ if (2)
+ job_support_med |= job.flag
+ if (3)
+ job_support_low |= job.flag
+
+ return 1
+ else if (job.department_flag == ENGSEC)
+ job_engsec_low &= ~job.flag
+ job_engsec_med &= ~job.flag
+ job_engsec_high &= ~job.flag
+
+ switch(level)
+ if (1)
+ job_engsec_high |= job.flag
+ if (2)
+ job_engsec_med |= job.flag
+ if (3)
+ job_engsec_low |= job.flag
+
+ return 1
+ else if (job.department_flag == MEDSCI)
+ job_medsci_low &= ~job.flag
+ job_medsci_med &= ~job.flag
+ job_medsci_high &= ~job.flag
+
+ switch(level)
+ if (1)
+ job_medsci_high |= job.flag
+ if (2)
+ job_medsci_med |= job.flag
+ if (3)
+ job_medsci_low |= job.flag
+
+ return 1
+ else if (job.department_flag == KARMA)
+ job_karma_low &= ~job.flag
+ job_karma_med &= ~job.flag
+ job_karma_high &= ~job.flag
+
+ switch(level)
+ if (1)
+ job_karma_high |= job.flag
+ if (2)
+ job_karma_med |= job.flag
+ if (3)
+ job_karma_low |= job.flag
+
+ return 1
+
+ return 0
+
+/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl)
+ var/datum/job/job = job_master.GetJob(role)
+
+ if(!job)
+ user << browse(null, "window=mob_occupation")
+ ShowChoices(user)
return
- proc/SetJobPreferenceLevel(var/datum/job/job, var/level)
- if (!job)
- return 0
+ if (!isnum(desiredLvl))
+ user << "\red UpdateJobPreference - desired level was not a number. Please notify coders!"
+ ShowChoices(user)
+ return
- if (level == 1) // to high
- // remove any other job(s) set to high
+ if(role == "Civilian")
+ if(job_support_low & job.flag)
+ job_support_low &= ~job.flag
+ else
+ job_support_low |= job.flag
+ SetChoices(user)
+ return 1
+
+ SetJobPreferenceLevel(job, desiredLvl)
+ SetChoices(user)
+
+ return 1
+
+/datum/preferences/proc/ShowDisabilityState(mob/user,flag,label)
+ if(flag==DISABILITY_FLAG_FAT && species!=("Human" || "Tajaran" || "Grey"))
+ return "[species] cannot be fat."
+ return "[label]: [disabilities & flag ? "Yes" : "No"]"
+
+/datum/preferences/proc/SetDisabilities(mob/user)
+ var/HTML = ""
+
+ // AUTOFIXED BY fix_string_idiocy.py
+ // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:474: HTML += ""
+ HTML += {"
+ Choose disabilities"}
+ // END AUTOFIX
+ HTML += ShowDisabilityState(user,DISABILITY_FLAG_NEARSIGHTED,"Needs Glasses")
+ HTML += ShowDisabilityState(user,DISABILITY_FLAG_FAT,"Obese")
+ HTML += ShowDisabilityState(user,DISABILITY_FLAG_EPILEPTIC,"Seizures")
+ HTML += ShowDisabilityState(user,DISABILITY_FLAG_DEAF,"Deaf")
+ HTML += ShowDisabilityState(user,DISABILITY_FLAG_BLIND,"Blind")
+ HTML += ShowDisabilityState(user,DISABILITY_FLAG_MUTE,"Mute")
+
+
+ // AUTOFIXED BY fix_string_idiocy.py
+ // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:481: HTML += "
"
+ HTML += {"
+ \[Done\]
+ \[Reset\]
+ "}
+ // END AUTOFIX
+ user << browse(null, "window=preferences")
+ user << browse(HTML, "window=disabil;size=350x300")
+ return
+
+/datum/preferences/proc/SetRecords(mob/user)
+ var/HTML = ""
+ HTML += ""
+ HTML += "Set Character Records
"
+
+ HTML += "Medical Records
"
+
+ if(lentext(med_record) <= 40)
+ HTML += "[med_record]"
+ else
+ HTML += "[copytext(med_record, 1, 37)]..."
+
+ HTML += "
Employment Records
"
+
+ if(lentext(gen_record) <= 40)
+ HTML += "[gen_record]"
+ else
+ HTML += "[copytext(gen_record, 1, 37)]..."
+
+ HTML += "
Security Records
"
+
+ if(lentext(sec_record) <= 40)
+ HTML += "[sec_record]
"
+ else
+ HTML += "[copytext(sec_record, 1, 37)]...
"
+
+ HTML += "
"
+ HTML += "\[Done\]"
+ HTML += ""
+
+ user << browse(null, "window=preferences")
+ user << browse(HTML, "window=records;size=350x300")
+ return
+
+/datum/preferences/proc/GetPlayerAltTitle(datum/job/job)
+ return player_alt_titles.Find(job.title) > 0 \
+ ? player_alt_titles[job.title] \
+ : job.title
+
+/datum/preferences/proc/SetPlayerAltTitle(datum/job/job, new_title)
+ // remove existing entry
+ if(player_alt_titles.Find(job.title))
+ player_alt_titles -= job.title
+ // add one if it's not default
+ if(job.title != new_title)
+ player_alt_titles[job.title] = new_title
+
+/datum/preferences/proc/SetJob(mob/user, role)
+ var/datum/job/job = job_master.GetJob(role)
+ if(!job)
+ user << browse(null, "window=mob_occupation")
+ ShowChoices(user)
+ return
+
+ if(role == "Civilian")
+ if(job_support_low & job.flag)
+ job_support_low &= ~job.flag
+ else
+ job_support_low |= job.flag
+ SetChoices(user)
+ return 1
+
+ if(GetJobDepartment(job, 1) & job.flag)
+ SetJobDepartment(job, 1)
+ else if(GetJobDepartment(job, 2) & job.flag)
+ SetJobDepartment(job, 2)
+ else if(GetJobDepartment(job, 3) & job.flag)
+ SetJobDepartment(job, 3)
+ else//job = Never
+ SetJobDepartment(job, 4)
+
+ SetChoices(user)
+ return 1
+
+/datum/preferences/proc/ResetJobs()
+ job_support_high = 0
+ job_support_med = 0
+ job_support_low = 0
+
+ job_medsci_high = 0
+ job_medsci_med = 0
+ job_medsci_low = 0
+
+ job_engsec_high = 0
+ job_engsec_med = 0
+ job_engsec_low = 0
+
+ job_karma_high = 0
+ job_karma_med = 0
+ job_karma_low = 0
+
+
+/datum/preferences/proc/GetJobDepartment(var/datum/job/job, var/level)
+ if(!job || !level) return 0
+ switch(job.department_flag)
+ if(SUPPORT)
+ switch(level)
+ if(1)
+ return job_support_high
+ if(2)
+ return job_support_med
+ if(3)
+ return job_support_low
+ if(MEDSCI)
+ switch(level)
+ if(1)
+ return job_medsci_high
+ if(2)
+ return job_medsci_med
+ if(3)
+ return job_medsci_low
+ if(ENGSEC)
+ switch(level)
+ if(1)
+ return job_engsec_high
+ if(2)
+ return job_engsec_med
+ if(3)
+ return job_engsec_low
+ if(KARMA)
+ switch(level)
+ if(1)
+ return job_karma_high
+ if(2)
+ return job_karma_med
+ if(3)
+ return job_karma_low
+ return 0
+
+/datum/preferences/proc/SetJobDepartment(var/datum/job/job, var/level)
+ if(!job || !level) return 0
+ switch(level)
+ if(1)//Only one of these should ever be active at once so clear them all here
+ job_support_high = 0
+ job_medsci_high = 0
+ job_engsec_high = 0
+ job_karma_high = 0
+ return 1
+ if(2)//Set current highs to med, then reset them
job_support_med |= job_support_high
- job_engsec_med |= job_engsec_high
job_medsci_med |= job_medsci_high
+ job_engsec_med |= job_engsec_high
job_karma_med |= job_karma_high
job_support_high = 0
- job_engsec_high = 0
job_medsci_high = 0
+ job_engsec_high = 0
job_karma_high = 0
- if (job.department_flag == SUPPORT)
- job_support_low &= ~job.flag
- job_support_med &= ~job.flag
- job_support_high &= ~job.flag
-
+ switch(job.department_flag)
+ if(SUPPORT)
switch(level)
- if (1)
- job_support_high |= job.flag
- if (2)
+ if(2)
+ job_support_high = job.flag
+ job_support_med &= ~job.flag
+ if(3)
job_support_med |= job.flag
- if (3)
+ job_support_low &= ~job.flag
+ else
job_support_low |= job.flag
-
- return 1
- else if (job.department_flag == ENGSEC)
- job_engsec_low &= ~job.flag
- job_engsec_med &= ~job.flag
- job_engsec_high &= ~job.flag
-
+ if(MEDSCI)
switch(level)
- if (1)
- job_engsec_high |= job.flag
- if (2)
- job_engsec_med |= job.flag
- if (3)
- job_engsec_low |= job.flag
-
- return 1
- else if (job.department_flag == MEDSCI)
- job_medsci_low &= ~job.flag
- job_medsci_med &= ~job.flag
- job_medsci_high &= ~job.flag
-
- switch(level)
- if (1)
- job_medsci_high |= job.flag
- if (2)
+ if(2)
+ job_medsci_high = job.flag
+ job_medsci_med &= ~job.flag
+ if(3)
job_medsci_med |= job.flag
- if (3)
+ job_medsci_low &= ~job.flag
+ else
job_medsci_low |= job.flag
-
- return 1
- else if (job.department_flag == KARMA)
- job_karma_low &= ~job.flag
- job_karma_med &= ~job.flag
- job_karma_high &= ~job.flag
-
+ if(ENGSEC)
switch(level)
- if (1)
- job_karma_high |= job.flag
- if (2)
+ if(2)
+ job_engsec_high = job.flag
+ job_engsec_med &= ~job.flag
+ if(3)
+ job_engsec_med |= job.flag
+ job_engsec_low &= ~job.flag
+ else
+ job_engsec_low |= job.flag
+ if(KARMA)
+ switch(level)
+ if(2)
+ job_karma_high = job.flag
+ job_karma_med &= ~job.flag
+ if(3)
job_karma_med |= job.flag
- if (3)
+ job_karma_low &= ~job.flag
+ else
job_karma_low |= job.flag
+ return 1
- return 1
+/datum/preferences/proc/process_link(mob/user, list/href_list)
+ if(!user) return
- return 0
-
- proc/UpdateJobPreference(mob/user, role, desiredLvl)
- var/datum/job/job = job_master.GetJob(role)
-
- if(!job)
- user << browse(null, "window=mob_occupation")
- ShowChoices(user)
- return
-
- if (!isnum(desiredLvl))
- user << "\red UpdateJobPreference - desired level was not a number. Please notify coders!"
- ShowChoices(user)
- return
-
- if(role == "Civilian")
- if(job_support_low & job.flag)
- job_support_low &= ~job.flag
- else
- job_support_low |= job.flag
- SetChoices(user)
- return 1
-
- SetJobPreferenceLevel(job, desiredLvl)
- SetChoices(user)
-
- return 1
-
- proc/ShowDisabilityState(mob/user,flag,label)
- if(flag==DISABILITY_FLAG_FAT && species!=("Human" || "Tajaran" || "Grey"))
- return "[species] cannot be fat."
- return "[label]: [disabilities & flag ? "Yes" : "No"]"
-
- proc/SetDisabilities(mob/user)
- var/HTML = ""
-
- // AUTOFIXED BY fix_string_idiocy.py
- // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:474: HTML += ""
- HTML += {"
- Choose disabilities"}
- // END AUTOFIX
- HTML += ShowDisabilityState(user,DISABILITY_FLAG_NEARSIGHTED,"Needs Glasses")
- HTML += ShowDisabilityState(user,DISABILITY_FLAG_FAT,"Obese")
- HTML += ShowDisabilityState(user,DISABILITY_FLAG_EPILEPTIC,"Seizures")
- HTML += ShowDisabilityState(user,DISABILITY_FLAG_DEAF,"Deaf")
- HTML += ShowDisabilityState(user,DISABILITY_FLAG_BLIND,"Blind")
- HTML += ShowDisabilityState(user,DISABILITY_FLAG_MUTE,"Mute")
-
-
- // AUTOFIXED BY fix_string_idiocy.py
- // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:481: HTML += "
"
- HTML += {"
- \[Done\]
- \[Reset\]
- "}
- // END AUTOFIX
- user << browse(null, "window=preferences")
- user << browse(HTML, "window=disabil;size=350x300")
- return
-
- proc/SetRecords(mob/user)
- var/HTML = ""
- HTML += ""
- HTML += "Set Character Records
"
-
- HTML += "Medical Records
"
-
- if(lentext(med_record) <= 40)
- HTML += "[med_record]"
- else
- HTML += "[copytext(med_record, 1, 37)]..."
-
- HTML += "
Employment Records
"
-
- if(lentext(gen_record) <= 40)
- HTML += "[gen_record]"
- else
- HTML += "[copytext(gen_record, 1, 37)]..."
-
- HTML += "
Security Records
"
-
- if(lentext(sec_record) <= 40)
- HTML += "[sec_record]
"
- else
- HTML += "[copytext(sec_record, 1, 37)]...
"
-
- HTML += "
"
- HTML += "\[Done\]"
- HTML += ""
-
- user << browse(null, "window=preferences")
- user << browse(HTML, "window=records;size=350x300")
- return
-
- proc/GetPlayerAltTitle(datum/job/job)
- return player_alt_titles.Find(job.title) > 0 \
- ? player_alt_titles[job.title] \
- : job.title
-
- proc/SetPlayerAltTitle(datum/job/job, new_title)
- // remove existing entry
- if(player_alt_titles.Find(job.title))
- player_alt_titles -= job.title
- // add one if it's not default
- if(job.title != new_title)
- player_alt_titles[job.title] = new_title
-
- proc/SetJob(mob/user, role)
- var/datum/job/job = job_master.GetJob(role)
- if(!job)
- user << browse(null, "window=mob_occupation")
- ShowChoices(user)
- return
-
- if(role == "Civilian")
- if(job_support_low & job.flag)
- job_support_low &= ~job.flag
- else
- job_support_low |= job.flag
- SetChoices(user)
- return 1
-
- if(GetJobDepartment(job, 1) & job.flag)
- SetJobDepartment(job, 1)
- else if(GetJobDepartment(job, 2) & job.flag)
- SetJobDepartment(job, 2)
- else if(GetJobDepartment(job, 3) & job.flag)
- SetJobDepartment(job, 3)
- else//job = Never
- SetJobDepartment(job, 4)
-
- SetChoices(user)
- return 1
-
- proc/ResetJobs()
- job_support_high = 0
- job_support_med = 0
- job_support_low = 0
-
- job_medsci_high = 0
- job_medsci_med = 0
- job_medsci_low = 0
-
- job_engsec_high = 0
- job_engsec_med = 0
- job_engsec_low = 0
-
- job_karma_high = 0
- job_karma_med = 0
- job_karma_low = 0
-
-
- proc/GetJobDepartment(var/datum/job/job, var/level)
- if(!job || !level) return 0
- switch(job.department_flag)
- if(SUPPORT)
- switch(level)
- if(1)
- return job_support_high
- if(2)
- return job_support_med
- if(3)
- return job_support_low
- if(MEDSCI)
- switch(level)
- if(1)
- return job_medsci_high
- if(2)
- return job_medsci_med
- if(3)
- return job_medsci_low
- if(ENGSEC)
- switch(level)
- if(1)
- return job_engsec_high
- if(2)
- return job_engsec_med
- if(3)
- return job_engsec_low
- if(KARMA)
- switch(level)
- if(1)
- return job_karma_high
- if(2)
- return job_karma_med
- if(3)
- return job_karma_low
- return 0
-
- proc/SetJobDepartment(var/datum/job/job, var/level)
- if(!job || !level) return 0
- switch(level)
- if(1)//Only one of these should ever be active at once so clear them all here
- job_support_high = 0
- job_medsci_high = 0
- job_engsec_high = 0
- job_karma_high = 0
- return 1
- if(2)//Set current highs to med, then reset them
- job_support_med |= job_support_high
- job_medsci_med |= job_medsci_high
- job_engsec_med |= job_engsec_high
- job_karma_med |= job_karma_high
- job_support_high = 0
- job_medsci_high = 0
- job_engsec_high = 0
- job_karma_high = 0
-
- switch(job.department_flag)
- if(SUPPORT)
- switch(level)
- if(2)
- job_support_high = job.flag
- job_support_med &= ~job.flag
- if(3)
- job_support_med |= job.flag
- job_support_low &= ~job.flag
- else
- job_support_low |= job.flag
- if(MEDSCI)
- switch(level)
- if(2)
- job_medsci_high = job.flag
- job_medsci_med &= ~job.flag
- if(3)
- job_medsci_med |= job.flag
- job_medsci_low &= ~job.flag
- else
- job_medsci_low |= job.flag
- if(ENGSEC)
- switch(level)
- if(2)
- job_engsec_high = job.flag
- job_engsec_med &= ~job.flag
- if(3)
- job_engsec_med |= job.flag
- job_engsec_low &= ~job.flag
- else
- job_engsec_low |= job.flag
- if(KARMA)
- switch(level)
- if(2)
- job_karma_high = job.flag
- job_karma_med &= ~job.flag
- if(3)
- job_karma_med |= job.flag
- job_karma_low &= ~job.flag
- else
- job_karma_low |= job.flag
- return 1
-
- proc/process_link(mob/user, list/href_list)
- if(!user) return
-
- if(href_list["preference"] == "job")
- switch(href_list["task"])
- if("close")
- user << browse(null, "window=mob_occupation")
- ShowChoices(user)
- if("reset")
- ResetJobs()
- SetChoices(user)
- if("random")
- if(alternate_option == GET_RANDOM_JOB || alternate_option == BE_CIVILIAN)
- alternate_option += 1
- else if(alternate_option == RETURN_TO_LOBBY)
- alternate_option = 0
- else
- return 0
- SetChoices(user)
- if ("alt_title")
- var/datum/job/job = locate(href_list["job"])
- if (job)
- var/choices = list(job.title) + job.alt_titles
- var/choice = input("Pick a title for [job.title].", "Character Generation", GetPlayerAltTitle(job)) as anything in choices | null
- if(choice)
- SetPlayerAltTitle(job, choice)
- SetChoices(user)
- if("input")
- SetJob(user, href_list["text"])
- if("setJobLevel")
- UpdateJobPreference(user, href_list["text"], text2num(href_list["level"]))
+ if(href_list["preference"] == "job")
+ switch(href_list["task"])
+ if("close")
+ user << browse(null, "window=mob_occupation")
+ ShowChoices(user)
+ if("reset")
+ ResetJobs()
+ SetChoices(user)
+ if("random")
+ if(alternate_option == GET_RANDOM_JOB || alternate_option == BE_CIVILIAN)
+ alternate_option += 1
+ else if(alternate_option == RETURN_TO_LOBBY)
+ alternate_option = 0
else
- SetChoices(user)
- return 1
- else if(href_list["preference"] == "disabilities")
-
- switch(href_list["task"])
- if("close")
- user << browse(null, "window=disabil")
- ShowChoices(user)
- if("reset")
- disabilities=0
- SetDisabilities(user)
- if("input")
- var/dflag=text2num(href_list["disability"])
- if(dflag >= 0)
- if(!(dflag==DISABILITY_FLAG_FAT && species!=("Human" || "Tajaran" || "Grey")))
- disabilities ^= text2num(href_list["disability"]) //MAGIC
- SetDisabilities(user)
- else
- SetDisabilities(user)
- return 1
-
- else if(href_list["preference"] == "records")
- if(text2num(href_list["record"]) >= 1)
- SetRecords(user)
- return
+ return 0
+ SetChoices(user)
+ if ("alt_title")
+ var/datum/job/job = locate(href_list["job"])
+ if (job)
+ var/choices = list(job.title) + job.alt_titles
+ var/choice = input("Pick a title for [job.title].", "Character Generation", GetPlayerAltTitle(job)) as anything in choices | null
+ if(choice)
+ SetPlayerAltTitle(job, choice)
+ SetChoices(user)
+ if("input")
+ SetJob(user, href_list["text"])
+ if("setJobLevel")
+ UpdateJobPreference(user, href_list["text"], text2num(href_list["level"]))
else
- user << browse(null, "window=records")
- if(href_list["task"] == "med_record")
- var/medmsg = input(usr,"Set your medical notes here.","Medical Records",html_decode(med_record)) as message
-
- if(medmsg != null)
- medmsg = copytext(medmsg, 1, MAX_PAPER_MESSAGE_LEN)
- medmsg = html_encode(medmsg)
-
- med_record = medmsg
- SetRecords(user)
-
- if(href_list["task"] == "sec_record")
- var/secmsg = input(usr,"Set your security notes here.","Security Records",html_decode(sec_record)) as message
-
- if(secmsg != null)
- secmsg = copytext(secmsg, 1, MAX_PAPER_MESSAGE_LEN)
- secmsg = html_encode(secmsg)
-
- sec_record = secmsg
- SetRecords(user)
- if(href_list["task"] == "gen_record")
- var/genmsg = input(usr,"Set your employment notes here.","Employment Records",html_decode(gen_record)) as message
-
- if(genmsg != null)
- genmsg = copytext(genmsg, 1, MAX_PAPER_MESSAGE_LEN)
- genmsg = html_encode(genmsg)
-
- gen_record = genmsg
- SetRecords(user)
+ SetChoices(user)
+ return 1
+ else if(href_list["preference"] == "disabilities")
switch(href_list["task"])
- if("random")
- switch(href_list["preference"])
- if("name")
- real_name = random_name(gender,species)
- if("age")
- age = rand(AGE_MIN, AGE_MAX)
- if("hair")
- if(species == "Human" || species == "Unathi" || species == "Tajaran" || species == "Skrell" || species == "Machine" || species == "Wryn" || species == "Vulpkanin")
- r_hair = rand(0,255)
- g_hair = rand(0,255)
- b_hair = rand(0,255)
- if("h_style")
- h_style = random_hair_style(gender, species)
- if("facial")
- r_facial = rand(0,255)
- g_facial = rand(0,255)
- b_facial = rand(0,255)
- if("f_style")
- f_style = random_facial_hair_style(gender, species)
- if("underwear")
- underwear = random_underwear(gender)
- ShowChoices(user)
- if("undershirt")
- undershirt = random_undershirt(gender)
- ShowChoices(user)
- if("socks")
- socks = random_socks(gender)
- ShowChoices(user)
- if("eyes")
- r_eyes = rand(0,255)
- g_eyes = rand(0,255)
- b_eyes = rand(0,255)
- if("s_tone")
- if(species == "Human")
- s_tone = random_skin_tone()
- if("s_color")
- if(species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Wyrn", "Vulpkanin", "Machine"))
- r_skin = rand(0,255)
- g_skin = rand(0,255)
- b_skin = rand(0,255)
- if("bag")
- backbag = rand(1,4)
- /*if("skin_style")
- h_style = random_skin_style(gender)*/
- if("all")
- random_character()
+ if("close")
+ user << browse(null, "window=disabil")
+ ShowChoices(user)
+ if("reset")
+ disabilities=0
+ SetDisabilities(user)
if("input")
- switch(href_list["preference"])
- if("name")
- var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null
- if (!isnull(raw_name)) // Check to ensure that the user entered text (rather than cancel.)
- var/new_name = reject_bad_name(raw_name)
- if(new_name)
- real_name = new_name
- else
- user << "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 ."
+ var/dflag=text2num(href_list["disability"])
+ if(dflag >= 0)
+ if(!(dflag==DISABILITY_FLAG_FAT && species!=("Human" || "Tajaran" || "Grey")))
+ disabilities ^= text2num(href_list["disability"]) //MAGIC
+ SetDisabilities(user)
+ else
+ SetDisabilities(user)
+ return 1
- if("age")
- var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null
- if(new_age)
- age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
- if("species")
+ else if(href_list["preference"] == "records")
+ if(text2num(href_list["record"]) >= 1)
+ SetRecords(user)
+ return
+ else
+ user << browse(null, "window=records")
+ if(href_list["task"] == "med_record")
+ var/medmsg = input(usr,"Set your medical notes here.","Medical Records",html_decode(med_record)) as message
- var/list/new_species = list("Human","Tajaran","Skrell","Unathi","Diona", "Vulpkanin")
- var/prev_species = species
+ if(medmsg != null)
+ medmsg = copytext(medmsg, 1, MAX_PAPER_MESSAGE_LEN)
+ medmsg = html_encode(medmsg)
+
+ med_record = medmsg
+ SetRecords(user)
+
+ if(href_list["task"] == "sec_record")
+ var/secmsg = input(usr,"Set your security notes here.","Security Records",html_decode(sec_record)) as message
+
+ if(secmsg != null)
+ secmsg = copytext(secmsg, 1, MAX_PAPER_MESSAGE_LEN)
+ secmsg = html_encode(secmsg)
+
+ sec_record = secmsg
+ SetRecords(user)
+ if(href_list["task"] == "gen_record")
+ var/genmsg = input(usr,"Set your employment notes here.","Employment Records",html_decode(gen_record)) as message
+
+ if(genmsg != null)
+ genmsg = copytext(genmsg, 1, MAX_PAPER_MESSAGE_LEN)
+ genmsg = html_encode(genmsg)
+
+ gen_record = genmsg
+ SetRecords(user)
+
+ switch(href_list["task"])
+ if("random")
+ switch(href_list["preference"])
+ if("name")
+ real_name = random_name(gender,species)
+ if("age")
+ age = rand(AGE_MIN, AGE_MAX)
+ if("hair")
+ if(species == "Human" || species == "Unathi" || species == "Tajaran" || species == "Skrell" || species == "Machine" || species == "Wryn" || species == "Vulpkanin")
+ r_hair = rand(0,255)
+ g_hair = rand(0,255)
+ b_hair = rand(0,255)
+ if("h_style")
+ h_style = random_hair_style(gender, species)
+ if("facial")
+ r_facial = rand(0,255)
+ g_facial = rand(0,255)
+ b_facial = rand(0,255)
+ if("f_style")
+ f_style = random_facial_hair_style(gender, species)
+ if("underwear")
+ underwear = random_underwear(gender)
+ ShowChoices(user)
+ if("undershirt")
+ undershirt = random_undershirt(gender)
+ ShowChoices(user)
+ if("socks")
+ socks = random_socks(gender)
+ ShowChoices(user)
+ if("eyes")
+ r_eyes = rand(0,255)
+ g_eyes = rand(0,255)
+ b_eyes = rand(0,255)
+ if("s_tone")
+ if(species == "Human")
+ s_tone = random_skin_tone()
+ if("s_color")
+ if(species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Wyrn", "Vulpkanin", "Machine"))
+ r_skin = rand(0,255)
+ g_skin = rand(0,255)
+ b_skin = rand(0,255)
+ if("bag")
+ backbag = rand(1,4)
+ /*if("skin_style")
+ h_style = random_skin_style(gender)*/
+ if("all")
+ random_character()
+ if("input")
+ switch(href_list["preference"])
+ if("name")
+ var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null
+ if (!isnull(raw_name)) // Check to ensure that the user entered text (rather than cancel.)
+ var/new_name = reject_bad_name(raw_name)
+ if(new_name)
+ real_name = new_name
+ else
+ user << "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 ."
+
+ if("age")
+ var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null
+ if(new_age)
+ age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
+ if("species")
+
+ var/list/new_species = list("Human","Tajaran","Skrell","Unathi","Diona", "Vulpkanin")
+ var/prev_species = species
// var/whitelisted = 0
- if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it!
- for(var/S in whitelisted_species)
- if(is_alien_whitelisted(user,S))
- new_species += S
+ if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it!
+ for(var/S in whitelisted_species)
+ if(is_alien_whitelisted(user,S))
+ new_species += S
// whitelisted = 1
// if(!whitelisted)
// alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.")
- else //Not using the whitelist? Aliens for everyone!
- new_species += whitelisted_species
+ else //Not using the whitelist? Aliens for everyone!
+ new_species += whitelisted_species
- species = input("Please select a species", "Character Generation", null) in new_species
+ species = input("Please select a species", "Character Generation", null) in new_species
- if(prev_species != species)
- //grab one of the valid hair styles for the newly chosen species
- var/list/valid_hairstyles = list()
- for(var/hairstyle in hair_styles_list)
- var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
- if(gender == MALE && S.gender == FEMALE)
- continue
- if(gender == FEMALE && S.gender == MALE)
- continue
- if( !(species in S.species_allowed))
- continue
- valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
-
- if(valid_hairstyles.len)
- h_style = pick(valid_hairstyles)
- else
- //this shouldn't happen
- h_style = hair_styles_list["Bald"]
-
- //grab one of the valid facial hair styles for the newly chosen species
- var/list/valid_facialhairstyles = list()
- for(var/facialhairstyle in facial_hair_styles_list)
- var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
- if(gender == MALE && S.gender == FEMALE)
- continue
- if(gender == FEMALE && S.gender == MALE)
- continue
- if( !(species in S.species_allowed))
- continue
-
- valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
-
- if(valid_facialhairstyles.len)
- f_style = pick(valid_facialhairstyles)
- else
- //this shouldn't happen
- f_style = facial_hair_styles_list["Shaved"]
-
- // Don't wear another species' underwear!
- var/datum/sprite_accessory/S = underwear_list[underwear]
- if(!(species in S.species_allowed))
- underwear = random_underwear(gender, species)
-
- S = undershirt_list[undershirt]
- if(!(species in S.species_allowed))
- undershirt = random_undershirt(gender, species)
-
- S = socks_list[socks]
- if(!(species in S.species_allowed))
- socks = random_socks(gender, species)
-
- //reset hair colour and skin colour
- r_hair = 0//hex2num(copytext(new_hair, 2, 4))
- g_hair = 0//hex2num(copytext(new_hair, 4, 6))
- b_hair = 0//hex2num(copytext(new_hair, 6, 8))
-
- s_tone = 0
-
- body_accessory = null //no vulpatail on humans damnit
- if("speciesprefs")//oldvox code
- speciesprefs = !speciesprefs
-
- if("language")
-// var/languages_available
- var/list/new_languages = list("None")
-/*
- if(config.usealienwhitelist)
- for(var/L in all_languages)
- var/datum/language/lang = all_languages[L]
- if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED ))))
- new_languages += lang
- languages_available = 1
-
- if(!(languages_available))
- alert(user, "There are not currently any available secondary languages.")
- else
-*/
- for(var/L in all_languages)
- var/datum/language/lang = all_languages[L]
- if(!(lang.flags & RESTRICTED))
- new_languages += lang.name
-
- language = input("Please select a secondary language", "Character Generation", null) in new_languages
-
- if("metadata")
- var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null
- if(new_metadata)
- metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN))
-
- if("b_type")
- var/new_b_type = input(user, "Choose your character's blood-type:", "Character Preference") as null|anything in list( "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-" )
- if(new_b_type)
- b_type = new_b_type
-
- if("hair")
- if(species == "Human" || species == "Unathi" || species == "Tajaran" || species == "Skrell" || species == "Machine" || species == "Vulpkanin")
- var/input = "Choose your character's hair colour:"
- if(species == "Machine")
- input = "Choose your character's frame colour:"
- var/new_hair = input(user, input, "Character Preference", rgb(r_hair, g_hair, b_hair)) as color|null
- if(new_hair)
- r_hair = hex2num(copytext(new_hair, 2, 4))
- g_hair = hex2num(copytext(new_hair, 4, 6))
- b_hair = hex2num(copytext(new_hair, 6, 8))
-
- if("h_style")
+ if(prev_species != species)
+ //grab one of the valid hair styles for the newly chosen species
var/list/valid_hairstyles = list()
for(var/hairstyle in hair_styles_list)
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
+ if(gender == MALE && S.gender == FEMALE)
+ continue
+ if(gender == FEMALE && S.gender == MALE)
+ continue
if( !(species in S.species_allowed))
continue
-
valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
- var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in valid_hairstyles
- if(new_h_style)
- h_style = new_h_style
-
- if("body_accessory")
- var/list/possible_body_accessories = list()
- if(check_rights(R_ADMIN, 1, user))
- possible_body_accessories = body_accessory_by_name.Copy()
+ if(valid_hairstyles.len)
+ h_style = pick(valid_hairstyles)
else
- for(var/B in body_accessory_by_name)
- var/datum/body_accessory/accessory = body_accessory_by_name[B]
- if(!istype(accessory))
- possible_body_accessories += "None" //the only null entry should be the "None" option
- continue
- if(species in accessory.allowed_species)
- possible_body_accessories += B
+ //this shouldn't happen
+ h_style = hair_styles_list["Bald"]
- var/new_body_accessory = input(user, "Choose your body accessory:", "Character Preference") as null|anything in possible_body_accessories
- if(new_body_accessory)
- body_accessory = (new_body_accessory == "None") ? null : new_body_accessory
-
- if("facial")
- var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference", rgb(r_facial, g_facial, b_facial)) as color|null
- if(new_facial)
- r_facial = hex2num(copytext(new_facial, 2, 4))
- g_facial = hex2num(copytext(new_facial, 4, 6))
- b_facial = hex2num(copytext(new_facial, 6, 8))
-
- if("f_style")
+ //grab one of the valid facial hair styles for the newly chosen species
var/list/valid_facialhairstyles = list()
for(var/facialhairstyle in facial_hair_styles_list)
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
@@ -1204,435 +1081,559 @@ datum/preferences
valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
- var/new_f_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in valid_facialhairstyles
- if(new_f_style)
- f_style = new_f_style
-
- if("underwear")
- var/list/underwear_options
- if(gender == MALE)
- underwear_options = underwear_m
+ if(valid_facialhairstyles.len)
+ f_style = pick(valid_facialhairstyles)
else
- underwear_options = underwear_f
+ //this shouldn't happen
+ f_style = facial_hair_styles_list["Shaved"]
- var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in underwear_options
- if(new_underwear)
- underwear = new_underwear
- ShowChoices(user)
+ // Don't wear another species' underwear!
+ var/datum/sprite_accessory/S = underwear_list[underwear]
+ if(!(species in S.species_allowed))
+ underwear = random_underwear(gender, species)
- if("undershirt")
- var/new_undershirt
- if(gender == MALE)
- new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_m
- else
- new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_f
- if(new_undershirt)
- undershirt = new_undershirt
- ShowChoices(user)
+ S = undershirt_list[undershirt]
+ if(!(species in S.species_allowed))
+ undershirt = random_undershirt(gender, species)
- if("socks")
- var/list/valid_sockstyles = list()
- for(var/sockstyle in socks_list)
- var/datum/sprite_accessory/S = socks_list[sockstyle]
- if(gender == MALE && S.gender == FEMALE)
+ S = socks_list[socks]
+ if(!(species in S.species_allowed))
+ socks = random_socks(gender, species)
+
+ //reset hair colour and skin colour
+ r_hair = 0//hex2num(copytext(new_hair, 2, 4))
+ g_hair = 0//hex2num(copytext(new_hair, 4, 6))
+ b_hair = 0//hex2num(copytext(new_hair, 6, 8))
+
+ s_tone = 0
+
+ body_accessory = null //no vulpatail on humans damnit
+ if("speciesprefs")//oldvox code
+ speciesprefs = !speciesprefs
+
+ if("language")
+// var/languages_available
+ var/list/new_languages = list("None")
+/*
+ if(config.usealienwhitelist)
+ for(var/L in all_languages)
+ var/datum/language/lang = all_languages[L]
+ if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED ))))
+ new_languages += lang
+ languages_available = 1
+
+ if(!(languages_available))
+ alert(user, "There are not currently any available secondary languages.")
+ else
+*/
+ for(var/L in all_languages)
+ var/datum/language/lang = all_languages[L]
+ if(!(lang.flags & RESTRICTED))
+ new_languages += lang.name
+
+ language = input("Please select a secondary language", "Character Generation", null) in new_languages
+
+ if("metadata")
+ var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null
+ if(new_metadata)
+ metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN))
+
+ if("b_type")
+ var/new_b_type = input(user, "Choose your character's blood-type:", "Character Preference") as null|anything in list( "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-" )
+ if(new_b_type)
+ b_type = new_b_type
+
+ if("hair")
+ if(species == "Human" || species == "Unathi" || species == "Tajaran" || species == "Skrell" || species == "Machine" || species == "Vulpkanin")
+ var/input = "Choose your character's hair colour:"
+ if(species == "Machine")
+ input = "Choose your character's frame colour:"
+ var/new_hair = input(user, input, "Character Preference", rgb(r_hair, g_hair, b_hair)) as color|null
+ if(new_hair)
+ r_hair = hex2num(copytext(new_hair, 2, 4))
+ g_hair = hex2num(copytext(new_hair, 4, 6))
+ b_hair = hex2num(copytext(new_hair, 6, 8))
+
+ if("h_style")
+ var/list/valid_hairstyles = list()
+ for(var/hairstyle in hair_styles_list)
+ var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
+ if( !(species in S.species_allowed))
+ continue
+
+ valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
+
+ var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in valid_hairstyles
+ if(new_h_style)
+ h_style = new_h_style
+
+ if("body_accessory")
+ var/list/possible_body_accessories = list()
+ if(check_rights(R_ADMIN, 1, user))
+ possible_body_accessories = body_accessory_by_name.Copy()
+ else
+ for(var/B in body_accessory_by_name)
+ var/datum/body_accessory/accessory = body_accessory_by_name[B]
+ if(!istype(accessory))
+ possible_body_accessories += "None" //the only null entry should be the "None" option
continue
- if(gender == FEMALE && S.gender == MALE)
- continue
- if(!(species in S.species_allowed))
- continue
- valid_sockstyles[sockstyle] = socks_list[sockstyle]
- var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in valid_sockstyles
- ShowChoices(user)
- if(new_socks)
- socks = new_socks
+ if(species in accessory.allowed_species)
+ possible_body_accessories += B
- if("eyes")
- var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference", rgb(r_eyes, g_eyes, b_eyes)) as color|null
- if(new_eyes)
- r_eyes = hex2num(copytext(new_eyes, 2, 4))
- g_eyes = hex2num(copytext(new_eyes, 4, 6))
- b_eyes = hex2num(copytext(new_eyes, 6, 8))
+ var/new_body_accessory = input(user, "Choose your body accessory:", "Character Preference") as null|anything in possible_body_accessories
+ if(new_body_accessory)
+ body_accessory = (new_body_accessory == "None") ? null : new_body_accessory
- if("s_tone")
- if(species != "Human")
- return
- var/new_s_tone = input(user, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Character Preference") as num|null
- if(new_s_tone)
- s_tone = 35 - max(min( round(new_s_tone), 220),1)
+ if("facial")
+ var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference", rgb(r_facial, g_facial, b_facial)) as color|null
+ if(new_facial)
+ r_facial = hex2num(copytext(new_facial, 2, 4))
+ g_facial = hex2num(copytext(new_facial, 4, 6))
+ b_facial = hex2num(copytext(new_facial, 6, 8))
- if("skin")
- if((species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Vulpkanin", "Machine")) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
- var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference", rgb(r_skin, g_skin, b_skin)) as color|null
- if(new_skin)
- r_skin = hex2num(copytext(new_skin, 2, 4))
- g_skin = hex2num(copytext(new_skin, 4, 6))
- b_skin = hex2num(copytext(new_skin, 6, 8))
+ if("f_style")
+ var/list/valid_facialhairstyles = list()
+ for(var/facialhairstyle in facial_hair_styles_list)
+ var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
+ if(gender == MALE && S.gender == FEMALE)
+ continue
+ if(gender == FEMALE && S.gender == MALE)
+ continue
+ if( !(species in S.species_allowed))
+ continue
+
+ valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
+
+ var/new_f_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in valid_facialhairstyles
+ if(new_f_style)
+ f_style = new_f_style
+
+ if("underwear")
+ var/list/underwear_options
+ if(gender == MALE)
+ underwear_options = underwear_m
+ else
+ underwear_options = underwear_f
+
+ var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in underwear_options
+ if(new_underwear)
+ underwear = new_underwear
+ ShowChoices(user)
+
+ if("undershirt")
+ var/new_undershirt
+ if(gender == MALE)
+ new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_m
+ else
+ new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_f
+ if(new_undershirt)
+ undershirt = new_undershirt
+ ShowChoices(user)
+
+ if("socks")
+ var/list/valid_sockstyles = list()
+ for(var/sockstyle in socks_list)
+ var/datum/sprite_accessory/S = socks_list[sockstyle]
+ if(gender == MALE && S.gender == FEMALE)
+ continue
+ if(gender == FEMALE && S.gender == MALE)
+ continue
+ if(!(species in S.species_allowed))
+ continue
+ valid_sockstyles[sockstyle] = socks_list[sockstyle]
+ var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in valid_sockstyles
+ ShowChoices(user)
+ if(new_socks)
+ socks = new_socks
+
+ if("eyes")
+ var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference", rgb(r_eyes, g_eyes, b_eyes)) as color|null
+ if(new_eyes)
+ r_eyes = hex2num(copytext(new_eyes, 2, 4))
+ g_eyes = hex2num(copytext(new_eyes, 4, 6))
+ b_eyes = hex2num(copytext(new_eyes, 6, 8))
+
+ if("s_tone")
+ if(species != "Human")
+ return
+ var/new_s_tone = input(user, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Character Preference") as num|null
+ if(new_s_tone)
+ s_tone = 35 - max(min( round(new_s_tone), 220),1)
+
+ if("skin")
+ if((species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Vulpkanin", "Machine")) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
+ var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference", rgb(r_skin, g_skin, b_skin)) as color|null
+ if(new_skin)
+ r_skin = hex2num(copytext(new_skin, 2, 4))
+ g_skin = hex2num(copytext(new_skin, 4, 6))
+ b_skin = hex2num(copytext(new_skin, 6, 8))
- if("ooccolor")
- var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference", ooccolor) as color|null
- if(new_ooccolor)
- ooccolor = new_ooccolor
+ if("ooccolor")
+ var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference", ooccolor) as color|null
+ if(new_ooccolor)
+ ooccolor = new_ooccolor
- if("bag")
- 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("bag")
+ 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("nt_relation")
- var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed")
- if(new_relation)
- nanotrasen_relation = new_relation
+ if("nt_relation")
+ var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed")
+ if(new_relation)
+ nanotrasen_relation = new_relation
- if("flavor_text")
- var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message
+ if("flavor_text")
+ var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message
- if(msg != null)
- msg = copytext(msg, 1, MAX_MESSAGE_LEN)
- msg = html_encode(msg)
+ if(msg != null)
+ msg = copytext(msg, 1, MAX_MESSAGE_LEN)
+ msg = html_encode(msg)
- flavor_text = msg
+ flavor_text = msg
- if("limbs")
- var/limb_name = input(user, "Which limb do you want to change?") as null|anything in list("Left Leg","Right Leg","Left Arm","Right Arm","Left Foot","Right Foot","Left Hand","Right Hand")
- if(!limb_name) return
+ if("limbs")
+ var/limb_name = input(user, "Which limb do you want to change?") as null|anything in list("Left Leg","Right Leg","Left Arm","Right Arm","Left Foot","Right Foot","Left Hand","Right Hand")
+ if(!limb_name) return
- var/limb = null
- var/second_limb = null // if you try to change the arm, the hand should also change
- var/third_limb = null // if you try to unchange the hand, the arm should also change
- var/valid_limb_states=list("Normal","Amputated","Prothesis")
- switch(limb_name)
- if("Left Leg")
- limb = "l_leg"
- second_limb = "l_foot"
- if("Right Leg")
- limb = "r_leg"
- second_limb = "r_foot"
- if("Left Arm")
- limb = "l_arm"
- second_limb = "l_hand"
- if("Right Arm")
- limb = "r_arm"
- second_limb = "r_hand"
- if("Left Foot")
- limb = "l_foot"
- third_limb = "l_leg"
- if("Right Foot")
- limb = "r_foot"
- third_limb = "r_leg"
- if("Left Hand")
- limb = "l_hand"
- third_limb = "l_arm"
- if("Right Hand")
- limb = "r_hand"
- third_limb = "r_arm"
+ var/limb = null
+ var/second_limb = null // if you try to change the arm, the hand should also change
+ var/third_limb = null // if you try to unchange the hand, the arm should also change
+ var/valid_limb_states=list("Normal","Amputated","Prothesis")
+ switch(limb_name)
+ if("Left Leg")
+ limb = "l_leg"
+ second_limb = "l_foot"
+ if("Right Leg")
+ limb = "r_leg"
+ second_limb = "r_foot"
+ if("Left Arm")
+ limb = "l_arm"
+ second_limb = "l_hand"
+ if("Right Arm")
+ limb = "r_arm"
+ second_limb = "r_hand"
+ if("Left Foot")
+ limb = "l_foot"
+ third_limb = "l_leg"
+ if("Right Foot")
+ limb = "r_foot"
+ third_limb = "r_leg"
+ if("Left Hand")
+ limb = "l_hand"
+ third_limb = "l_arm"
+ if("Right Hand")
+ limb = "r_hand"
+ third_limb = "r_arm"
- var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in valid_limb_states
- if(!new_state) return
+ var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in valid_limb_states
+ if(!new_state) return
- switch(new_state)
- if("Normal")
- organ_data[limb] = null
- rlimb_data[limb] = null
- if(third_limb)
- organ_data[third_limb] = null
- rlimb_data[third_limb] = null
- if("Amputated")
- organ_data[limb] = "amputated"
- rlimb_data[limb] = null
- if(second_limb)
- organ_data[second_limb] = "amputated"
- rlimb_data[second_limb] = null
- if("Prothesis")
- var/choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in chargen_robolimbs
- if(!choice)
- return
- rlimb_data[limb] = choice
- organ_data[limb] = "cyborg"
- if(second_limb)
- rlimb_data[second_limb] = choice
- organ_data[second_limb] = "cyborg"
+ switch(new_state)
+ if("Normal")
+ organ_data[limb] = null
+ rlimb_data[limb] = null
+ if(third_limb)
+ organ_data[third_limb] = null
+ rlimb_data[third_limb] = null
+ if("Amputated")
+ organ_data[limb] = "amputated"
+ rlimb_data[limb] = null
+ if(second_limb)
+ organ_data[second_limb] = "amputated"
+ rlimb_data[second_limb] = null
+ if("Prothesis")
+ var/choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in chargen_robolimbs
+ if(!choice)
+ return
+ rlimb_data[limb] = choice
+ organ_data[limb] = "cyborg"
+ if(second_limb)
+ rlimb_data[second_limb] = choice
+ organ_data[second_limb] = "cyborg"
- if("organs")
- var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes")
- if(!organ_name) return
+ if("organs")
+ var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes")
+ if(!organ_name) return
- var/organ = null
- switch(organ_name)
- if("Heart")
- organ = "heart"
- if("Eyes")
- organ = "eyes"
+ var/organ = null
+ switch(organ_name)
+ if("Heart")
+ organ = "heart"
+ if("Eyes")
+ organ = "eyes"
- var/new_state = input(user, "What state do you wish the organ to be in?") as null|anything in list("Normal","Assisted","Mechanical")
- if(!new_state) return
+ var/new_state = input(user, "What state do you wish the organ to be in?") as null|anything in list("Normal","Assisted","Mechanical")
+ if(!new_state) return
- switch(new_state)
- if("Normal")
- organ_data[organ] = null
- if("Assisted")
- organ_data[organ] = "assisted"
- if("Mechanical")
- organ_data[organ] = "mechanical"
+ switch(new_state)
+ if("Normal")
+ organ_data[organ] = null
+ if("Assisted")
+ organ_data[organ] = "assisted"
+ if("Mechanical")
+ organ_data[organ] = "mechanical"
/*
- if("skin_style")
- var/skin_style_name = input(user, "Select a new skin style") as null|anything in list("default1", "default2", "default3")
- if(!skin_style_name) return
+ if("skin_style")
+ var/skin_style_name = input(user, "Select a new skin style") as null|anything in list("default1", "default2", "default3")
+ if(!skin_style_name) return
*/
/* if("spawnpoint")
- var/list/spawnkeys = list()
- for(var/S in spawntypes)
- spawnkeys += S
- var/choice = input(user, "Where would you like to spawn when latejoining?") as null|anything in spawnkeys
- if(!choice || !spawntypes[choice])
- spawnpoint = "Arrivals Shuttle"
- return
- spawnpoint = choice */
+ var/list/spawnkeys = list()
+ for(var/S in spawntypes)
+ spawnkeys += S
+ var/choice = input(user, "Where would you like to spawn when latejoining?") as null|anything in spawnkeys
+ if(!choice || !spawntypes[choice])
+ spawnpoint = "Arrivals Shuttle"
+ return
+ spawnpoint = choice */
- else
- switch(href_list["preference"])
- if("publicity")
- if(unlock_content)
- toggles ^= MEMBER_PUBLIC
+ else
+ switch(href_list["preference"])
+ if("publicity")
+ if(unlock_content)
+ toggles ^= MEMBER_PUBLIC
- if("gender")
- if(gender == MALE)
- gender = FEMALE
- else
- gender = MALE
- underwear = random_underwear(gender)
-
- if("hear_adminhelps")
- sound ^= SOUND_ADMINHELP
-
- if("ui")
- switch(UI_style)
- if("Midnight")
- UI_style = "White"
- else
- UI_style = "Midnight"
-
- if("UIcolor")
- var/UI_style_color_new = input(user, "Choose your UI color, dark colors are not recommended!", UI_style_color) as color|null
- if(!UI_style_color_new) return
- UI_style_color = UI_style_color_new
-
- if("UIalpha")
- var/UI_style_alpha_new = input(user, "Select a new alpha(transparence) parametr for UI, between 50 and 255") as num
- if(!UI_style_alpha_new | !(UI_style_alpha_new <= 255 && UI_style_alpha_new >= 50)) return
- UI_style_alpha = UI_style_alpha_new
-
- if("be_special")
- var/r = href_list["role"]
- if(!(r in special_roles))
- message_admins("[user] attempted an href exploit! (This could have possibly lead to a \"Bobby Tables\" exploit, so they're probably up to no good). String: [r] ID: [last_id] IP: [last_ip]")
- user << "Nice try."
- else
- be_special ^= r
-
- if("name")
- be_random_name = !be_random_name
-
- if("randomslot")
- randomslot = !randomslot
-
- if("hear_midis")
- sound ^= SOUND_MIDI
-
- if("lobby_music")
- sound ^= SOUND_LOBBY
- if(sound & SOUND_LOBBY)
- user << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1)
- else
- user << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1)
-
- if("ghost_ears")
- toggles ^= CHAT_GHOSTEARS
-
- if("ghost_sight")
- toggles ^= CHAT_GHOSTSIGHT
-
- if("ghost_radio")
- toggles ^= CHAT_GHOSTRADIO
-
- if("ghost_radio")
- toggles ^= CHAT_GHOSTRADIO
-
- if("save")
- save_preferences(user)
- save_character(user)
-
- if("reload")
- load_preferences(user)
- load_character(user)
-
- if("open_load_dialog")
- if(!IsGuestKey(user.key))
- open_load_dialog(user)
-
- if("close_load_dialog")
- close_load_dialog(user)
-
- if("changeslot")
- if(!load_character(user,text2num(href_list["num"])))
- random_character()
- real_name = random_name(gender)
- save_character(user)
- close_load_dialog(user)
-
- if("tab")
- if (href_list["tab"])
- current_tab = text2num(href_list["tab"])
-
- ShowChoices(user)
- return 1
-
- proc/copy_to(mob/living/carbon/human/character)
- if(be_random_name)
- real_name = random_name(gender,species)
-
- if(config.humans_need_surnames)
- var/firstspace = findtext(real_name, " ")
- var/name_length = length(real_name)
- if(!firstspace) //we need a surname
- real_name += " [pick(last_names)]"
- else if(firstspace == name_length)
- real_name += "[pick(last_names)]"
-
- character.real_name = real_name
- character.name = character.real_name
- if(character.dna)
- character.dna.real_name = character.real_name
-
- character.flavor_text = flavor_text
- character.med_record = med_record
- character.sec_record = sec_record
- character.gen_record = gen_record
-
- character.gender = gender
- character.age = age
- character.b_type = b_type
-
- character.r_eyes = r_eyes
- character.g_eyes = g_eyes
- character.b_eyes = b_eyes
-
- character.r_hair = r_hair
- character.g_hair = g_hair
- character.b_hair = b_hair
-
- character.r_facial = r_facial
- character.g_facial = g_facial
- character.b_facial = b_facial
-
- character.r_skin = r_skin
- character.g_skin = g_skin
- character.b_skin = b_skin
-
- character.s_tone = s_tone
-
- character.h_style = h_style
- character.f_style = f_style
-
-
- // Destroy/cyborgize organs
-
- for(var/name in organ_data)
-
- var/status = organ_data[name]
- var/obj/item/organ/external/O = character.organs_by_name[name]
- if(O)
- if(status == "amputated")
- character.organs_by_name[O.limb_name] = null
- character.organs -= O
- if(O.children) // This might need to become recursive.
- for(var/obj/item/organ/external/child in O.children)
- character.organs_by_name[child.limb_name] = null
- character.organs -= child
-
- else if(status == "cyborg")
- if(rlimb_data[name])
- O.robotize(rlimb_data[name])
+ if("gender")
+ if(gender == MALE)
+ gender = FEMALE
else
- O.robotize()
- else
- var/obj/item/organ/I = character.internal_organs_by_name[name]
- if(I)
- if(status == "assisted")
- I.mechassist()
- else if(status == "mechanical")
- I.robotize()
+ gender = MALE
+ underwear = random_underwear(gender)
- if(disabilities & DISABILITY_FLAG_FAT && character.species.flags & CAN_BE_FAT)//character.species.flags & CAN_BE_FAT)
- character.mutations += FAT
- character.mutations += OBESITY
- if(disabilities & DISABILITY_FLAG_NEARSIGHTED)
- character.disabilities|=NEARSIGHTED
- if(disabilities & DISABILITY_FLAG_EPILEPTIC)
- character.disabilities|=EPILEPSY
- if(disabilities & DISABILITY_FLAG_DEAF)
- character.sdisabilities|=DEAF
+ if("hear_adminhelps")
+ sound ^= SOUND_ADMINHELP
- // Wheelchair necessary?
- var/obj/item/organ/external/l_foot = character.get_organ("l_foot")
- var/obj/item/organ/external/r_foot = character.get_organ("r_foot")
- if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED))
- var/obj/structure/stool/bed/chair/wheelchair/W = new /obj/structure/stool/bed/chair/wheelchair (character.loc)
- character.buckled = W
- character.update_canmove()
- W.dir = character.dir
- W.buckled_mob = character
- W.add_fingerprint(character)
+ if("ui")
+ switch(UI_style)
+ if("Midnight")
+ UI_style = "White"
+ else
+ UI_style = "Midnight"
- character.underwear = underwear
- character.undershirt = undershirt
- character.socks = socks
+ if("UIcolor")
+ var/UI_style_color_new = input(user, "Choose your UI color, dark colors are not recommended!", UI_style_color) as color|null
+ if(!UI_style_color_new) return
+ UI_style_color = UI_style_color_new
- if(body_accessory)
- character.body_accessory = body_accessory_by_name["[body_accessory]"]
+ if("UIalpha")
+ var/UI_style_alpha_new = input(user, "Select a new alpha(transparence) parametr for UI, between 50 and 255") as num
+ if(!UI_style_alpha_new | !(UI_style_alpha_new <= 255 && UI_style_alpha_new >= 50)) return
+ UI_style_alpha = UI_style_alpha_new
- if(backbag > 4 || backbag < 1)
- backbag = 1 //Same as above
- character.backbag = backbag
+ if("be_special")
+ var/r = href_list["role"]
+ if(!(r in special_roles))
+ message_admins("[user] attempted an href exploit! (This could have possibly lead to a \"Bobby Tables\" exploit, so they're probably up to no good). String: [r] ID: [last_id] IP: [last_ip]")
+ user << "Nice try."
+ else
+ be_special ^= r
- //Debugging report to track down a bug, which randomly assigned the plural gender to people.
- if(character.gender in list(PLURAL, NEUTER))
- if(isliving(src)) //Ghosts get neuter by default
- message_admins("[key_name_admin(character)] has spawned with their gender as plural or neuter. Please notify coders.")
- character.gender = MALE
+ if("name")
+ be_random_name = !be_random_name
- proc/open_load_dialog(mob/user)
+ if("randomslot")
+ randomslot = !randomslot
- var/DBQuery/query = dbcon.NewQuery("SELECT slot,real_name FROM [format_table_name("characters")] WHERE ckey='[user.ckey]' ORDER BY slot")
+ if("hear_midis")
+ sound ^= SOUND_MIDI
- var/dat = ""
- dat += ""
- dat += "Select a character slot to load
"
- var/name
+ if("lobby_music")
+ sound ^= SOUND_LOBBY
+ if(sound & SOUND_LOBBY)
+ user << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1)
+ else
+ user << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1)
- for(var/i=1, i<=max_save_slots, i++)
- if(!query.Execute())
- var/err = query.ErrorMsg()
- log_game("SQL ERROR during character slot loading. Error : \[[err]\]\n")
- message_admins("SQL ERROR during character slot loading. Error : \[[err]\]\n")
- return
- while(query.NextRow())
- if(i==text2num(query.item[1]))
- name = query.item[2]
- if(!name) name = "Character[i]"
- if(i==default_slot)
- name = "[name]"
- dat += "[name]
"
- name = null
+ if("ghost_ears")
+ toggles ^= CHAT_GHOSTEARS
- dat += "
"
- dat += "Close
"
- dat += ""
+ if("ghost_sight")
+ toggles ^= CHAT_GHOSTSIGHT
+
+ if("ghost_radio")
+ toggles ^= CHAT_GHOSTRADIO
+
+ if("ghost_radio")
+ toggles ^= CHAT_GHOSTRADIO
+
+ if("save")
+ save_preferences(user)
+ save_character(user)
+
+ if("reload")
+ load_preferences(user)
+ load_character(user)
+
+ if("open_load_dialog")
+ if(!IsGuestKey(user.key))
+ open_load_dialog(user)
+
+ if("close_load_dialog")
+ close_load_dialog(user)
+
+ if("changeslot")
+ if(!load_character(user,text2num(href_list["num"])))
+ random_character()
+ real_name = random_name(gender)
+ save_character(user)
+ close_load_dialog(user)
+
+ if("tab")
+ if (href_list["tab"])
+ current_tab = text2num(href_list["tab"])
+
+ ShowChoices(user)
+ return 1
+
+/datum/preferences/proc/copy_to(mob/living/carbon/human/character)
+ if(be_random_name)
+ real_name = random_name(gender,species)
+
+ if(config.humans_need_surnames)
+ var/firstspace = findtext(real_name, " ")
+ var/name_length = length(real_name)
+ if(!firstspace) //we need a surname
+ real_name += " [pick(last_names)]"
+ else if(firstspace == name_length)
+ real_name += "[pick(last_names)]"
+
+ character.real_name = real_name
+ character.name = character.real_name
+ if(character.dna)
+ character.dna.real_name = character.real_name
+
+ character.flavor_text = flavor_text
+ character.med_record = med_record
+ character.sec_record = sec_record
+ character.gen_record = gen_record
+
+ character.gender = gender
+ character.age = age
+ character.b_type = b_type
+
+ character.r_eyes = r_eyes
+ character.g_eyes = g_eyes
+ character.b_eyes = b_eyes
+
+ character.r_hair = r_hair
+ character.g_hair = g_hair
+ character.b_hair = b_hair
+
+ character.r_facial = r_facial
+ character.g_facial = g_facial
+ character.b_facial = b_facial
+
+ character.r_skin = r_skin
+ character.g_skin = g_skin
+ character.b_skin = b_skin
+
+ character.s_tone = s_tone
+
+ character.h_style = h_style
+ character.f_style = f_style
+
+
+ // Destroy/cyborgize organs
+
+ for(var/name in organ_data)
+
+ var/status = organ_data[name]
+ var/obj/item/organ/external/O = character.organs_by_name[name]
+ if(O)
+ if(status == "amputated")
+ character.organs_by_name[O.limb_name] = null
+ character.organs -= O
+ if(O.children) // This might need to become recursive.
+ for(var/obj/item/organ/external/child in O.children)
+ character.organs_by_name[child.limb_name] = null
+ character.organs -= child
+
+ else if(status == "cyborg")
+ if(rlimb_data[name])
+ O.robotize(rlimb_data[name])
+ else
+ O.robotize()
+ else
+ var/obj/item/organ/I = character.internal_organs_by_name[name]
+ if(I)
+ if(status == "assisted")
+ I.mechassist()
+ else if(status == "mechanical")
+ I.robotize()
+
+ if(disabilities & DISABILITY_FLAG_FAT && character.species.flags & CAN_BE_FAT)//character.species.flags & CAN_BE_FAT)
+ character.mutations += FAT
+ character.mutations += OBESITY
+ if(disabilities & DISABILITY_FLAG_NEARSIGHTED)
+ character.disabilities|=NEARSIGHTED
+ if(disabilities & DISABILITY_FLAG_EPILEPTIC)
+ character.disabilities|=EPILEPSY
+ if(disabilities & DISABILITY_FLAG_DEAF)
+ character.sdisabilities|=DEAF
+
+ // Wheelchair necessary?
+ var/obj/item/organ/external/l_foot = character.get_organ("l_foot")
+ var/obj/item/organ/external/r_foot = character.get_organ("r_foot")
+ if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED))
+ var/obj/structure/stool/bed/chair/wheelchair/W = new /obj/structure/stool/bed/chair/wheelchair (character.loc)
+ character.buckled = W
+ character.update_canmove()
+ W.dir = character.dir
+ W.buckled_mob = character
+ W.add_fingerprint(character)
+
+ character.underwear = underwear
+ character.undershirt = undershirt
+ character.socks = socks
+
+ if(body_accessory)
+ character.body_accessory = body_accessory_by_name["[body_accessory]"]
+
+ if(backbag > 4 || backbag < 1)
+ backbag = 1 //Same as above
+ character.backbag = backbag
+
+ //Debugging report to track down a bug, which randomly assigned the plural gender to people.
+ if(character.gender in list(PLURAL, NEUTER))
+ if(isliving(src)) //Ghosts get neuter by default
+ message_admins("[key_name_admin(character)] has spawned with their gender as plural or neuter. Please notify coders.")
+ character.gender = MALE
+
+/datum/preferences/proc/open_load_dialog(mob/user)
+
+ var/DBQuery/query = dbcon.NewQuery("SELECT slot,real_name FROM [format_table_name("characters")] WHERE ckey='[user.ckey]' ORDER BY slot")
+
+ var/dat = ""
+ dat += ""
+ dat += "Select a character slot to load
"
+ var/name
+
+ for(var/i=1, i<=max_save_slots, i++)
+ if(!query.Execute())
+ var/err = query.ErrorMsg()
+ log_game("SQL ERROR during character slot loading. Error : \[[err]\]\n")
+ message_admins("SQL ERROR during character slot loading. Error : \[[err]\]\n")
+ return
+ while(query.NextRow())
+ if(i==text2num(query.item[1]))
+ name = query.item[2]
+ if(!name) name = "Character[i]"
+ if(i==default_slot)
+ name = "[name]"
+ dat += "[name]
"
+ name = null
+
+ dat += "
"
+ dat += "Close
"
+ dat += ""
// user << browse(dat, "window=saves;size=300x390")
- var/datum/browser/popup = new(user, "saves", "Character Saves
", 300, 390)
- popup.set_content(dat)
- popup.open(0)
- proc/close_load_dialog(mob/user)
- user << browse(null, "window=saves")
+ var/datum/browser/popup = new(user, "saves", "Character Saves
", 300, 390)
+ popup.set_content(dat)
+ popup.open(0)
+
+/datum/preferences/proc/close_load_dialog(mob/user)
+ user << browse(null, "window=saves")
diff --git a/code/modules/client/preferences_mysql.dm b/code/modules/client/preferences_mysql.dm
index be900d254b7..016b3a7a46a 100644
--- a/code/modules/client/preferences_mysql.dm
+++ b/code/modules/client/preferences_mysql.dm
@@ -197,7 +197,6 @@
job_karma_med = sanitize_integer(job_karma_med, 0, 65535, initial(job_karma_med))
job_karma_low = sanitize_integer(job_karma_low, 0, 65535, initial(job_karma_low))
disabilities = sanitize_integer(disabilities, 0, 65535, initial(disabilities))
- be_special = sanitize_integer(be_special, 0, 65535, initial(be_special))
socks = sanitize_text(socks, initial(socks))
body_accessory = sanitize_text(body_accessory, initial(body_accessory))
@@ -268,7 +267,6 @@
sec_record='[sql_sanitize_text(html_decode(sec_record))]',
gen_record='[sql_sanitize_text(html_decode(gen_record))]',
player_alt_titles='[playertitlelist]',
- be_special='[be_special]',
disabilities='[disabilities]',
organ_data='[organlist]',
rlimb_data='[rlimblist]',
@@ -302,7 +300,7 @@
job_engsec_high, job_engsec_med, job_engsec_low,
job_karma_high, job_karma_med, job_karma_low,
flavor_text, med_record, sec_record, gen_record,
- player_alt_titles, be_special,
+ player_alt_titles,
disabilities, organ_data, rlimb_data, nanotrasen_relation, speciesprefs,
socks, body_accessory)
@@ -321,7 +319,7 @@
'[job_engsec_high]', '[job_engsec_med]', '[job_engsec_low]',
'[job_karma_high]', '[job_karma_med]', '[job_karma_low]',
'[sql_sanitize_text(html_encode(flavor_text))]', '[sql_sanitize_text(html_encode(med_record))]', '[sql_sanitize_text(html_encode(sec_record))]', '[sql_sanitize_text(html_encode(gen_record))]',
- '[playertitlelist]', '[be_special]',
+ '[playertitlelist]',
'[disabilities]', '[organlist]', '[rlimblist]', '[nanotrasen_relation]', '[speciesprefs]',
'[socks]', '[body_accessory]')
diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm
index a59f4eeac42..ccc0ef94191 100644
--- a/code/modules/events/alien_infestation.dm
+++ b/code/modules/events/alien_infestation.dm
@@ -21,7 +21,7 @@
if(temp_vent.parent.other_atmosmch.len > 50) //Stops Aliens getting stuck in small networks. See: Security, Virology
vents += temp_vent
- var/list/candidates = get_candidates(BE_ALIEN,ALIEN_AFK_BRACKET)
+ var/list/candidates = get_candidates(ROLE_ALIEN,ALIEN_AFK_BRACKET)
while(spawncount > 0 && vents.len && candidates.len)
var/obj/vent = pick_n_take(vents)
@@ -33,4 +33,4 @@
spawncount--
successSpawn = 1
-
+
diff --git a/code/modules/events/borers.dm b/code/modules/events/borers.dm
index d1620e45be7..d716b1df6c5 100644
--- a/code/modules/events/borers.dm
+++ b/code/modules/events/borers.dm
@@ -22,7 +22,7 @@
if(temp_vent.parent.other_atmosmch.len > 50)
vents += temp_vent
- var/list/candidates = get_candidates(BE_ALIEN,ALIEN_AFK_BRACKET)
+ var/list/candidates = get_candidates(ROLE_BORER,ALIEN_AFK_BRACKET)
while(spawncount > 0 && vents.len && candidates.len)
var/obj/vent = pick_n_take(vents)
var/client/C = pick_n_take(candidates)
@@ -32,4 +32,4 @@
spawncount--
successSpawn = 1
-
+
diff --git a/code/modules/events/slaughterevent.dm b/code/modules/events/slaughterevent.dm
index c0f1ae75184..0889f8d8136 100644
--- a/code/modules/events/slaughterevent.dm
+++ b/code/modules/events/slaughterevent.dm
@@ -4,7 +4,7 @@
/datum/event/spawn_slaughter/proc/get_slaughter(var/end_if_fail = 0)
key_of_slaughter = null
if(!key_of_slaughter)
- var/list/candidates = get_candidates(BE_ALIEN)
+ var/list/candidates = get_candidates(ROLE_DEMON)
if(!candidates.len)
if(end_if_fail)
return 0
@@ -55,4 +55,3 @@
return 0
message_admins("Unfortunately, no candidates were available for becoming a Slaugter Demon. Shutting down.")
kill()
-
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
index 5494b199a87..5ffe45a8123 100644
--- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
+++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
@@ -83,7 +83,7 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
AttemptGrow()
/obj/item/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1)
- var/list/candidates = get_candidates(BE_ALIEN,ALIEN_AFK_BRACKET,1)
+ var/list/candidates = get_candidates(ROLE_ALIEN,ALIEN_AFK_BRACKET,1)
var/client/C = null
// To stop clientless larva, we will check that our host has a client
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index 67caeb2788c..d76b7dea569 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -32,8 +32,9 @@
/obj/item/device/mmi/posibrain/proc/request_player()
for(var/mob/dead/observer/O in player_list)
if(check_observer(O))
- O << "\blue \A [src] has been activated. (Teleport | Sign Up)"
- //question(O.client)
+ O << "\A [src] has been activated. (Teleport | Sign Up)"
+// if(ROLE_POSIBRAIN in O.client.prefs.be_special) The Guardian implementation looks cleaner
+// question(O.client)
/obj/item/device/mmi/posibrain/proc/check_observer(var/mob/dead/observer/O)
if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
@@ -52,7 +53,7 @@
if(response == "Yes")
transfer_personality(C.mob)
else if (response == "Never for this round")
- C.prefs.be_special ^= BE_PAI
+ C.prefs.be_special -= ROLE_POSIBRAIN
// This should not ever happen, but let's be safe
/obj/item/device/mmi/posibrain/dropbrain(var/turf/dropspot)
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 4abae727c73..96680de98b8 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -789,7 +789,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
user << "You offer the sentience potion to [M]..."
being_used = 1
- var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET)
+ var/list/candidates = get_candidates(ROLE_SENTIENT, ALIEN_AFK_BRACKET)
shuffle(candidates)
diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm
index 854969123e5..34ec44a4245 100644
--- a/code/modules/mob/living/simple_animal/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer.dm
@@ -16,7 +16,7 @@
if (!message)
return
log_say("[key_name(src)] : [message]")
- if (stat == 2)
+ if (stat == DEAD)
return say_dead(message)
var/mob/living/simple_animal/borer/B = src.loc
src << "You whisper silently, \"[message]\""
@@ -302,7 +302,7 @@
detatch()
leave_host()
-mob/living/simple_animal/borer/proc/detatch()
+/mob/living/simple_animal/borer/proc/detatch()
if(!host) return
@@ -416,7 +416,7 @@ mob/living/simple_animal/borer/proc/detatch()
src << "You cannot infest a target in your current state."
return
- if(M.stat == 2)
+ if(M.stat == DEAD)
src << "That is not an appropriate target."
return
@@ -457,15 +457,15 @@ mob/living/simple_animal/borer/proc/detatch()
return
//Procs for grabbing players.
-mob/living/simple_animal/borer/proc/request_player()
+/mob/living/simple_animal/borer/proc/request_player()
for(var/mob/O in respawnable_list)
if(jobban_isbanned(O, "Syndicate"))
continue
if(O.client)
- if((BE_ALIEN in O.client.prefs.be_special) && !jobban_isbanned(O, "alien"))
+ if((ROLE_BORER in O.client.prefs.be_special) && !jobban_isbanned(O, "alien"))
question(O.client)
-mob/living/simple_animal/borer/proc/question(var/client/C)
+/mob/living/simple_animal/borer/proc/question(var/client/C)
spawn(0)
if(!C) return
var/response = alert(C, "A cortical borer needs a player. Are you interested?", "Cortical borer request", "Yes", "No", "Never for this round")
@@ -474,9 +474,9 @@ mob/living/simple_animal/borer/proc/question(var/client/C)
if(response == "Yes")
transfer_personality(C)
else if (response == "Never for this round")
- C.prefs.be_special ^= BE_ALIEN
+ C.prefs.be_special -= ROLE_BORER
-mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate)
+/mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate)
if(!candidate)
return
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index fefd94092b0..b202fd9bf81 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -641,7 +641,7 @@
return
used = TRUE
user << "[use_message]"
- var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the [mob_name] of [user.real_name]?",BE_PAI, null, FALSE, 100)
+ var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the [mob_name] of [user.real_name]?",ROLE_GUARDIAN, null, FALSE, 100)
var/mob/dead/observer/theghost = null
if(candidates.len)
diff --git a/code/modules/mob/living/simple_animal/revenant/revenant.dm b/code/modules/mob/living/simple_animal/revenant/revenant.dm
index 70edbc27dd3..dfe8d1838e0 100644
--- a/code/modules/mob/living/simple_animal/revenant/revenant.dm
+++ b/code/modules/mob/living/simple_animal/revenant/revenant.dm
@@ -442,7 +442,7 @@
if(!key_of_revenant)
message_admins("The new revenant's old client either could not be found or is in a new, living mob - grabbing a random candidate instead...")
- var/list/candidates = get_candidates(BE_REVENANT)
+ var/list/candidates = get_candidates(ROLE_REVENANT)
if(!candidates.len)
qdel(R)
message_admins("No candidates were found for the new revenant. Oh well!")
diff --git a/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm b/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm
index 0f1b3545391..57ebb983e72 100644
--- a/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm
+++ b/code/modules/mob/living/simple_animal/revenant/revenant_spawn_event.dm
@@ -13,7 +13,7 @@
return
key_of_revenant = null
if(!key_of_revenant)
- var/list/candidates = get_candidates(BE_REVENANT)
+ var/list/candidates = get_candidates(ROLE_REVENANT)
if(!candidates.len)
if(end_if_fail)
return 0