From 02d6e7a303e8d7203f4228b3acbf11086ab53dc7 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Fri, 5 Jun 2015 12:49:48 +0300 Subject: [PATCH 01/13] Fixes #9605 Now organ DNA is sync'd to newly created character. --- code/modules/mob/living/carbon/human/human.dm | 2 ++ code/modules/mob/living/carbon/human/human_organs.dm | 7 ++++++- code/modules/mob/new_player/new_player.dm | 2 +- code/modules/organs/organ.dm | 6 ++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 10e165fa5fb..9273c3372a0 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -41,7 +41,9 @@ ..() if(dna) + dna.ready_dna(new_character) dna.real_name = real_name + sync_organ_dna() make_blood() /mob/living/carbon/human/Destroy() diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index f2c64fa52ad..2dec075afa6 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -171,4 +171,9 @@ //New are added for reagents to random organs. for(var/datum/reagent/A in reagents.reagent_list) var/obj/item/organ/O = pick(organs) - O.trace_chemicals[A.name] = 100 \ No newline at end of file + O.trace_chemicals[A.name] = 100 + +/mob/living/carbon/human/proc/sync_organ_dna() + var/list/all_bits = internal_organs|organs + for(var/obj/item/organ/O in all_bits) + O.set_dna(dna) \ No newline at end of file diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1e18882137d..8bd0be34bc0 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -467,7 +467,7 @@ new_character.name = real_name new_character.dna.ready_dna(new_character) new_character.dna.b_type = client.prefs.b_type - + new_character.sync_organ_dna() if(client.prefs.disabilities) // Set defer to 1 if you add more crap here so it only recalculates struc_enzymes once. - N3X new_character.dna.SetSEState(GLASSESBLOCK,1,0) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 038a350fb58..7afe7293dd2 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -57,6 +57,12 @@ var/list/organ_cache = list() if(internal) holder.internal_organs |= src +/obj/item/organ/proc/set_dna(var/datum/dna/new_dna) + if(new_dna) + dna = new_dna.Clone() + blood_DNA.Cut() + blood_DNA[dna.unique_enzymes] = dna.b_type + /obj/item/organ/proc/die() if(status & ORGAN_ROBOT) return From 364c2dc01a7aca1625c1367944681623a8aa47c5 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Fri, 5 Jun 2015 13:18:27 +0300 Subject: [PATCH 02/13] Fixes typo. --- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/organs/organ_external.dm | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9273c3372a0..120067144f0 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -41,7 +41,7 @@ ..() if(dna) - dna.ready_dna(new_character) + dna.ready_dna(src) dna.real_name = real_name sync_organ_dna() make_blood() diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index b7541153a50..3ff375faa11 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -613,7 +613,7 @@ Note that amputating the affected organ does in fact remove the infection from t //things tend to bleed if they are CUT OPEN if (open && !clamped && (H && !(H.species.flags & NO_BLOOD))) status |= ORGAN_BLEEDING - + //Bone fractures if(config.bones_can_break && brute_dam > min_broken_damage * config.organ_health_multiplier && !(status & ORGAN_ROBOT)) src.fracture() @@ -908,7 +908,7 @@ Note that amputating the affected organ does in fact remove the infection from t /obj/item/organ/external/proc/is_usable() if((status & ORGAN_ROBOT) && get_damage() >= max_damage) //robot limbs just become inoperable at max damage - return + return return !is_dislocated() && !(status & (ORGAN_DESTROYED|ORGAN_MUTATED|ORGAN_DEAD)) /obj/item/organ/external/proc/is_malfunctioning() @@ -1051,6 +1051,7 @@ Note that amputating the affected organ does in fact remove the infection from t if(6 to INFINITY) flavor_text += "a ton of [wound]\s" return english_list(flavor_text) + /**************************************************** ORGAN DEFINES ****************************************************/ From 3591bd559977f68af34014e0f41ea69cbbc45e4f Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 9 Jun 2015 15:36:27 +0200 Subject: [PATCH 03/13] Travis now builds using version 508.1287 throw is now a keyword. Updates usages where necessary to allow compilation. --- .travis.yml | 4 ++-- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/mob_grab.dm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 81b8487f483..1c6b3ecedce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,8 @@ language: c env: - BYOND_MAJOR="507" - BYOND_MINOR="1282" + BYOND_MAJOR="508" + BYOND_MINOR="1287" before_install: - sudo apt-get update -qq diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 7c3599e726d..5b29fa5130b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -285,7 +285,7 @@ if (istype(item, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = item - item = G.throw() //throw the person instead of the grab + item = G.throw_held() //throw the person instead of the grab if(ismob(item)) var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors var/turf/end_T = get_turf(target) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 2d26f3b6056..f984274cad6 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -41,7 +41,7 @@ ..() //Used by throw code to hand over the mob, instead of throwing the grab. The grab is then deleted by the throw code. -/obj/item/weapon/grab/proc/throw() +/obj/item/weapon/grab/proc/throw_held() if(affecting) if(affecting.buckled) return null From ebc58b08d92b465dedd94c57de1aa0b89d288196 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 9 Jun 2015 16:24:47 +0200 Subject: [PATCH 04/13] Power monitor UI now attempts to get the turf of its host. get_turf() gets upset when attempting to get the loc of the power monitor itself, now being a datum. --- code/modules/nano/modules/power_monitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/nano/modules/power_monitor.dm b/code/modules/nano/modules/power_monitor.dm index 07076fac0ad..9d386e8c932 100644 --- a/code/modules/nano/modules/power_monitor.dm +++ b/code/modules/nano/modules/power_monitor.dm @@ -36,7 +36,7 @@ // Refreshes list of active sensors kept on this computer. /datum/nano_module/power_monitor/proc/refresh_sensors() grid_sensors = list() - var/turf/T = get_turf(src) + var/turf/T = get_turf(nano_host()) for(var/obj/machinery/power/sensor/S in machines) if((T && S.loc.z == T.z) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. if(S.name_tag == "#UNKN#") // Default name. Shouldn't happen! From 1f33ccdfb0cbefc8b57221fed408303cd2ac729c Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 9 Jun 2015 19:58:03 +0200 Subject: [PATCH 05/13] The turret control now glows. --- code/game/machinery/turret_control.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/machinery/turret_control.dm b/code/game/machinery/turret_control.dm index 223b503f4f7..943242d4092 100644 --- a/code/game/machinery/turret_control.dm +++ b/code/game/machinery/turret_control.dm @@ -191,13 +191,17 @@ ..() if(stat & NOPOWER) icon_state = "control_off" + set_light(0) else if (enabled) if (lethal) icon_state = "control_kill" + set_light(1.5, 1,"#990000") else icon_state = "control_stun" + set_light(1.5, 1,"#FF9900") else icon_state = "control_standby" + set_light(1.5, 1,"#003300") /obj/machinery/turretid/emp_act(severity) if(enabled) From 43a1bd0241f268110b6eef66640df8eaffd721c4 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 9 Jun 2015 20:04:00 +0200 Subject: [PATCH 06/13] Changelog entry. --- html/changelogs/PsiOmegaDelta-TurretControlGlow.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/PsiOmegaDelta-TurretControlGlow.yml diff --git a/html/changelogs/PsiOmegaDelta-TurretControlGlow.yml b/html/changelogs/PsiOmegaDelta-TurretControlGlow.yml new file mode 100644 index 00000000000..35a230b9152 --- /dev/null +++ b/html/changelogs/PsiOmegaDelta-TurretControlGlow.yml @@ -0,0 +1,4 @@ +author: PsiOmegaDelta +delete-after: True +changes: + - rscadd: "Turret controls now glow, with the color depending on the current mode." From 399d810dba88647c098666faa64f319bf73028e4 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 9 Jun 2015 20:06:30 +0200 Subject: [PATCH 07/13] Improves turret control NanoUI template. Buttons are now disabled when the appropriate mode is selected, preventing them from turning blue on mouse hover. --- nano/templates/turret_control.tmpl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nano/templates/turret_control.tmpl b/nano/templates/turret_control.tmpl index 4e0e1acc89c..a529bcbb108 100644 --- a/nano/templates/turret_control.tmpl +++ b/nano/templates/turret_control.tmpl @@ -10,8 +10,8 @@ Turret Status:
- {{:helper.link('Enabled', null, {'command' : 'enable', 'value' : 1}, null, data.enabled ?'redButton' : null)}} - {{:helper.link('Disabled',null, {'command' : 'enable', 'value' : 0}, null,!data.enabled ? 'selected' : null)}} + {{:helper.link('Enabled', null, {'command' : 'enable', 'value' : 1}, data.enabled ?'redButton' : null)}} + {{:helper.link('Disabled',null, {'command' : 'enable', 'value' : 0}, !data.enabled ? 'selected' : null)}}
@@ -21,8 +21,8 @@ Lethal Mode:
- {{:helper.link('On', null, {'command' : 'lethal', 'value' : 1}, null, data.lethal ?'redButton' : null)}} - {{:helper.link('Off',null, {'command' : 'lethal', 'value' : 0}, null,!data.lethal ? 'selected' : null)}} + {{:helper.link('On', null, {'command' : 'lethal', 'value' : 1}, data.lethal ?'redButton' : null)}} + {{:helper.link('Off',null, {'command' : 'lethal', 'value' : 0}, !data.lethal ? 'selected' : null)}}
{{/if}} @@ -33,8 +33,8 @@ {{:value.category}}
- {{:helper.link('On', null, {'command' : value.setting, 'value' : 1}, null, value.value ? 'selected' : null)}} - {{:helper.link('Off',null, {'command' : value.setting, 'value' : 0}, null,!value.value ? 'selected' : null)}} + {{:helper.link('On', null, {'command' : value.setting, 'value' : 1}, value.value ? 'selected' : null)}} + {{:helper.link('Off',null, {'command' : value.setting, 'value' : 0}, !value.value ? 'selected' : null)}}
{{/for}} From 581c9b13080e40da32f0938fbecfae9b23ca2ea2 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 9 Jun 2015 20:14:05 +0200 Subject: [PATCH 08/13] Fixes admin jumps. Changes the checks and message target around, now targets usr instead of src. --- code/modules/admin/verbs/adminjump.dm | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 1ff9a1d1cc6..e84543e88f4 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -8,8 +8,8 @@ set name = "Jump to Area" set desc = "Area to jump to" set category = "Admin" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if(config.allow_admin_jump) @@ -25,8 +25,8 @@ /client/proc/jumptoturf(var/turf/T in world) set name = "Jump to Turf" set category = "Admin" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if(config.allow_admin_jump) log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") @@ -42,8 +42,8 @@ set category = "Admin" set name = "Jump to Mob" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if(config.allow_admin_jump) @@ -65,8 +65,8 @@ set category = "Admin" set name = "Jump to Coordinate" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if (config.allow_admin_jump) @@ -86,8 +86,8 @@ set category = "Admin" set name = "Jump to Key" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if(config.allow_admin_jump) @@ -111,8 +111,8 @@ set category = "Admin" set name = "Get Mob" set desc = "Mob to teleport" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if(config.allow_admin_jump) log_admin("[key_name(usr)] teleported [key_name(M)]") @@ -128,8 +128,8 @@ set name = "Get Key" set desc = "Key to teleport" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return if(config.allow_admin_jump) @@ -155,8 +155,8 @@ /client/proc/sendmob(var/mob/M in sortmobs()) set category = "Admin" set name = "Send Mob" - if(!check_rights(R_ADMIN, user = src)) - src << "Only administrators may use this command." + if(!check_rights(R_ADMIN)) + usr << "Only administrators may use this command." return var/area/A = input(usr, "Pick an area.", "Pick an area") in return_sorted_areas() if(A) From 17488168ab3b53d08c7bf40d9f16835198f64234 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Jun 2015 18:49:09 -0500 Subject: [PATCH 09/13] Fixes for #9731 and #9469. --- .../objects/items/weapons/grenades/chem_grenade.dm | 8 ++++++++ code/game/objects/items/weapons/grenades/grenade.dm | 10 ++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index bb440d1215a..b07707107ce 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -5,6 +5,7 @@ desc = "A hand made chemical grenade." w_class = 2.0 force = 2.0 + det_time = null var/stage = 0 var/state = 0 var/path = 0 @@ -25,6 +26,7 @@ detonator.detached() usr.put_in_hands(detonator) detonator=null + det_time = null stage=0 icon_state = initial(icon_state) else if(beakers.len) @@ -60,6 +62,12 @@ user.remove_from_mob(det) det.loc = src detonator = det + if(istimer(detonator.a_left)) + var/obj/item/device/assembly/timer/T = detonator.a_left + det_time = 10*T.time + if(istimer(detonator.a_right)) + var/obj/item/device/assembly/timer/T = detonator.a_right + det_time = 10*T.time icon_state = initial(icon_state) +"_ass" name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]" stage = 1 diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index f5017538072..1565d321b67 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -47,6 +47,8 @@ if(det_time > 1) user << "The timer is set to [det_time/10] seconds." return + if(det_time == null) + return user << "\The [src] is set for instant detonation." @@ -89,16 +91,16 @@ /obj/item/weapon/grenade/attackby(obj/item/weapon/W as obj, mob/user as mob) if(isscrewdriver(W)) switch(det_time) - if ("1") + if (1) det_time = 10 user << "You set the [name] for 1 second detonation time." - if ("10") + if (10) det_time = 30 user << "You set the [name] for 3 second detonation time." - if ("30") + if (30) det_time = 50 user << "You set the [name] for 5 second detonation time." - if ("50") + if (50) det_time = 1 user << "You set the [name] for instant detonation." add_fingerprint(user) From b1368fb71205d57245b3600d4e44bb26935adfa0 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Jun 2015 19:51:33 -0500 Subject: [PATCH 10/13] Changes chemgrenade time in description to be correct after failed detonation. --- code/game/objects/items/weapons/grenades/chem_grenade.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index b07707107ce..d90f76771ae 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -151,6 +151,13 @@ if(!has_reagents) icon_state = initial(icon_state) +"_locked" playsound(src.loc, 'sound/items/Screwdriver2.ogg', 50, 1) + spawn(0.001) //Otherwise det_time is erroneously set to 0 after this + if(istimer(detonator.a_left)) //Make sure description reflects that the timer has been reset + var/obj/item/device/assembly/timer/T = detonator.a_left + det_time = 10*T.time + if(istimer(detonator.a_right)) + var/obj/item/device/assembly/timer/T = detonator.a_right + det_time = 10*T.time return playsound(src.loc, 'sound/effects/bamf.ogg', 50, 1) From 2dbd0ac007209b54df5cf4befe6c5c1ef204eaa2 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Jun 2015 22:02:14 -0500 Subject: [PATCH 11/13] Fixes formatting for spawn() before updating description. --- .../objects/items/weapons/grenades/chem_grenade.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index d90f76771ae..d181fa38c29 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -152,12 +152,12 @@ icon_state = initial(icon_state) +"_locked" playsound(src.loc, 'sound/items/Screwdriver2.ogg', 50, 1) spawn(0.001) //Otherwise det_time is erroneously set to 0 after this - if(istimer(detonator.a_left)) //Make sure description reflects that the timer has been reset - var/obj/item/device/assembly/timer/T = detonator.a_left - det_time = 10*T.time - if(istimer(detonator.a_right)) - var/obj/item/device/assembly/timer/T = detonator.a_right - det_time = 10*T.time + if(istimer(detonator.a_left)) //Make sure description reflects that the timer has been reset + var/obj/item/device/assembly/timer/T = detonator.a_left + det_time = 10*T.time + if(istimer(detonator.a_right)) + var/obj/item/device/assembly/timer/T = detonator.a_right + det_time = 10*T.time return playsound(src.loc, 'sound/effects/bamf.ogg', 50, 1) From 13a43e6cfd14cf5c876110ec950d09b0de71df4c Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Jun 2015 22:35:16 -0500 Subject: [PATCH 12/13] Changes description update spawn() to use 0 instead of small decimal. --- code/game/objects/items/weapons/grenades/chem_grenade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index d181fa38c29..34dab3bc6e1 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -151,7 +151,7 @@ if(!has_reagents) icon_state = initial(icon_state) +"_locked" playsound(src.loc, 'sound/items/Screwdriver2.ogg', 50, 1) - spawn(0.001) //Otherwise det_time is erroneously set to 0 after this + spawn(0) //Otherwise det_time is erroneously set to 0 after this if(istimer(detonator.a_left)) //Make sure description reflects that the timer has been reset var/obj/item/device/assembly/timer/T = detonator.a_left det_time = 10*T.time From 58d512d1e6a21f6cbc74190e1f5b4801d79d690e Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 10 Jun 2015 00:49:26 -0400 Subject: [PATCH 13/13] Fixes tajaran name generation, tweaks --- code/modules/mob/language/station.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index d5900769b35..82ee92232d7 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -41,18 +41,18 @@ colour = "tajaran" key = "j" flags = WHITELISTED - syllables = list("rr","rr","tajr","kir","raj","kii","mir","kra","ahk","nal","vah","khaz","jri","ran","darr", \ - "mi","jri","dynh","manq","rhe","zar","rrhaz","kal","chur","eech","thaa","dra","jurl","mah","sanu","dra","ii'r", \ - "ka","aasi","far","wa","baq","ara","qara","zir","sam","mak","hrar","nja","rir","khan","jun","dar","rik","kah", \ - "hal","ket","jurl","mah","tul","cresh","azu","ragh", "mro", "mra") + syllables = list("mrr","rr","tajr","kir","raj","kii","mir","kra","ahk","nal","vah","khaz","jri","ran","darr", + "mi","jri","dynh","manq","rhe","zar","rrhaz","kal","chur","eech","thaa","dra","jurl","mah","sanu","dra","ii'r", + "ka","aasi","far","wa","baq","ara","qara","zir","sam","mak","hrar","nja","rir","khan","jun","dar","rik","kah", + "hal","ket","jurl","mah","tul","cresh","azu","ragh","mro","mra","mrro","mrra") /datum/language/tajaran/get_random_name(var/gender) var/new_name = ..(gender,1) - if(prob(80)) - new_name += " [pick(list("Hadii","Kaytam","Zhan-Khazan","Hharar","Njarir'Akhan"))]" + if(prob(50)) + new_name += " [pick(list("Hadii","Kaytam","Nazkiin","Zhan-Khazan","Hharar","Njarir'Akhan","Faaira'Nrezi","Rhezar","Mi'dynh","Rrhazkal","Bayan","Al'Manq","Mi'jri","Chur'eech","Sanu'dra","Ii'rka"))]" else - new_name += ..(gender,1) + new_name += " [..(gender,1)]" return new_name /datum/language/skrell