From 19efa2ae5b16f512059c7c5da947fc98ca816cad Mon Sep 17 00:00:00 2001 From: Leshana Date: Wed, 15 Feb 2017 21:04:53 -0500 Subject: [PATCH 1/6] Jukeboxes are coded to have hackable wires, but don't respond to wirecutters or multitools. Fix that. --- code/game/machinery/jukebox.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index cd2346a32c..6fb8f90a41 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -78,6 +78,10 @@ datum/track/New(var/title_name, var/audio) return if(default_deconstruction_crowbar(user, W)) return + if(istype(W, /obj/item/weapon/wirecutters)) + return wires.Interact(user) + if(istype(W, /obj/item/device/multitool)) + return wires.Interact(user) if(istype(W, /obj/item/weapon/wrench)) if(playing) StopPlaying() From 26b2ce1f4d60e01ea43a315b0df044634ebf912b Mon Sep 17 00:00:00 2001 From: Leshana Date: Thu, 9 Feb 2017 14:59:04 -0500 Subject: [PATCH 2/6] Fix formatting of security and medical notes in PDA. * Line beaks were being smooshed becuase PDA nanoui uses HTML template. Fixed by adding white-space: pre-wrap style. --- nano/css/shared.css | 4 ++++ nano/templates/pai_medrecords.tmpl | 2 +- nano/templates/pai_secrecords.tmpl | 2 +- nano/templates/pda.tmpl | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/nano/css/shared.css b/nano/css/shared.css index 8728102b08..dc6089716d 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -212,6 +212,10 @@ h4 { font-size: 10px; } +.multiLine { + white-space: pre-wrap; +} + .noticePlaceholder { position: relative; font-size: 12px; diff --git a/nano/templates/pai_medrecords.tmpl b/nano/templates/pai_medrecords.tmpl index 37b1d7061c..89926d3915 100644 --- a/nano/templates/pai_medrecords.tmpl +++ b/nano/templates/pai_medrecords.tmpl @@ -75,7 +75,7 @@ code/modules/mob/living/silicon/pai/software_modules.dm
Important Notes
-
{{:data.medical.notes}}
+
{{:data.medical.notes}}
{{/if}} diff --git a/nano/templates/pai_secrecords.tmpl b/nano/templates/pai_secrecords.tmpl index e139034c0d..51cb45dee2 100644 --- a/nano/templates/pai_secrecords.tmpl +++ b/nano/templates/pai_secrecords.tmpl @@ -65,7 +65,7 @@ code/modules/mob/living/silicon/pai/software_modules.dm
Important Notes
-
{{:data.security.notes}}
+
{{:data.security.notes}}
{{/if}} diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl index 396cf8e34f..6cd3004654 100644 --- a/nano/templates/pda.tmpl +++ b/nano/templates/pda.tmpl @@ -591,7 +591,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm Details: {{:data.records.medical.alg_d}}

Current Disease: {{:data.records.medical.cdi}}
Details: {{:data.records.medical.alg_d}}

- Important Notes: {{:data.records.medical.notes}} + Important Notes: {{:data.records.medical.notes}} {{else}} Medical Record Lost! @@ -643,7 +643,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm Details: {{:data.records.security.mi_crim_d}}

Major Crimes: {{:data.records.security.ma_crim}}
Details: {{:data.records.security.ma_crim_d}}

- Important Notes: {{:data.records.security.notes}} + Important Notes: {{:data.records.security.notes}} {{else}} Security Record Lost!

