mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
Adds mutant races to the character preferences. It can only choose between lizard and human right now.
Adds a new server configuration to toggle on and off the mutant races preferences. If it's off, everyone will be human.
This commit is contained in:
@@ -56,6 +56,11 @@ var/list/skin_tones = list(
|
||||
"african2"
|
||||
)
|
||||
|
||||
var/list/mutant_races = list(
|
||||
"human",
|
||||
"lizard",
|
||||
)
|
||||
|
||||
proc/age2agedescription(age)
|
||||
switch(age)
|
||||
if(0 to 1) return "infant"
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
var/continuous_round_wiz = 0
|
||||
var/continuous_round_malf = 0
|
||||
var/show_game_type_odds = 0 //if set this allows players to see the odds of each roundtype on the get revision screen
|
||||
var/mutant_races = 0 //players can choose their mutant race before joining the game
|
||||
|
||||
var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced."
|
||||
var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted."
|
||||
@@ -375,6 +376,8 @@
|
||||
config.sandbox_autoclose = 1
|
||||
if("default_laws")
|
||||
config.default_laws = text2num(value)
|
||||
if("join_with_mutant_race")
|
||||
config.mutant_races = 1
|
||||
else
|
||||
diary << "Unknown setting in configuration: '[name]'"
|
||||
|
||||
|
||||
+5
-5
@@ -23,9 +23,6 @@
|
||||
var/mutantrace = null //The type of mutant race the player is if applicable (i.e. potato-man)
|
||||
var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings,
|
||||
|
||||
/datum/dna/New()
|
||||
if(!blood_type) blood_type = random_blood_type()
|
||||
|
||||
/datum/dna/proc/generate_uni_identity(mob/living/carbon/character)
|
||||
. = ""
|
||||
var/list/L = new /list(DNA_UNI_IDENTITY_BLOCKS)
|
||||
@@ -69,7 +66,7 @@
|
||||
if(!istype(owner, /mob/living/carbon/monkey) && !istype(owner, /mob/living/carbon/human))
|
||||
return
|
||||
if(!owner.dna)
|
||||
owner.dna = new /datum/dna()
|
||||
create_dna(owner)
|
||||
|
||||
if(real_name)
|
||||
owner.real_name = real_name
|
||||
@@ -116,7 +113,7 @@
|
||||
if(!istype(character, /mob/living/carbon/monkey) && !istype(character, /mob/living/carbon/human))
|
||||
return
|
||||
if(!character.dna)
|
||||
character.dna = new /datum/dna()
|
||||
create_dna(character)
|
||||
if(blood_type)
|
||||
character.dna.blood_type = blood_type
|
||||
character.dna.real_name = character.real_name
|
||||
@@ -125,6 +122,9 @@
|
||||
character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character)
|
||||
return character.dna
|
||||
|
||||
/proc/create_dna(mob/living/carbon/C) //don't use this unless you're about to use hardset_dna or ready_dna
|
||||
C.dna = new /datum/dna()
|
||||
|
||||
/////////////////////////// DNA DATUM
|
||||
|
||||
/////////////////////////// DNA HELPER-PROCS
|
||||
|
||||
@@ -53,6 +53,7 @@ datum/preferences
|
||||
var/facial_hair_color = "000" //Facial hair color
|
||||
var/skin_tone = "caucasian1" //Skin color
|
||||
var/eye_color = "000" //Eye color
|
||||
var/mutant_race = "human" //Mutant race
|
||||
|
||||
//Mob preview
|
||||
var/icon/preview_icon_front = null
|
||||
@@ -163,6 +164,10 @@ datum/preferences
|
||||
|
||||
dat += "<table width='100%'><tr><td width='24%' valign='top'>"
|
||||
|
||||
if(config.mutant_races)
|
||||
dat += "<b>Mutant Race:</b><BR><a href='?_src_=prefs;preference=mutant_race;task=input'>[mutant_race]</a><BR>"
|
||||
else
|
||||
dat += "<b>Mutant Race:</b> human<BR>"
|
||||
dat += "<b>Blood Type:</b> [blood_type]<BR>"
|
||||
dat += "<b>Skin Tone:</b><BR><a href='?_src_=prefs;preference=s_tone;task=input'>[skin_tone]</a><BR>"
|
||||
dat += "<b>Underwear:</b><BR><a href ='?_src_=prefs;preference=underwear;task=input'>[underwear]</a><BR>"
|
||||
@@ -612,6 +617,11 @@ datum/preferences
|
||||
if(new_eyes)
|
||||
eye_color = sanitize_hexcolor(new_eyes)
|
||||
|
||||
if("mutant_race")
|
||||
var/new_mutant_race = input(user, "Choose your character's mutant race:", "Character Preference") as null|anything in mutant_races
|
||||
if(new_mutant_race)
|
||||
mutant_race = new_mutant_race
|
||||
|
||||
if("s_tone")
|
||||
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
|
||||
if(new_s_tone)
|
||||
@@ -712,6 +722,8 @@ datum/preferences
|
||||
character.name = character.real_name
|
||||
if(character.dna)
|
||||
character.dna.real_name = character.real_name
|
||||
if(mutant_race != "human" && config.mutant_races)
|
||||
character.dna.mutantrace = mutant_race
|
||||
|
||||
character.gender = gender
|
||||
character.age = age
|
||||
|
||||
@@ -165,6 +165,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["facial_style_name"] >> facial_hair_style
|
||||
S["underwear"] >> underwear
|
||||
S["backbag"] >> backbag
|
||||
S["mutant_race"] >> mutant_race
|
||||
|
||||
//Jobs
|
||||
S["userandomjob"] >> userandomjob
|
||||
@@ -202,6 +203,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
eye_color = sanitize_hexcolor(eye_color, 3, 0)
|
||||
skin_tone = sanitize_inlist(skin_tone, skin_tones)
|
||||
backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag))
|
||||
mutant_race = sanitize_text(mutant_race, initial(mutant_race))
|
||||
|
||||
userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob))
|
||||
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
|
||||
@@ -238,6 +240,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["facial_style_name"] << facial_hair_style
|
||||
S["underwear"] << underwear
|
||||
S["backbag"] << backbag
|
||||
S["mutant_race"] << mutant_race
|
||||
|
||||
//Jobs
|
||||
S["userandomjob"] << userandomjob
|
||||
|
||||
@@ -330,6 +330,8 @@
|
||||
var/mob/living/carbon/human/new_character = new(loc)
|
||||
new_character.lastarea = get_area(loc)
|
||||
|
||||
create_dna(new_character)
|
||||
|
||||
if(config.force_random_names || appearance_isbanned(src))
|
||||
client.prefs.random_character()
|
||||
client.prefs.real_name = random_name(gender)
|
||||
|
||||
@@ -184,3 +184,6 @@ SEC_START_BRIG
|
||||
## Set to 1 for "custom", silicons will start with the custom laws defined in silicon_laws.txt. (If silicon_laws.txt is empty, the AI will spawn with asimov and Custom boards will auto-delete.)
|
||||
## Set to 2 for "random", silicons will start with a random lawset picked from (at the time of writing): P.A.L.A.D.I.N., Corporate, Asimov. More can be added by changing the law datum paths in ai_laws.dm.
|
||||
DEFAULT_LAWS 1
|
||||
|
||||
## Uncoment to give players the choice of their mutantrace before they join the game
|
||||
#JOIN_WITH_MUTANT_RACE
|
||||
Reference in New Issue
Block a user