From 9cac961ba36f8ebf46bdad4456b6be051833d6b8 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Mon, 14 Oct 2019 10:27:09 -0400 Subject: [PATCH 1/6] Halloween lava dwarves --- code/__DEFINES/is_helpers.dm | 1 + .../carbon/human/species_types/dwarves.dm | 218 +++ strings/dwarf_replacement.json | 1461 +++++++++++++++++ strings/names/dwarf_first.txt | 42 + strings/names/dwarf_last.txt | 45 + tgstation.dme | 1 + 6 files changed, 1768 insertions(+) create mode 100644 code/modules/mob/living/carbon/human/species_types/dwarves.dm create mode 100644 strings/dwarf_replacement.json create mode 100644 strings/names/dwarf_first.txt create mode 100644 strings/names/dwarf_last.txt diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 8dc7464230..1709714904 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -59,6 +59,7 @@ #define ismoth(A) (is_species(A, /datum/species/insect)) #define ishumanbasic(A) (is_species(A, /datum/species/human)) #define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) ) +#define isdwarf(A) (is_species(A, /datum/species/dwarf)) //more carbon mobs #define ismonkey(A) (istype(A, /mob/living/carbon/monkey)) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm new file mode 100644 index 0000000000..6ef79804b5 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -0,0 +1,218 @@ + +GLOBAL_LIST_INIT(dwarf_first, world.file2list("strings/names/dwarf_first.txt")) //Textfiles with first +GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //textfiles with last + +/datum/species/dwarf //not to be confused with the genetic manlets + name = "Dwarf" + id = "dwarf" //Also called Homo sapiens pumilionis + default_color = "FFFFFF" + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR) + //they can grab burning objects and get hurt, and jump straight to aggro grab. + inherent_traits = list() + default_features = list("mcolor" = "FFF", "wings" = "None") + limbs_id = "human" + use_skintones = 1 + say_mod = "bellows" //high energy, EXTRA BIOLOGICAL FUEL + damage_overlay_type = "human" + skinned_type = /obj/item/stack/sheet/animalhide/human + liked_food = ALCOHOL | MEAT | DAIRY //Dwarves like alcohol, meat, and dairy products. + disliked_food = JUNKFOOD | FRIED //Dwarves hate foods that have no nutrition other than alcohol. + mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior + mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed) + + //Pixel X, and Pixel Y offsets on mob drawing. It handles the offset in update_icons.dm + //X is Horizontal, Y is Vertical. These are general offsets, directional offsets do not exist. + offset_features = list( + OFFSET_UNIFORM = list(0,0), + OFFSET_ID = list(0,0), + OFFSET_GLOVES = list(0,0), + OFFSET_GLASSES = list(0,0), + OFFSET_EARS = list(0,0), + OFFSET_SHOES = list(0,0), + OFFSET_S_STORE = list(0,0), + OFFSET_FACEMASK = list(0,0), + OFFSET_HEAD = list(0,0), + OFFSET_HAIR = list(0,0), + OFFSET_FHAIR = list(0,0), + OFFSET_EYES = list(0,0), + OFFSET_LIPS = list(0,0), + OFFSET_BELT = list(0,0), + OFFSET_BACK = list(0,0), + OFFSET_SUIT = list(0,0), + OFFSET_NECK = list(0,0), + OFFSET_MUTPARTS = list(0,0) + ) + +/mob/living/carbon/human/species/dwarf //species admin spawn path + race = /datum/species/dwarf //and the race the path is set to. + +/datum/species/dwarf/check_roundstart_eligible() + if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) + return TRUE + return ..() + +/datum/species/dwarf/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Moonshiner)") //beard roullette + var/mob/living/carbon/human/H = C + H.facial_hair_style = dwarf_hair + H.update_hair() + H.transform = H.transform.Scale(1, 0.8) //We use scale, and yeah. Dwarves can become gnomes with DWARFISM. + RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used. + + +/datum/species/dwarf/on_species_loss(mob/living/carbon/H, datum/species/new_species) + . = ..() + H.transform = H.transform.Scale(1, 1.25) //And we undo it. + UnregisterSignal(H, COMSIG_MOB_SAY) //We register handle_speech is not being used. + +//Dwarf Name stuff +/proc/dwarf_name() //hello caller: my name is urist mcuristurister + return "[pick(GLOB.dwarf_first)] [pick(GLOB.dwarf_last)]" + +/datum/species/dwarf/random_name(gender,unique,lastname) + return dwarf_name() //hello, ill return the value from dwarf_name proc to you when called. + +//Dwarf Speech handling - Basically a filter/forces them to say things. The IC helper +/datum/species/dwarf/proc/handle_speech(datum/source, list/speech_args) + var/message = speech_args[SPEECH_MESSAGE] + if(message[1] != "*") + message = " [message]" //Credits to goonstation for the strings list. + var/list/dwarf_words = strings("dwarf_replacement.json", "dwarf") //thanks to regex too. + + for(var/key in dwarf_words) //Theres like 1459 words or something man. + var/value = dwarf_words[key] //Thus they will always be in character. + if(islist(value)) //Whether they like it or not. + value = pick(value) //This could be drastically reduced if needed though. + + message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") + message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") + message = replacetextEx(message, " [key]", " [value]") //Also its scottish. + + if(prob(3)) + message += pick(" By Armok!") + speech_args[SPEECH_MESSAGE] = trim(message) + +//This mostly exists because my testdwarf's liver died while trying to also not die due to no alcohol. +/obj/item/organ/liver/dwarf + name = "dwarf liver" + icon_state = "liver" + desc = "A dwarven liver, theres something magical about seeing one of these up close." + alcohol_tolerance = 0 //dwarves really shouldn't be dying to alcohol. + toxTolerance = 5 //Shrugs off 5 units of toxins damage. + maxHealth = 150 //More health than the average liver, as you aren't going to be replacing this. + //If it does need replaced with a standard human liver, prepare for hell. + +//alcohol gland +/obj/item/organ/dwarfgland + name = "dwarf alcohol gland" + icon_state = "plasma" //Yes this is a actual icon in icons/obj/surgery.dmi + desc = "A genetically engineered gland which is hopefully a step forward for humanity." + w_class = WEIGHT_CLASS_NORMAL + var/stored_alcohol = 250 //They start with 250 units, that ticks down and eventaully bad effects occur + var/max_alcohol = 500 //Max they can attain, easier than you think to OD on alcohol. + var/heal_rate = 0.5 //The rate they heal damages over 400 alcohol stored. Default is 0.5 so we times 3 since 3 seconds. + var/alcohol_rate = 10 //Its times 0.025 making it tick down by .25 per loop per 10. EX: 20 = .50 + var/filth_counter = 0 //Holder for the filth check cycle, basically it compares against this. + //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. + var/dwarf_filth_ticker = 0 //Currently set =< 4, that means this will fire the proc around every 4-8 seconds. + var/dwarf_eth_ticker = 0 //Currently set =< 1, that means this will fire the proc around every 2 seconds + +/obj/item/organ/dwarfgland/prepare_eat() + var/obj/S = ..() + S.reagents.add_reagent("ethanol", stored_alcohol/10) + return S + +/obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops.. + dwarf_cycle_ticker() + +//Handles the delayed tick cycle by just adding on increments per each on_life() tick +/obj/item/organ/dwarfgland/proc/dwarf_cycle_ticker() + if(owner.stat != DEAD) //We make sure they are not dead, so they don't increment any tickers. + dwarf_eth_ticker++ + dwarf_filth_ticker++ + if(dwarf_filth_ticker >= 4) //Should be around 4-8 seconds since a tick is around 2 seconds. + dwarf_filth_cycle() //On_life will adjust regarding other factors, so we are along for the ride. + dwarf_filth_ticker = 0 //We set the ticker back to 0 to go again. + if(dwarf_eth_ticker >= 1) //Alcohol reagent check should be around 2 seconds, since a tick is around 2 seconds. + dwarf_eth_cycle() + dwarf_eth_ticker = 0 + //Debug messages: + //to_chat(owner, "FILTH VIEW: [filth_counter], FILTH CYCLE TICKER: [dwarf_filth_ticker]") + //to_chat(owner, "ALCOHOL COUNTER: [stored_alcohol], ETH CYCLE TICKER: [dwarf_eth_ticker].") + + +//If this still friggin uses too much CPU, I'll make a for view subsystem If I have to. +/obj/item/organ/dwarfgland/proc/dwarf_filth_cycle() + if(!owner?.client || !owner?.mind) + return + //Filth Reactions - Since miasma now exists + for(var/fuck in view(owner,7)) //hello byond for view loop. + if(istype(fuck, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = fuck + if(H.stat == DEAD) + filth_counter += 10 + if(istype(fuck, /obj/effect/decal/cleanable/blood)) + if(istype(fuck, /obj/effect/decal/cleanable/blood/gibs)) + filth_counter += 1 + else + filth_counter += 0.1 + if(istype(fuck,/obj/effect/decal/cleanable/vomit)) //They are disgusted by their own vomit too. + filth_counter += 10 //Dwarves could technically chainstun each other in a vomit tantrum spiral. + switch(filth_counter) + if(11 to 25) + if(prob(25)) + to_chat(owner, "Someone should really clean up in here!") + if(26 to 50) + if(prob(30)) //Probability the message appears + to_chat(owner, "The stench makes you queasy.") + if(prob(20)) //And then the probability they vomit along with it. + owner.vomit(20) //I think vomit should stay over a disgust adjustment. + if(51 to 75) + if(prob(35)) + to_chat(owner, "By Armok! You won't be able to keep alcohol down at all!") + if(prob(25)) + owner.vomit(20) //Its more funny + if(76 to 100) + if(prob(40)) + to_chat(owner, "You can't live in such FILTH!") + if(prob(25)) + owner.adjustToxLoss(10) //Now they start dying. + owner.vomit(20) + if(101 to INFINITY) //Now they will really start dying + if(prob(40)) + to_chat(owner, " THERES TOO MUCH FILTH, OH GODS THE FILTH!") + owner.adjustToxLoss(15) + owner.vomit(40) + CHECK_TICK //Check_tick right here, its motherfuckin magic. (To me at least) + + +//Handles the dwarf alcohol cycle tied to on_life, it ticks in dwarf_cycle_ticker. +/obj/item/organ/dwarfgland/proc/dwarf_eth_cycle() + //BOOZE POWER + for(var/datum/reagent/R in owner.reagents.reagent_list) + if(istype(R, /datum/reagent/consumable/ethanol)) + var/datum/reagent/consumable/ethanol/E = R + stored_alcohol += (E.boozepwr / 50) + if(stored_alcohol > max_alcohol) //Dwarves technically start at 250 alcohol stored. + stored_alcohol = max_alcohol + var/heal_amt = heal_rate + stored_alcohol -= alcohol_rate * 0.025 //The rate it decreases from the gland + if(stored_alcohol > 400) //If they are over 400 they start regenerating + owner.adjustBruteLoss(-heal_amt) //But its alcohol, there will be other issues here. + owner.adjustFireLoss(-heal_amt) //Unless they drink casually all the time. + owner.adjustOxyLoss(-heal_amt) + owner.adjustCloneLoss(-heal_amt) //Also they will probably get brain damage if thats a thing here. + if(prob(25)) + switch(stored_alcohol) + if(0 to 24) + to_chat(owner, "DAMNATION INCARNATE, WHY AM I CURSED WITH THIS DRY-SPELL? I MUST DRINK.") + owner.adjustToxLoss(35) + if(25 to 50) + to_chat(owner, "Oh DAMN, I need some brew!") + if(51 to 75) + to_chat(owner, "Your body aches, you need to get ahold of some booze...") + if(76 to 100) + to_chat(owner, "A pint of anything would really hit the spot right now.") + if(101 to 150) + to_chat(owner, "You feel like you could use a good brew.") diff --git a/strings/dwarf_replacement.json b/strings/dwarf_replacement.json new file mode 100644 index 0000000000..2049c5ab26 --- /dev/null +++ b/strings/dwarf_replacement.json @@ -0,0 +1,1461 @@ +{ + + "dwarf": { + "ability": "abeelitie", + "about": "aboot", + "above": "abuin", + "abroad": "abraid", + "absorb": "drack", + "absorbing": "drackin'", + "absorbs": "dracks", + "accuse": "delate", + "accused": "delated", + "across": "athwart", + "act": "ect", + "acts": "ects", + "add": "eik", + "added": "eikit", + "adds": "eiks", + "admit": "admeet", + "admits": "admeets", + "afraid": "feart", + "africa": "afrikey", + "after": "efter", + "against": "agin", + "alarm": "alairm", + "ale": "yill", + "all": "a'", + "allow": "allou", + "almost": "naur", + "along": "yont", + "aloof": "abeich", + "aloud": "lood out", + "also": "an a'", + "always": "aye", + "amazed": "dumfoundert", + "america": "amerikie", + "amidst": "'midst", + "among": [ + "'mang", + "amang" + ], + "amount": [ + "amoont", + "feck" + ], + "and": "an'", + "animal": "beist", + "animals": "beists", + "ankle": "cuit", + "ankles": "cuits", + "announce": "annoonce", + "announces": "annoonces", + "another": "anither", + "answered": "answert", + "ant": "eemock", + "ants": "eemocks", + "anxiety": "anxeeitie", + "any": "ony", + "anybody": "aebodie", + "apprentice": "prentice", + "apprentices": "prentices", + "are": "ar", + "aren't": "arena", + "arm": "airm", + "arrange": "dispone", + "arranged": "dispon'd", + "arranges": "dispones", + "arrest": "lift", + "arrested": "liftit", + "arrests": "lifts", + "arse": "erse", + "arses": "erses", + "artificial": "artifeicial", + "ash": "ase", + "ashes": "ase", + "aside": "ascient", + "ask": "aks", + "asked": "akst", + "asks": "aks", + "ass": "erse", + "asses": "erses", + "asshole": "hurdie", + "ate": "ett", + "aunt": "auntie", + "author": "owthor", + "awaken": "awauken", + "awakens": "awaukens", + "away": "awa", + "awful": "awfu", + "awfully": "awfy", + "awkward": "thrawart", + "awry": [ + "aglae", + "ajee" + ], + "axe": "aix", + "axle": "aixle", + "back": "hint", + "bacon": "ham", + "bad": "ill", + "bags": "begs", + "bake": "bak", + "baked": "bakken", + "bakes": "baks", + "bald": "beld", + "ball": "baw", + "balls": "baws", + "bar": "baur", + "barber's": "baurber's", + "barber": "baurber", + "barbers": "baurbers", + "bastard": "bas", + "bat": "flichtermoose", + "baton": "rung", + "batons": "rungs", + "bats": "flichtermooses", + "beach": "foreland", + "beard": "bairds", + "beards": "bairds", + "beautiful": "bonnie", + "because": "kis", + "become": "set", + "becomes": "sets", + "bed": "scratcher", + "beds": "scratchers", + "bee's": "skep-bee's", + "bee": "skep-bee", + "bees": "skep-bees", + "beetle": "clock", + "beetles": "clocks", + "before": "afore", + "began": "begoud", + "being": "bein", + "belong": "belang", + "belonged": "belangit", + "belongs": "belangs", + "below": "ablo", + "beneath": "inunner", + "bent": "bowlt", + "besides": "forby", + "between": "atween", + "beware": "bewaur", + "bilberry": "blaeberry", + "bind": "thirl", + "binds": "thirls", + "bird": "burd", + "birds": "burdies", + "biscuit": "bannock", + "biscuits": "bannocks", + "bitch": "bick", + "bitches": "bicks", + "bitching": "bickerin'", + "bitter": "wersh", + "blackbird": "bleckie", + "blackbirds": "bleckies", + "blame": "wyse", + "blamed": "wysed", + "blames": "wyses", + "blast": "tout", + "blind": "blinnd", + "blood": "bluid", + "bloody": "bluidy", + "blue": "blae", + "boil": "bile", + "boils": "biles", + "bold": "bauld", + "bolder": "baulder", + "boldest": "bauldest", + "boldly": "baudly", + "bolt": "bowt", + "bone": "bane", + "bones": "banes", + "bony": "bainie", + "book": "beuk", + "books": "beuks", + "boot": "buit", + "borrow": "borrae", + "borrowed": "borraed", + "borrowing": "borrain'", + "borrows": "borraes", + "both": "baith", + "bother": "fash", + "box": [ + "boax", + "kist" + ], + "boy": "laddie", + "boys": "laddies", + "brawl": "brulyie", + "breath": "braith", + "brew": "broo", + "broad": "braid", + "broke": "bruck", + "broken": "brustit", + "brood": "bairntime", + "broom": "besom", + "brooms": "besoms", + "broth": "brose", + "brother's": "brither's", + "brother": "brither", + "brothers": "brithers", + "brown": "broon", + "bucket": "backit", + "buckets": "backits", + "build": "big", + "built": "biggit", + "bump": "bumfle", + "buried": "yirdit", + "burnt": "brunt", + "bury": "birrie", + "busy": "bizzie", + "butcher": "flesher", + "butt": "dowp", + "buttocks": "dowp", + "button": "gornal", + "buttons": "gornals", + "butts": "bahookies", + "by": "bi", + "call": "ca'", + "called": "caad", + "calls": "ca'", + "came": "cam", + "can't": "cannae", + "cap": "kaip", + "caps": "kaips", + "captain's": "chief's", + "captain": "chief", + "car": "caur", + "card": "kerd", + "cards": "kerds", + "careful": "canny", + "careless": "feckless", + "carpenter": "jyner", + "carpenters": "jyners", + "carpet": "cairpet", + "carried": "cairiet", + "carries": "cairies", + "carry": "cairie", + "cart": "cairt", + "cash": "clink", + "cat's": "cheetie's", + "cat": "cheetie", + "catch": "kep", + "catched": "keppit", + "cats": "cheeties", + "caught": "keppit", + "cause": "gar", + "caused": "gart", + "certainly": "fairly", + "chance": "chaunce", + "chances": "chaunces", + "change": "chynge", + "changed": "chynged", + "changeling": "chyngelin'", + "chatter": "blether", + "cheer": "chear", + "cheerful": "chearfu'", + "cheerless": "chearless", + "cheers": "chears", + "cheery": "cheary", + "chest": "kist", + "chests": "kist", + "chick": "pout", + "chicks": "pouts", + "child": "bairn", + "chilly": "snell", + "chimney": "chimley", + "chimneys": "chimleys", + "choose": "chuise", + "chooses": "chuises", + "chosen": "chuist", + "christmas": "Yule", + "chunk": "dod", + "chunks": "dods", + "church": "kirk", + "cigarette": "baccie", + "cigarettes": "baccies", + "city": "ceity", + "clean": "clane", + "cloth": "cloot", + "clothes": "claes", + "cold": "cauld", + "comb": "kaim", + "commotion": "stramash", + "concerning": "anent", + "consider": "see", + "conspicuous": "kenspeckle", + "cool": "cuil", + "corner": "neuk", + "correctly": "swash", + "cosy": "codgie", + "cottage": "but and ben", + "cough": "hoast", + "could": "coud", + "couldn't": "coudnae", + "couldnt": "coudnae", + "country": "kintra", + "cow": "coo", + "crate": "kist", + "crates": "kists", + "creak": "jarg", + "creaked": "jarg'd", + "creaking": "jargin'", + "creaks": "jargs", + "creature": "cretter", + "creatures": "cretters", + "cries": "girns", + "critter": "cretter", + "critters": "cretters", + "crooked": "cruikit", + "crow": "corbie", + "crowbar": "louder", + "crowbars": "louders", + "crowd": "byke", + "cruel": "fell", + "crush": "brousle", + "crusher": "brousler", + "cry": "greet", + "crying": "greetin", + "cuff": "shackle", + "cuffed": "shackled", + "cuffing": "shackling", + "cuffs": "shangies", + "cup": "tassie", + "cut": "sned", + "cute": "gainin", + "cuts": "sneds", + "cutters": "sheers", + "daft": "dunderheided", + "damage": "skaith", + "dare": "daur", + "dared": "durst", + "daren't": "daurnae", + "darent": "daurnae", + "dares": "daurs", + "dark": "daurk", + "darken": "daurken", + "dawn": "cockcrow", + "dead": "deid", + "deaf": "deif", + "deafen": "deave", + "death": "dead", + "deaths": "deads", + "delightful": "lichtsome", + "delve": "del", + "deny": "forsay", + "depressed": "dumpie", + "describe": "descrive", + "devil": "de'il", + "didn't": "didnae", + "didnt": "didnae", + "die": "dee", + "died": "dee'd", + "dies": "dees", + "difficult": "difeecult", + "dig": "howk", + "directed": "airtit", + "directions": "airts", + "dirty": "clarty", + "discover": "diskiver", + "discovered": "diskiver'd", + "discovers": "diskivers", + "disgust": [ + "sconner", + "scunner" + ], + "disgusting": "scunnersome", + "dishonest": "unhonest", + "dive": "dyve", + "dives": "dyves", + "diving": "dyvin'", + "do": "dae", + "does": "dis", + "dog": [ + "dug", + "tyke" + ], + "dogs": "tykes", + "don't": "dinnae", + "done": "duin", + "dont": "dinnae", + "doom": "deim", + "doomed": "deim'd", + "door": "dorr", + "doors": "dorrs", + "doubt": "dout", + "doubted": "doutit", + "doubting": "doutin'", + "doubts": "douts", + "dough": "daugh", + "dove": "doo", + "down": "doun", + "downfall": "dounfaa", + "downtrodden": "dounhauden", + "drain": "stank", + "dread": "dreid", + "dream": "draim", + "dreams": "draims", + "drew": "draw", + "drink": "beb", + "drinks": "bebs", + "drip": "dreep", + "drive": "caw", + "drone": "bum", + "drones": "bums", + "drop": "drap", + "drown": "droun", + "drowned": "drount", + "drowning": "drounin'", + "drowns": "drouns", + "drug": "drog", + "drugs": "drogs", + "drunk": "drunken", + "drunkard": "sot", + "dry": "freuch", + "duck": "dook", + "ducked": "douked", + "dusk": "gloaming", + "dust": "stoor", + "dusty": "stourie", + "dwell": "wone", + "dying": "diein'", + "each": "ilk", + "eagle": [ + "aigle", + "earn" + ], + "eagles": "earns", + "ear": "lug", + "early": "earlie", + "earth": "yird", + "east": "aist", + "eastern": "eastlin", + "easternmost": "eastmaist", + "eastmost": "eastmaist", + "eastward": "aistart", + "eat": "aet", + "eaten": "etten", + "eats": "aets", + "eden": "aidin", + "edinburgh": "auld reekie", + "eight": "eighct", + "eighteen": "aughten", + "else": "ense", + "empty": [ + "empie", + "toom" + ], + "end": "en", + "endure": "thole", + "engine's": "ingine's", + "engine": "ingine", + "engineer's": "ingineer's", + "engineer": "ingineer", + "engineers'": "ingineers'", + "engineers": "ingineers", + "engines": "ingines", + "english": "soothron", + "enough's": "eneuch's", + "enough": "eneuch", + "equal": "match", + "escaped": "gat awa", + "eternal": "ayebidin", + "even": "e'en", + "evening": "e'en", + "ever": "iver", + "every": "ilka", + "everything": "iveriehott", + "everywhere": "aa wey", + "ewe": "yowe", + "example": "ensaumple", + "extraordinarily": "unco", + "extremely": "unco", + "eye": "ee", + "eyebrow": "e'ebrie", + "eyebrows": "e'ebries", + "eyes": "een", + "fall": "fa'", + "fallen": "fa'n", + "falling": "faain", + "falls": "fa's", + "false": "fause", + "family": "faimly", + "far": "faur", + "fart": "pump", + "farther": "faurer", + "farts": "pumps", + "father": "faither", + "fault": [ + "blame", + "faut" + ], + "faults": "fauts", + "feeble": "doweless", + "feed": "beet", + "fellow": "chiel", + "fetch": "fuish", + "fetched": "fuishen", + "fetches": "fuishes", + "few": "puckle", + "fight": "fecht", + "fill": "ful", + "filled": "fult", + "find": "fin", + "fine": "braw", + "finely": "brawlie", + "fish": "fush", + "flake": "flichan", + "flakes": "flichans", + "flap": "flaff", + "flapped": "flaff'd", + "flapping": "flaffin", + "flaps": "flaffs", + "flea": "flaich", + "fleas": "flaich", + "flood": "speat", + "flour": "floor", + "flown": "flewn", + "flutter": "flitter", + "fluttered": "flittered", + "fluttering": "flittering", + "flutters": "flitter", + "fly": "flee", + "foam": "faem", + "folk": "fowk", + "food": "fuid", + "foot": "fuit", + "for": "fur", + "forget": "forgit", + "forgets": "forgits", + "forgive": "forgie", + "forgives": "forgies", + "forgot": "forgat", + "forsake": "forhou", + "forward": "forrit", + "fought": "feuchen", + "foul": "fyle", + "found": "funnd", + "four": "fower", + "fox": "tod", + "friend": "pal", + "friends": "mukkers", + "from": "fae", + "front": "foreside", + "frown": "glunch", + "frowned": "glunch'd", + "full": "stowed oot", + "fumble": "ficher", + "fumbled": "ficher'd", + "fumbles": "fichers", + "further": "farder", + "furthest": "benmaist", + "fussy": "fykie", + "gate": "yett", + "get": "git", + "gets": "gits", + "ghost": "ghaist", + "ghostdrone": "ghaistbum", + "ghostdrones": "ghaistbums", + "ghosts": "ghaists", + "gibberish": "blethers", + "girl": "lassie", + "girls": "lassies ", + "give": "gie", + "given": "gied", + "gives": "gies", + "glare": "glower", + "glared": "glower'd", + "glove": "gluive", + "gloves": "gluives", + "glow": "glowe", + "glows": "glowes", + "go": "gae", + "goat": "gait", + "goats": "gaits", + "goes": "gaes", + "going": "gaein", + "gone": "gaen", + "good": [ + "braw", + "guid" + ], + "goodbye": "fare ye weel", + "gosh": "jings", + "got": "gat", + "grandmother": "aulddame", + "great": [ + "braw", + "stoatin" + ], + "grin": "gandge", + "grip": "yoke", + "groin": "lisk", + "grow": "growe", + "grown": "growed", + "grows": "growes", + "guard": "waird", + "guess": "jalouse", + "guest": "caa'er", + "guests": "caa'ers", + "had": "haed", + "hadn't": "haednae", + "hadnt": "haednae", + "haggling": "priggin", + "half": "hauf", + "halfwit": "haiverel", + "halfwits": "haiverel", + "hall": "haa", + "halt": "stoppit", + "hammer": "haimer", + "hammers": "haimers", + "hand": "haun", + "handcuff": "haundshackle", + "handcuffed": "haundshackled", + "handcuffing": "haundshackling", + "handcuffs": "shangies", + "handle": "haunnle", + "hands": "hauns", + "hang": "hing", + "happy": "blythe", + "hard": "haurd", + "hardly": "haurdlie", + "harm": "skaith", + "harvest": "hairst", + "harvests": "hairsts", + "have": "hae", + "haven't": "hinna", + "havent": "hinna", + "head": "heid", + "healthy": "brosie", + "heard": "haurd", + "heart": "hert", + "hearty": "herty", + "hedgehog": "hurchin", + "hedgehogs": "hurchins", + "hello": "hullo", + "helmet": "helm", + "helmets": "helms", + "help": "hulp", + "helped": "helpit", + "hen": "chuck", + "hens": "chucks", + "hid": "dern'd", + "hidden": "dern'd", + "hide": "dern", + "hides": "derns", + "high": "hie", + "highest": "hiest", + "highland": "hielan'", + "highlands": "hielands", + "hit": "clout", + "hits": "clouts", + "hoarse": "hersh", + "holy": "halie", + "home": "hame", + "honey": "hinnie", + "hope": "houpe", + "hopes": "houpes", + "horrible": "gruesome", + "hot": "het", + "house": "hoose", + "how": "howfur", + "howl": "yowl", + "howled": "yowled", + "howling": "yowling", + "howls": "yowls", + "hungry": "hungert", + "husband": "guidman", + "husbands": "guidmen", + "idea": "conceit", + "ideas": "conceits", + "idiot": "eejit", + "idiots": "eejits", + "ill": "unweel", + "im": "a'm", + "i'm": "a'm", + "import": "inbring", + "incantation": "cantrip", + "incantations": "cantrips", + "industrious": "eydent", + "infinite": "mairchless", + "inject": "jag", + "injected": "jagit", + "injection": "jag", + "injections": "jag", + "insect": "beastie", + "insects": "beasties", + "inside": "inby", + "into": "intae", + "ireland": "airlan", + "island": "islan", + "islands": "islans", + "isn't": "isna", + "isnt": "isna", + "issue": "aishan", + "it's": "hit's", + "it": "hit", + "its": "hits", + "jar": "jaur", + "jars": "jaurs", + "jig's": "jeeg's", + "jig": "jeeg", + "jigs": "jeegs", + "join": "jine", + "jolly": "waulie", + "judge": "juidge", + "judged": "juidgit", + "judges": "juidges", + "jump": "loup", + "jumped": "lowpen", + "jumping": "loupin", + "jumpsuit's": "carsakie's", + "jumpsuit": "carsackie", + "jumpsuits": "carsakies", + "just": "jist", + "kept": "keepit", + "killed": "kilt", + "kind": "kin", + "kindly": "kin'ly", + "kitchen": "keetchin", + "know": "ken", + "known": "kent", + "knows": "ken", + "laid": "leen", + "lake": "loch", + "lakes": "lochs", + "land": "lan", + "large": "muckle", + "last": "lest", + "lasted": "lestit", + "lasts": "lests", + "lawyer": "lawer", + "lawyers": "lawers", + "lay": "lee", + "lazy": "thowless", + "leap": "loup", + "leaping": "loupin", + "leapt": "lowpen", + "learn": "lairn", + "learned": "lairnt", + "learns": "lairns", + "leave": "lea'", + "lend": "len", + "length": "lenth", + "lengths": "lenths", + "let": "lat", + "letter": "screive", + "liar": "leear", + "liars": "leears", + "lie": "lee", + "lifted": "liftit", + "light": "licht", + "lightning": "fire-flaucht", + "like": "lik", + "liked": "likit", + "limp": "hirple", + "liquor": "spunkie", + "list": "leet", + "little": "wee", + "live": "bide", + "lived": "bade", + "lively": "birkie", + "lives": "bides", + "load": "lade", + "loaded": "laden", + "loading": "laden'", + "loads": "lades", + "lobster": "lapster", + "lobsters": "lapsters", + "long": "lang", + "look": "leuk", + "looked": "leukit", + "looks": "leuks", + "lore": "lear", + "lose": "tyne", + "loses": "tynes", + "lost": "tint", + "lot": "wheen", + "loud": "lood", + "louse": "cootie", + "love": "loo", + "loved": "loo'd", + "loves": "loos", + "loving": "looin", + "low": "wee", + "lowest": "blomaist", + "lump": "dod", + "made": "makkit", + "magic": "glammerie", + "make": "mak", + "man": "jimmy", + "manure": "aidle", + "many": "mony", + "married": "merrit", + "may": "can", + "maybe": "mibbie", + "meat": "flesh", + "merchant's": "packman's", + "merchant": "packman", + "merchants'": "packmens'", + "merchants": "packmen", + "mess": "fankle", + "mice": "myce", + "might": "micht", + "mightn't": "michtna", + "mightnt": "michtna", + "milk": "mulk", + "min": "min'", + "mine": "mines", + "mire": "glaur", + "mischeivous": "ill-trickit", + "miss": "tyne", + "misses": "tynes", + "missing": "amissin", + "mistake": "mistak", + "mistaken": "mistaen", + "mixture": "mixtur", + "mole": "mowdiewarp", + "moles": "mowdiewarps", + "money": "clink", + "monkey": "puggie", + "monkeys": "puggies", + "monkies": "puggies", + "moor": "muir", + "more": "mair", + "moron": "baw juggler", + "morons": "dunderheids", + "most": "maist", + "moth": "blinnd-bat", + "mother": "maw", + "moths": "blinnd-bats", + "mountain": "ben", + "mountains": "bens", + "mouse": "moose", + "moustache": "mouser", + "moustaches": "mousers", + "mouth": "gob", + "move": "flit", + "moved": "flittit", + "moves": "flits", + "much": "muckle", + "muddled": "doited", + "music": "muisic", + "must": "maun", + "mustache": "mouser", + "mustaches": "mousers", + "mustn't": "maunna", + "mustnt": "maunna", + "my": "ma", + "myself": "masel", + "naked": "nakit", + "nanotrasen": "nanotraisen", + "natural": "naitral", + "nature": "naitur", + "near": "naur", + "nearer": "naurer", + "nearest": "naurmaist", + "needed": "needit", + "needn't": "needna", + "neednt": "needna", + "neither": "nane", + "nestle": "coorie", + "never": "ne'er", + "news": "bizz", + "next": "neist", + "nice": "crakin", + "night": "nicht", + "nights": "nichts", + "nit": "cootie", + "no": "nae", + "none": "nane", + "nonsense": [ + "haivers", + "havers", + "pish" + ], + "north": "nor", + "northern": "norlins", + "northernmost": "normaist", + "northmost": "normasit", + "not": "no", + "nothing": "hee haw", + "now": "nou", + "number": "hantle", + "numbers": "hantles", + "oak": "aik", + "oat": "aits", + "oats": "aits", + "obliged": "behauden", + "of": "o'", + "off": "aff", + "officer": "boaby", + "officers": "boabies", + "often": "aften", + "oh": "och", + "oil": "ile", + "old": "auld", + "once": "yinst", + "one": "ane", + "onion": "ingan", + "onions": "ingans", + "opened": "opent", + "opposite": "forgain", + "oppressed": "dounhauden", + "other": "ither", + "our": "oor", + "ourselves": "oorsels", + "out": "oot", + "outside": "ootside", + "oven": "uin", + "ovens": "uins", + "over": "oot ower", + "owe": "awe", + "owes": "awes", + "owl": "howlet", + "owls": "howlets", + "own": "ain", + "owned": "awned", + "owns": "awns", + "painting": "pentin", + "pale": "peely-wally", + "pants": "trews", + "parcel": "paircel", + "parched": "drouchtit", + "park": "pairk", + "part": "pairt", + "parted": "pairted", + "partial": "pairtial", + "parts": "pairts", + "path": "pad", + "pebble": [ + "chuckie", + "chuckie-stane" + ], + "pebbles": "chuckie-stanes", + "pee": "strone", + "peed": "stroned", + "pees": "strones", + "people": "fowk", + "person": "chiel", + "pet": "daut", + "pets": "dauts", + "petted": "dautit", + "petting": "dautin'", + "phantom": "bogle", + "phone": "phane", + "phones": "phanes", + "picture": "pictur", + "pictures": "picturs", + "pierce": "thirl", + "pigeon": "doo", + "piss": "pish", + "pissed": "pished", + "pisses": "pishes", + "place": "stell", + "placed": "stellt", + "places": "airts", + "play": "daff", + "played": "dafft", + "plays": "daffs", + "pocket": "pooch", + "pockets": "pooches", + "point": "pynt", + "pointed": "pynted", + "points": "pynt", + "poison": "pushion", + "poisoned": "pushionit", + "poisoning": "pushionin'", + "poisons": "pushions", + "poke": "powk", + "poked": "powkit", + "pokes": "powks", + "poking": "powkin'", + "police": "polis", + "poo": "keech", + "pool": "puil", + "poor": "pair", + "position": "poseetion", + "potato": "tattie", + "potatoes": "tatties", + "powder": "pouther", + "power": "pouer", + "present": "praisent", + "pretty": "bonny", + "prick": "jag", + "pricked": "jagit", + "pricks": "jags", + "probably": "likelie", + "proof": "prief", + "properly": "swash", + "proud": "prood", + "prove": "pruve", + "proved": "pruved", + "proves": "pruves", + "pub": "inns", + "puddle": "dub", + "pull": "pu'", + "pulled": "pu'd", + "pulls": "pu's", + "punch": "batter", + "punches": "batters", + "push": "pouss", + "pushed": "poussit", + "pushes": "pouss'", + "pushing": "poussin'", + "put": "pat", + "puts": "pits", + "quiet": "weesht", + "quit": "quitten", + "quite": "fair", + "rain": "smirr", + "ran": "run", + "raspberry": "rasp", + "rat": "rottan", + "rather": "raither", + "raven": "raen", + "real": "rael", + "reaper": "shearer", + "reason": "raison", + "reasons": "raisons", + "red": "rid", + "remember": "mind", + "replied": "reponed", + "reply": "repone", + "resident": "indwaller", + "residents": "indwallers", + "resign": "demit", + "retch": "boak", + "retches": "boaks", + "ridge": "rig", + "ridges": "rigs", + "right": "richt", + "roar": "rair", + "roared": "rair't", + "roars": "rairs", + "rob": "rab", + "room": "chaummer", + "root": "ruit", + "rope": "raip", + "rubber": "cahoutchie", + "ruffle": "tousle", + "run": "rin", + "rural": "landwart", + "rush": "breeshle", + "rust": "roust", + "sad": "dowie", + "said": "sayed", + "scare": "scaur", + "scariest": "skeeriest", + "scary": "scaury", + "school": "schuil", + "scientific": "scienteefic", + "scissors": "sheers", + "scold": "scaud", + "scone": "bannock", + "scorch": "birsle", + "scowl": "scoul", + "scowls": "scouls", + "scratch": "scart", + "scream": "skriegh", + "screaming": "skrieghin'", + "screams": "skreighs", + "seal": "cowan", + "seals": "cowans", + "sec": "polis", + "second": "saicont", + "security": "polis", + "seem": "kythe", + "seemed": "kythed", + "seems": "kythes", + "separate": "twyne", + "servant": "skivvy", + "seven": "sieven", + "shake": "shak", + "shaken": "shakit", + "shakes": "shaks", + "shall": "sall", + "shell": "sheel", + "shelter": "bield", + "sherrif": "shirra", + "shivering": "ourie", + "shoes": "shoon", + "shook": [ + "shakit", + "sheuk" + ], + "shop": "shap", + "shopping": "messages", + "shops": "shaps", + "should": "shoud", + "shouldn't": "shoudna", + "shouldnt": "shoudna", + "shovel": "shool", + "shovels": "shools", + "shrunken": "cruppen", + "shy": "blate", + "sicken": "scunner", + "sickening": "scunnersome", + "sigh": "sech", + "sighs": "soughs", + "silver": "sillar", + "singed": "singet", + "skip": "fimmer", + "skips": "fimmers", + "slap": "clout", + "slaps": "clouts", + "slept": "sleepit", + "slid": "slidden", + "slip": "slup", + "slippery": "slidie", + "slips": "slups", + "slope": "brae", + "sly": "slee", + "smack": "skelp", + "smacks": "skelps", + "small": "wee", + "smart": "snap", + "smile": "smirk", + "smiles": "smous", + "smoke": "reek", + "smoked": "reekit", + "smokes": "reeks", + "smoking": "reekin'", + "sneeze": "sneesh", + "snow": "snaw", + "snowflake": "pyle", + "so": "sae", + "soap": "saip", + "sold": "selt", + "some": "som", + "someone": "a bodie", + "sometimes": "whyles", + "somewhat": "fair", + "song": "sang", + "songs": "sangs", + "soothe": "dill", + "sore": "sair", + "sound": "soond", + "sounded": "soonded", + "sounds": "soonds", + "soup": "broo", + "south": "sooth", + "southern": "soothron", + "southernmost": "soothmaist", + "southmost": "soothmaist", + "spacemas": "Yule", + "sparkle": "glint", + "sparkled": "glintit", + "sparkles": "glints", + "sparkling": "begesserant", + "spat": "sputten", + "speak": "spaek", + "speaks": "spaeks", + "spelled": "spellt", + "spider": "speeder", + "spin": "birl", + "spine": "rig", + "spines": "rigs", + "spinning": "birlin'", + "spins": "birls", + "spit": "speet", + "spoil": "blaud", + "spoils": "blauds", + "spoke": "spak", + "spoon": "spuin", + "squeal": "squyle", + "squint": "skelly", + "stagger": "stoiter", + "staggered": "stoiter'd", + "staggers": "stoiters", + "stand": "staun", + "star": "starn", + "stare": "gove", + "stared": "glourt", + "stares": "goves", + "stars": "starns", + "start": "stert", + "started": "stertit", + "starts": "sterts", + "stay": "bide", + "stays": "bides", + "stead": "steid", + "stench": "bowf", + "stiff": "stechie", + "still": "yet", + "stink": "bowf", + "stinks": "bowfs", + "stir": "steer", + "stirs": "steers", + "stole": "stealt", + "stolen": "stown", + "stomach": "wame", + "stone": "stane", + "stones": "stanes", + "stopped": "stoppit", + "stout": "stoot", + "stream": "burn", + "stretch": "streek", + "stretched": "streekit", + "stretches": "streeks", + "striped": "strippit", + "stroll": "daunder", + "struck": "strak", + "stuck": "stickit", + "stuff": "stech", + "stumble": "doiter", + "stumbled": "stoited", + "stumbles": "doiters", + "stunned": "donnert", + "stupid": "glaikit", + "such": "sic", + "sunset": "sindoun", + "suppose": "daursay", + "sure": "shuir", + "surely": "shuirlie", + "swallow": "swallae", + "swallowed": "swallae'd", + "swallows": "swallaes", + "swarm": "byke", + "swear": "sweir", + "sweared": "sweired", + "swearing": "sweiring", + "swears": "sweirs", + "swell": "swall", + "swelled": "swall'd", + "table": "boord", + "tables": "boords", + "tadpole": "poweheid", + "take": "tak", + "taken": "taen", + "takes": "taks", + "talk": "tauk", + "tangled": "tousled", + "taste": "pree", + "tasted": "pree'd", + "tasteless": "warsh", + "tastes": "prees", + "tavern": "inns", + "terrible": "tairible", + "than": "nor", + "thank": "thenk", + "that": "thon", + "the": "th'", + "their": "thair", + "theirs": "thairs", + "them": "thaim", + "themselves": "thairsels", + "then": "than", + "there's": "thonder's", + "there": "thonder", + "they": "thay", + "thirst": "drouth", + "thirsts": "drouths", + "thirsty": "drouthy", + "those": "they", + "thought": "thocht", + "thousand": "thoosan", + "thousands": "thoosans", + "thousandth": "thoosant", + "thrashed": "thruishen", + "thrilled": "thirl'd", + "throat": "thrapple", + "through": "throu'", + "thundering": "dunderin", + "tidy": "doss", + "tingle": "fissle", + "tiny": [ + "tottie", + "toty" + ], + "to": "tae", + "tobacco": "baccie", + "today": "th'day", + "together": "thegither", + "toilet": "cludgie", + "toilets": "cludgies", + "token": "taiken", + "told": "tellt", + "tomorrow": "th' morra", + "tonight": "thenicht", + "too": "tae", + "took": "teuk", + "top": "tap", + "tore": "tuir", + "tortoise": "tortie", + "tough": "teugh", + "town": "toon", + "trader's": "dealer's", + "trader": "dealer", + "traders'": "dealers'", + "traders": "dealers", + "translated": "owerset", + "treason": "traison", + "trick": "brogue", + "tried": "ettelt", + "tries": "ettles", + "trigger": "tricker", + "triggered": "tricker'd", + "triggering": "trickerin'", + "triggers": "trickers", + "trouble": "trauchle", + "trousers": "breeks", + "trurth": "trowth", + "try": "huv a go", + "tumble": "cowp", + "turf": "divot", + "turfs": "divots", + "turn": "birl", + "turned": "birlt", + "turning": "birlin'", + "turnip": "neep", + "turnips": "neeps", + "turns": "birls", + "twist": "swirl", + "twisted": "swirlie", + "twists": "skewls", + "two": "twa", + "unbolt": "unsnib", + "uncertain": "unsicker", + "under": "unner", + "understand": "unnerstaund", + "understands": "unnerstaunds", + "unhurt": "unskaithed", + "uninvited": "unbidden", + "unknown": "unkent", + "unlucky": "wanchancie", + "until": "till", + "us": "hus", + "usage": "uisage", + "use": "uise", + "used": "uised", + "useless": "uissless", + "uses": "uises", + "valley": "glen", + "valleys": "glens", + "value": "feck", + "vegetables": "greens", + "venture": "anter", + "very": "verra", + "vessel": "veshel", + "vessels": "veshel", + "vision": "veesion", + "visions": "veesion", + "visit": "veesit", + "visitor": "caa'er", + "visitors": "caa'ers", + "vomit": "boak", + "vomits": "boaks", + "wages": "wauges", + "walk": "traivel", + "walked": "traivelt", + "walks": "traivels", + "wall": "dike", + "walls": "dikes", + "wand": "wannd", + "wander": "daunder", + "wandered": "daundert", + "wanders": "daunders", + "want": "waant", + "wanted": "wantit", + "warm": "beek", + "was": "wis", + "washed": "washt", + "wasn't": "wisna", + "wasnt": "wisna", + "watched": "watcht", + "water": "watter", + "way": "gate", + "ways": "gates", + "weak": "fushionless", + "website": "wasteid", + "weep": "greet", + "welcome": "walcome", + "well": "weel", + "went": "gaed", + "were": "war", + "weren't": "warna", + "werent": "warna", + "west": "wast", + "westernmost": "wastmaist", + "westmost": "wastmaist", + "westward": "wastart", + "wet": "drookit", + "what": "whit", + "whatever": "whitsomiver", + "whatsoever": "whitsaeiver", + "where's": "whaur's", + "where": "whaur", + "whiskey": "usquebaugh", + "whistle": "wheiple", + "whistles": "wheiples", + "who": "wha", + "whole": "hail", + "whom": "wham", + "whose": "whase", + "wife": "guidwife", + "will": "wull", + "win": "wun", + "wind": "wynd", + "window": "winnock", + "windows": "winnocks", + "wing": "weeng", + "wings": "weengs", + "wipe": "dight", + "wipes": "dights", + "wire-cutters": "weir-sheers", + "wire": "weir", + "wirecutters": "weirsheers", + "wisdom": "gumption", + "wish": "wiss", + "wished": "wisst", + "wishes": "wisses", + "witch's": "carlin's", + "witch": "carlin", + "witches": "carlins", + "with": "wi", + "within": "aithin", + "without": "athoot", + "witless": "doitert", + "wives": "guidwifes", + "wizard's": "warlock's", + "wizard": "warlock", + "wizards": "warlocks", + "woman": "hen", + "women": "kimmers", + "won't": "winna", + "won": "wun", + "wonder": "wonner", + "wont": "winna", + "wood": "wid", + "wool": "woo'", + "word": "wird", + "words": "wirds", + "work": "wark", + "worked": "wrocht", + "world": "warld", + "worried": "wirried", + "worries": "wirries", + "worry": "wirrie", + "worst": "wast", + "worth": "wirth", + "would": "wad", + "wouldn't": "wadna", + "wouldnt": "wadna", + "wrench": "wranch", + "wrenches": "wranches", + "writ": "wrate", + "write": "screive", + "writes": "scrieves", + "wrong": "wrang", + "wrote": "wrat", + "yes": "aye", + "you": "ye", + "your": "yer", + "yeah": "aye", + "yourself": "yersel", + "yourselves": "yersels", + "youth": "weans", + "zero": "hee-haw" + } +} \ No newline at end of file diff --git a/strings/names/dwarf_first.txt b/strings/names/dwarf_first.txt new file mode 100644 index 0000000000..a5de072053 --- /dev/null +++ b/strings/names/dwarf_first.txt @@ -0,0 +1,42 @@ +Thizuil +Dondock +Nemdout +Ararhir +Kadeag +Elminister +Nursan +Grimm +Matgroir +Thosotir +Jatdrouc +Kaschei +Khelben +Kreol +Dalofrubelyn +Reirgrebyrn +Hosdrum +Mordenkainen +Sarbarra +Mystryl +Nihilus +Palando +Prospero +Radagast +Burroutalyn +Vargibela +Saruman +Tenser +Terefi +Tzeentch +Gotdrilyn +Vaarsuvius +Erisseadrid +Arazzanelyn +Zagyg +Dargroungrid +Urist +Durimarlum +Matgrous +Kissaet +Magni +Muradin \ No newline at end of file diff --git a/strings/names/dwarf_last.txt b/strings/names/dwarf_last.txt new file mode 100644 index 0000000000..17fdb7f4d2 --- /dev/null +++ b/strings/names/dwarf_last.txt @@ -0,0 +1,45 @@ +Brightjaw +Steelbrew +Grimtank +Mudback +Brickbane +Smeltmaster +Lavabrow +Woldtoe +Deephelm +Earthpike +Berylshield +Asharmour +Caskspine +Rubygrip +Noblemaster +Flintgrip +Thunderchest +Ignotchest +Cragborg +Jadearm +Hornbelt +Fierygranite +Twilightbane +Leadforge +Kragthane +Oakenaxe +Beastback +Coinbender +Bronzejaw +Mithrilrock +Barrelhood +Grumblesphere +Graybane +Flattoe +Steelmaker +Bronzebeard +Kragcloak +Magmaborn +Gravelbasher +Whitbrew +McUristurister +Mountaincoat +Chaosbane +Darksunder +Bronzebeard \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index eff6a4e418..cdf35e5af5 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2068,6 +2068,7 @@ #include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" #include "code\modules\mob\living\carbon\human\species_types\corporate.dm" #include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" +#include "code\modules\mob\living\carbon\human\species_types\dwarves.dm" #include "code\modules\mob\living\carbon\human\species_types\felinid.dm" #include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" #include "code\modules\mob\living\carbon\human\species_types\furrypeople.dm" From 45367fbe24a51faa1988252dc575421fc9cfb22f Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Mon, 14 Oct 2019 10:35:41 -0400 Subject: [PATCH 2/6] unneeded comment as they aren't special now --- code/modules/mob/living/carbon/human/species_types/dwarves.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 6ef79804b5..27de234d2b 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -7,7 +7,6 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // id = "dwarf" //Also called Homo sapiens pumilionis default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR) - //they can grab burning objects and get hurt, and jump straight to aggro grab. inherent_traits = list() default_features = list("mcolor" = "FFF", "wings" = "None") limbs_id = "human" From 1af18741d9b1c4b601ae46d729c0f187b8217c0a Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Mon, 14 Oct 2019 17:37:02 -0400 Subject: [PATCH 3/6] Commit, suggestions. --- .../carbon/human/species_types/dwarves.dm | 44 +++++-------------- 1 file changed, 10 insertions(+), 34 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 27de234d2b..4b6357e910 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -19,29 +19,6 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed) - //Pixel X, and Pixel Y offsets on mob drawing. It handles the offset in update_icons.dm - //X is Horizontal, Y is Vertical. These are general offsets, directional offsets do not exist. - offset_features = list( - OFFSET_UNIFORM = list(0,0), - OFFSET_ID = list(0,0), - OFFSET_GLOVES = list(0,0), - OFFSET_GLASSES = list(0,0), - OFFSET_EARS = list(0,0), - OFFSET_SHOES = list(0,0), - OFFSET_S_STORE = list(0,0), - OFFSET_FACEMASK = list(0,0), - OFFSET_HEAD = list(0,0), - OFFSET_HAIR = list(0,0), - OFFSET_FHAIR = list(0,0), - OFFSET_EYES = list(0,0), - OFFSET_LIPS = list(0,0), - OFFSET_BELT = list(0,0), - OFFSET_BACK = list(0,0), - OFFSET_SUIT = list(0,0), - OFFSET_NECK = list(0,0), - OFFSET_MUTPARTS = list(0,0) - ) - /mob/living/carbon/human/species/dwarf //species admin spawn path race = /datum/species/dwarf //and the race the path is set to. @@ -111,8 +88,8 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // var/stored_alcohol = 250 //They start with 250 units, that ticks down and eventaully bad effects occur var/max_alcohol = 500 //Max they can attain, easier than you think to OD on alcohol. var/heal_rate = 0.5 //The rate they heal damages over 400 alcohol stored. Default is 0.5 so we times 3 since 3 seconds. - var/alcohol_rate = 10 //Its times 0.025 making it tick down by .25 per loop per 10. EX: 20 = .50 - var/filth_counter = 0 //Holder for the filth check cycle, basically it compares against this. + var/alcohol_rate = 0.25 //Its times 0.025 making it tick down by .25 per loop per 10. EX: 20 = .50 + var/filth_counter = 0 //Holder for the filth check cycle, basically contains how much filth dwarf sees numerically. //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. var/dwarf_filth_ticker = 0 //Currently set =< 4, that means this will fire the proc around every 4-8 seconds. var/dwarf_eth_ticker = 0 //Currently set =< 1, that means this will fire the proc around every 2 seconds @@ -123,23 +100,22 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // return S /obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops.. + . = ..() dwarf_cycle_ticker() //Handles the delayed tick cycle by just adding on increments per each on_life() tick /obj/item/organ/dwarfgland/proc/dwarf_cycle_ticker() - if(owner.stat != DEAD) //We make sure they are not dead, so they don't increment any tickers. - dwarf_eth_ticker++ - dwarf_filth_ticker++ + if(owner.stat == DEAD) + return //We make sure they are not dead, so they don't increment any tickers. + dwarf_eth_ticker++ + dwarf_filth_ticker++ + if(dwarf_filth_ticker >= 4) //Should be around 4-8 seconds since a tick is around 2 seconds. dwarf_filth_cycle() //On_life will adjust regarding other factors, so we are along for the ride. dwarf_filth_ticker = 0 //We set the ticker back to 0 to go again. if(dwarf_eth_ticker >= 1) //Alcohol reagent check should be around 2 seconds, since a tick is around 2 seconds. dwarf_eth_cycle() dwarf_eth_ticker = 0 - //Debug messages: - //to_chat(owner, "FILTH VIEW: [filth_counter], FILTH CYCLE TICKER: [dwarf_filth_ticker]") - //to_chat(owner, "ALCOHOL COUNTER: [stored_alcohol], ETH CYCLE TICKER: [dwarf_eth_ticker].") - //If this still friggin uses too much CPU, I'll make a for view subsystem If I have to. /obj/item/organ/dwarfgland/proc/dwarf_filth_cycle() @@ -149,7 +125,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // for(var/fuck in view(owner,7)) //hello byond for view loop. if(istype(fuck, /mob/living/carbon/human)) var/mob/living/carbon/human/H = fuck - if(H.stat == DEAD) + if(H.stat == DEAD || (HAS_TRAIT(H, TRAIT_FAKEDEATH))) filth_counter += 10 if(istype(fuck, /obj/effect/decal/cleanable/blood)) if(istype(fuck, /obj/effect/decal/cleanable/blood/gibs)) @@ -196,7 +172,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // if(stored_alcohol > max_alcohol) //Dwarves technically start at 250 alcohol stored. stored_alcohol = max_alcohol var/heal_amt = heal_rate - stored_alcohol -= alcohol_rate * 0.025 //The rate it decreases from the gland + stored_alcohol -= alcohol_rate if(stored_alcohol > 400) //If they are over 400 they start regenerating owner.adjustBruteLoss(-heal_amt) //But its alcohol, there will be other issues here. owner.adjustFireLoss(-heal_amt) //Unless they drink casually all the time. From 9ccff735b867bf150601d666a3eed0e651c115d9 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Mon, 14 Oct 2019 17:42:34 -0400 Subject: [PATCH 4/6] update comments --- code/modules/mob/living/carbon/human/species_types/dwarves.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 4b6357e910..006849309c 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -88,7 +88,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // var/stored_alcohol = 250 //They start with 250 units, that ticks down and eventaully bad effects occur var/max_alcohol = 500 //Max they can attain, easier than you think to OD on alcohol. var/heal_rate = 0.5 //The rate they heal damages over 400 alcohol stored. Default is 0.5 so we times 3 since 3 seconds. - var/alcohol_rate = 0.25 //Its times 0.025 making it tick down by .25 per loop per 10. EX: 20 = .50 + var/alcohol_rate = 0.25 //The rate the alcohol ticks down per each iteration of dwarf_eth_ticker completing. var/filth_counter = 0 //Holder for the filth check cycle, basically contains how much filth dwarf sees numerically. //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. var/dwarf_filth_ticker = 0 //Currently set =< 4, that means this will fire the proc around every 4-8 seconds. @@ -172,7 +172,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // if(stored_alcohol > max_alcohol) //Dwarves technically start at 250 alcohol stored. stored_alcohol = max_alcohol var/heal_amt = heal_rate - stored_alcohol -= alcohol_rate + stored_alcohol -= alcohol_rate //Subtracts alcohol_Rate from stored alcohol so EX: 250 - 0.25 per each loop that occurs. if(stored_alcohol > 400) //If they are over 400 they start regenerating owner.adjustBruteLoss(-heal_amt) //But its alcohol, there will be other issues here. owner.adjustFireLoss(-heal_amt) //Unless they drink casually all the time. From 3a45027ed84706640cb7844733c31b899da40f38 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Mon, 14 Oct 2019 17:56:18 -0400 Subject: [PATCH 5/6] Moved var out of organ into its proc. --- code/modules/mob/living/carbon/human/species_types/dwarves.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 006849309c..b485eb9609 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -89,7 +89,6 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // var/max_alcohol = 500 //Max they can attain, easier than you think to OD on alcohol. var/heal_rate = 0.5 //The rate they heal damages over 400 alcohol stored. Default is 0.5 so we times 3 since 3 seconds. var/alcohol_rate = 0.25 //The rate the alcohol ticks down per each iteration of dwarf_eth_ticker completing. - var/filth_counter = 0 //Holder for the filth check cycle, basically contains how much filth dwarf sees numerically. //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. var/dwarf_filth_ticker = 0 //Currently set =< 4, that means this will fire the proc around every 4-8 seconds. var/dwarf_eth_ticker = 0 //Currently set =< 1, that means this will fire the proc around every 2 seconds @@ -122,6 +121,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // if(!owner?.client || !owner?.mind) return //Filth Reactions - Since miasma now exists + var/filth_counter = 0 //Holder for the filth check cycle, basically contains how much filth dwarf sees numerically. for(var/fuck in view(owner,7)) //hello byond for view loop. if(istype(fuck, /mob/living/carbon/human)) var/mob/living/carbon/human/H = fuck @@ -161,7 +161,6 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // owner.vomit(40) CHECK_TICK //Check_tick right here, its motherfuckin magic. (To me at least) - //Handles the dwarf alcohol cycle tied to on_life, it ticks in dwarf_cycle_ticker. /obj/item/organ/dwarfgland/proc/dwarf_eth_cycle() //BOOZE POWER From f1b2eb93d724989e9c0cc5e822c7230296ceec88 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Wed, 16 Oct 2019 13:19:39 -0400 Subject: [PATCH 6/6] Moonshiner doesn't exist here --- code/modules/mob/living/carbon/human/species_types/dwarves.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index b485eb9609..946bffbdbc 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // /datum/species/dwarf/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Moonshiner)") //beard roullette + var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Long)") //beard roullette var/mob/living/carbon/human/H = C H.facial_hair_style = dwarf_hair H.update_hair()