From dbd3622588c67ea499422e06c1a449b063a7b8f5 Mon Sep 17 00:00:00 2001 From: Leshana Date: Tue, 21 Feb 2017 17:20:51 -0500 Subject: [PATCH 3/6] Enhances the Paper Shredder * Makes the paper shredder constructable and deconstructable. * Switches to some new sprites which are animated! * Machine now requires power, icons respond to power on/off etc. --- code/datums/autolathe/engineering.dm | 4 + .../circuitboards/machinery/papershredder.dm | 13 +++ code/modules/paperwork/papershredder.dm | 86 ++++++++++++++---- icons/obj/papershredder.dmi | Bin 0 -> 2762 bytes polaris.dme | 1 + 5 files changed, 86 insertions(+), 18 deletions(-) create mode 100644 code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm create mode 100644 icons/obj/papershredder.dmi diff --git a/code/datums/autolathe/engineering.dm b/code/datums/autolathe/engineering.dm index ce6b5f07b5..0921806ac0 100644 --- a/code/datums/autolathe/engineering.dm +++ b/code/datums/autolathe/engineering.dm @@ -58,6 +58,10 @@ name = "fax machine electronics" path =/obj/item/weapon/circuitboard/fax +/datum/category_item/autolathe/engineering/papershredder + name = "paper shredder electronics" + path =/obj/item/weapon/circuitboard/papershredder + /datum/category_item/autolathe/engineering/microwave name = "microwave electronics" path =/obj/item/weapon/circuitboard/microwave diff --git a/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm b/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm new file mode 100644 index 0000000000..ef4575bafb --- /dev/null +++ b/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm @@ -0,0 +1,13 @@ +#ifndef T_BOARD +#error T_BOARD macro is not defined but we need it! +#endif + +/obj/item/weapon/circuitboard/papershredder + name = T_BOARD("papershredder") + build_path = /obj/machinery/papershredder + board_type = new /datum/frame/frame_types/machine + matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) + req_components = list( + /obj/item/weapon/stock_parts/motor = 1, + /obj/item/weapon/stock_parts/gear = 2, + /obj/item/weapon/stock_parts/micro_laser = 1) diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm index 48e95071c5..3283e67f7d 100644 --- a/code/modules/paperwork/papershredder.dm +++ b/code/modules/paperwork/papershredder.dm @@ -1,10 +1,19 @@ +// +// Paper Shredder Machine +// /obj/machinery/papershredder name = "paper shredder" desc = "For those documents you don't want seen." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "papershredder0" + icon = 'icons/obj/papershredder.dmi' + icon_state = "shredder-off" + var/shred_anim = "shredder-shredding" density = 1 anchored = 1 + use_power = 1 + idle_power_usage = 10 + active_power_usage = 200 + power_channel = EQUIP + circuit = /obj/item/weapon/circuitboard/papershredder var/max_paper = 10 var/paperamount = 0 var/list/shred_amounts = list( @@ -16,17 +25,40 @@ /obj/item/weapon/paper_bundle = 3, ) +/obj/machinery/papershredder/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/motor(src) + component_parts += new /obj/item/weapon/stock_parts/gear(src) + component_parts += new /obj/item/weapon/stock_parts/gear(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + RefreshParts() + update_icon() + /obj/machinery/papershredder/attackby(var/obj/item/W, var/mob/user) if(istype(W, /obj/item/weapon/storage)) empty_bin(user, W) return + else if(istype(W, /obj/item/weapon/wrench)) + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + anchored = !anchored + user << "You [anchored ? "wrench" : "unwrench"] \the [src]." + return + else if(default_part_replacement(user, W)) + return + else if(default_deconstruction_screwdriver(user, W)) + return + else if(default_deconstruction_crowbar(user, W)) + return else var/paper_result for(var/shred_type in shred_amounts) if(istype(W, shred_type)) paper_result = shred_amounts[shred_type] if(paper_result) + if(inoperable()) + return // Need powah! if(paperamount == max_paper) user << "\The [src] is full; please empty it before you continue." return @@ -34,6 +66,7 @@ user.drop_from_inventory(W) qdel(W) playsound(src.loc, 'sound/items/pshred.ogg', 75, 1) + flick(shred_anim, src) if(paperamount > max_paper) user <<"\The [src] was too full, and shredded paper goes everywhere!" for(var/i=(paperamount-max_paper);i>0;i--) @@ -92,8 +125,40 @@ paperamount-- return PoolOrNew(/obj/item/weapon/shreddedp, get_turf(src)) +/obj/machinery/papershredder/power_change() + ..() + spawn(rand(0,15)) + update_icon() + /obj/machinery/papershredder/update_icon() - icon_state = "papershredder[max(0,min(5,Floor(paperamount/2)))]" + overlays.Cut() + if(operable()) + icon_state = "shredder-on" + else + icon_state = "shredder-off" + // Fullness overlay + overlays += "shredder-[max(0,min(5,Floor(paperamount/max_paper*5)))]" + if (panel_open) + overlays += "panel_open" + +// +// Shredded Paper Item +// + +/obj/item/weapon/shreddedp + name = "shredded paper" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "shredp" + throwforce = 0 + w_class = ITEMSIZE_TINY + throw_range = 3 + throw_speed = 1 + +/obj/item/weapon/shreddedp/New() + ..() + pixel_x = rand(-5,5) + pixel_y = rand(-5,5) + if(prob(65)) color = pick("#BABABA","#7F7F7F") /obj/item/weapon/shreddedp/attackby(var/obj/item/W as obj, var/mob/user) if(istype(W, /obj/item/weapon/flame/lighter)) @@ -122,18 +187,3 @@ M.drop_from_inventory(src) PoolOrNew(/obj/effect/decal/cleanable/ash,get_turf(src)) qdel(src) - -/obj/item/weapon/shreddedp - name = "shredded paper" - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "shredp" - throwforce = 0 - w_class = ITEMSIZE_TINY - throw_range = 3 - throw_speed = 1 - -/obj/item/weapon/shreddedp/New() - ..() - pixel_x = rand(-5,5) - pixel_y = rand(-5,5) - if(prob(65)) color = pick("#BABABA","#7F7F7F") diff --git a/icons/obj/papershredder.dmi b/icons/obj/papershredder.dmi new file mode 100644 index 0000000000000000000000000000000000000000..36764945df75a30b120ae52b4b3e081c738e255a GIT binary patch literal 2762 zcma)8dpMM7AAYAiDXRH!xbp+Soz z$3INf0#pzGvo*E*$aBs|jhN?SJQ8XuR}x|$ zg_56wO;dA0k^5XTECQ0|dY|JiN!`fck=_eAJ^ol%C{m}lS$7Mq$zqR*Q4+&m|Ha&$ z;^WoiUe!n8uqHyA3RD}Cm%HVh&ytztrlwofL3Y;xK$hlgcfdV5Z$6(CsQk0mbE
w?wUvgp=PfnS;H(v3&nCsHYu27ZlF{Enallk>U9 z47xP;)bJg=V!RGg?Dg~XTJI-5L^#)L=Qadgrm4P3$%)wca!sVWYJV{_Z35G5@10)Cj5uR`Qq= z301i5gH#@mH^l!u2?rX8gVeUU@%rvB0tL7+4o9u8CR$!vcpW4dooKl{n`)g63VOA$ zVQ+06gqQvAt@ncA;ok%3kPf;oU}9o2_VMF+z!r@dux^0F;2g72NnT#Qq>;nn$b7RY zn!k|0KwFC5P9ze?{f6i43#jXU>#?3*xIEeYrlv*p^+PpuBe8cuPR>6%Uz+K-+_b*T zQ)`tUaG_7G8#QH#fJW*|2VLM}+aEduGUEAH1r?aa5Z$m`vHYxYdQ)Q54yBW5UiUQOs(; zMjL5)JuHr#i|8?tD>LcC+FRF`txt8#lI(VgDQ*P@+`gSya7$uf_$ zYSuP7dMDIEO<_l-(|ZaNWFm!+@9k-9$i7%xy)sKfJj!`Sp{N)b8Wt87J{f-gy9=~S z{07_TM-UTh1{LWQN3=aDZb^K$UIdY-7!ne4$8&)N3qs1JbWSDl2VEeGQ!TGh8vwP7GQORk zXNC$wOYedL4g;Tjoy7KmIw-zgWX;U zp}$UCRjFRpO>ejmsfjP3g1ykfT1SQ(y`sCYK0Tk@n_l)X178|Ba!%rd!}Nu%_lt`= z7)ch15>`s4=`cC^RsCyrJI+{SaR;lqNa_IgOSox~gn~s&gkZ*tWu`#Rc|8r9fBGC~7vnmnMW zsHl=Kg9ZktnHvI4R{LLDsCG=(`f#2<^eJ}Tn{#qOTK_w7Hlr_=7tF(8FtZfVVpK%L z+3R<+f7l7%B7nW-)uPBC1N0KY=6V83sbCg3B8176aaR|)BNUwXHK%n$A#A#oDgwBJ zpZ#!TQ>y4oqDkgOHYUlvr*xzQUY?g;6)gTdLE8oghJ;G)5H7xgbfx}fbK+E)=$}d? zQ+1{bogo7II!7kR?kgUA_}Uax_f3T|T`&7!v^DCqyf2NOe0ufG9T(EI@@#?5p6*@u zzrcfqu=VH%T9RO`xIg+<9$N&2_60<}!@Wfs9N86LO($^jcVXwJN%T1>w zCMXkaQ4v~HeQXa|KZavxi9cp1=)$LqQ7el(3%aU^35TIwR`b%vLS3%E%~~%;S_k;0 zztf8*en1d!e0n_d1qt`|G%o%g2$+4WWiC;%5E2OE_f@47*2TdMN`I6zb+nv*Ud)NL@A_6N&6ID!#og!ntr z|6&P$8mi#bgL5`klJ`Op!h(rkXI}v)mq9Y7Bq39yB?Uj<@H@NxqWIir`m6|G8CY^i zd*W=GncxBxIsfOAGzeh9L0=&nT4gR?w84tFZ)HKGB#{%aUKy1;*%Ta+QN=nsTf9m~BbD$C3)NDHfWfVtycM z!roP}!=Z=op2tR;6fyLZlFaBYG}J2{2RZD!(N6QOM@0bMdFSnwkFPd2kg!*BN3h!~ zx*u-p!ng}XG18tt+VkPZKfK7)kulxRdix|n4TWN}#lL>Hjj7~&tu~;4ct6!VzC>Ed zc<ovP)s@q2GpMH5;uePG1 zg2Jv Date: Wed, 22 Feb 2017 17:21:40 -0500 Subject: [PATCH 4/6] Fixed broken icon states on jukebox. * Code referred to icon_state "panel_open" but was missing from the dmi. I had a copy of it from elsewhere, so added it in. * It wasn't calling update_icon() on New() so newly constructed jukeboxes started off looking unpowered. Fixed. --- code/game/machinery/jukebox.dm | 1 + icons/obj/jukebox.dmi | Bin 7659 -> 7870 bytes 2 files changed, 1 insertion(+) diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 6fb8f90a41..30f5cc2273 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -55,6 +55,7 @@ datum/track/New(var/title_name, var/audio) component_parts += new /obj/item/stack/cable_coil(src, 5) RefreshParts() wires = new/datum/wires/jukebox(src) + update_icon() /obj/machinery/media/jukebox/Destroy() StopPlaying() diff --git a/icons/obj/jukebox.dmi b/icons/obj/jukebox.dmi index 910904970424f60e49b47581930725cd69d90311..52386940e9819a4b76d794f9ede58d51f665859c 100644 GIT binary patch literal 7870 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 From d7b82fc7196862ac22744e1972c87607ac4f39b9 Mon Sep 17 00:00:00 2001 From: Leshana Date: Wed, 22 Feb 2017 17:27:24 -0500 Subject: [PATCH 5/6] Added new "default_apply_parts" facility to machines to create default parts. * Every constructable machine with a circuit board needs to create its required parts in its constructor. These parts must be the same parts specified in the machine's circuit board, otherwise you get the wrong parts when you deconstruct. This creates an opportunity for error which we can eliminate by reading the circuit board's part list and just adding those to the machine directly! Plus its less tedious. * Implemented it on the jukebox. --- code/game/machinery/jukebox.dm | 6 +----- code/game/machinery/machinery.dm | 7 +++++++ .../weapons/circuitboards/circuitboard.dm | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 30f5cc2273..71482abb33 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -49,11 +49,7 @@ datum/track/New(var/title_name, var/audio) /obj/machinery/media/jukebox/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - RefreshParts() + default_apply_parts() wires = new/datum/wires/jukebox(src) update_icon() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index d3107869ce..b0946bf347 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -283,6 +283,13 @@ Class Procs: return 1 return 0 +/obj/machinery/proc/default_apply_parts() + var/obj/item/weapon/circuitboard/CB = circuit + if(!istype(CB)) + return + CB.apply_default_parts(src) + RefreshParts() + /obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R) if(!istype(R)) return 0 diff --git a/code/game/objects/items/weapons/circuitboards/circuitboard.dm b/code/game/objects/items/weapons/circuitboards/circuitboard.dm index f17ee1c292..d6cb806586 100644 --- a/code/game/objects/items/weapons/circuitboards/circuitboard.dm +++ b/code/game/objects/items/weapons/circuitboards/circuitboard.dm @@ -35,3 +35,22 @@ if(istype(M, build_path)) return 1 return 0 + +//Should be called from the constructor of any machine to automatically populate the default parts +/obj/item/weapon/circuitboard/proc/apply_default_parts(var/obj/machinery/M) + if(!istype(M)) + return + if(!req_components) + return + M.component_parts = list() + for(var/comp_path in req_components) + var/comp_amt = req_components[comp_path] + if(!comp_amt) + continue + + if(ispath(comp_path, /obj/item/stack)) + M.component_parts += new comp_path(contain_parts ? M : null, comp_amt) + else + for(var/i in 1 to comp_amt) + M.component_parts += new comp_path(contain_parts ? M : null) + return From e0ef593ce43c8c087cf1b24e27858ecc9f703daa Mon Sep 17 00:00:00 2001 From: nachomeep Date: Thu, 23 Feb 2017 16:17:14 -0500 Subject: [PATCH 6/6] Updates language syllables and text. (#3000) * Adds a lot of languages. * Removes the languages I just added. Instead updates old ones. * Fixes a minor typo. * how the hell did i accidentally remove sinta'unathi Returns that stuff. * Fixes two things. * doesnt actually change name length --- code/__defines/species_languages.dm | 2 +- code/modules/mob/language/generic.dm | 4 +-- code/modules/mob/language/station.dm | 46 +++++++++++++++++++++++----- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index 957a690f4f..4e5b6d6dfb 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -30,7 +30,7 @@ #define LANGUAGE_SOL_COMMON "Sol Common" #define LANGUAGE_UNATHI "Sinta'unathi" #define LANGUAGE_SIIK "Siik" -#define LANGUAGE_SKRELLIAN "Skrellian" +#define LANGUAGE_SKRELLIAN "Common Skrellian" #define LANGUAGE_TRADEBAND "Tradeband" #define LANGUAGE_GUTTER "Gutter" #define LANGUAGE_SIGN "Sign Language" diff --git a/code/modules/mob/language/generic.dm b/code/modules/mob/language/generic.dm index 7df164c821..ce0abbb948 100644 --- a/code/modules/mob/language/generic.dm +++ b/code/modules/mob/language/generic.dm @@ -21,12 +21,12 @@ // 'basic' language; spoken by default. /datum/language/common name = LANGUAGE_GALCOM - desc = "The common galactic tongue." + desc = "The common galactic tongue, engineered for cross-species communication." speech_verb = "says" whisper_verb = "whispers" key = "0" flags = RESTRICTED - syllables = list("blah","blah","blah","bleh","meh","neh","nah","wah") + syllables = list("vol", "zum", "coo","zoo","bi","do","ooz","ite","og","re","si","ite","ish","ar","at","on","ee","east","ma","da", "rim") //TODO flag certain languages to use the mob-type specific say_quote and then get rid of these. /datum/language/common/get_spoken_verb(var/msg_end) diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index b69c9cca5f..8e2f2987c9 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -72,24 +72,25 @@ /datum/language/skrell name = LANGUAGE_SKRELLIAN - desc = "A melodic and complex language spoken by the Skrell of Qerrbalak. Some of the notes are inaudible to humans." + desc = "A set of warbles and hums, the language itself a complex mesh of both melodic and rhythmic components, exceptionally capable of conveying intent and emotion of the speaker." speech_verb = "warbles" ask_verb = "warbles" - exclaim_verb = "warbles" + exclaim_verb = "sings" + whisper_verb = "hums" colour = "skrell" key = "k" + space_chance = 30 flags = WHITELISTED - syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!") + syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!", "'") /datum/language/human name = LANGUAGE_SOL_COMMON - desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system." + desc = "A bastardized hybrid of many languages, including Chinese, English, French, and more; it is the common language of the Sol system." speech_verb = "says" whisper_verb = "whispers" colour = "solcom" key = "1" flags = WHITELISTED - //syllables are at the bottom of the file /datum/language/human/get_spoken_verb(var/msg_end) @@ -118,7 +119,7 @@ colour = "changeling" key = "6" flags = NO_STUTTER - syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz") + syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz","shh","shk") space_chance = 10 /datum/language/machine/can_speak_special(var/mob/speaker) @@ -155,9 +156,13 @@ /* This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed, and the english syllables had to be duplicated so that there is roughly a 50-50 weighting. + The other 3 languages were duplicated just so they could show occasionally. Sources: http://www.sttmedia.com/syllablefrequency-english + http://www.sttmedia.com/syllablefrequency-spanish + http://www.sttmedia.com/syllablefrequency-russian + http://www.sttmedia.com/syllablefrequency-french http://www.chinahighlights.com/travelguide/learning-chinese/pinyin-syllables.htm */ /datum/language/human/syllables = list( @@ -210,4 +215,31 @@ "al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it", "le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to", "ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin", -"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi") +"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi", +"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to", +"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne", +"ion", "ne", "nas", "v", +"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to", +"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne", +"ion", "ne", "nas", "v", +"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to", +"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne", +"ion", "ne", "nas", "v", +"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le", +"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve", +"tou", "e", "eve", "hen", "son", "non", "not", "le", +"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le", +"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve", +"tou", "e", "eve", "hen", "son", "non", "not", "le", +"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le", +"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve", +"tou", "e", "eve", "hen", "son", "non", "not", "le", +"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na", +"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un", +"tod", "ser", "su", "no", "nue", "el", +"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na", +"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un", +"tod", "ser", "su", "no", "nue", "el", +"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na", +"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un", +"tod", "ser", "su", "no", "nue", "el") \ No newline at end of file