def MarnokNameGenerator(unit):
# generates a random name and assigns it to the unit
# MARNOK NOTE use Python lists
pPlayer = gc.getPlayer(unit.getOwner())
pCiv = pPlayer.getCivilizationType()
pReligion = pPlayer.getStateReligion()
# # NOTE; does not actually apply the name to the unit, just generates name based on it.
# GENERIC NAME COMPONENTS
lPre=["Mi","Kon","Kar","Mar","Wal","He", "Ha", "Re"]
lMid=["the","and","tha","ent","ion","tio","for","tis","oft","che"]
lEnd=["th", "er","on","an","re","in","ed","nd","at","en","lle","man","ck","ton","nok"]
lWords1=["Great", "Mighty", "Strong"]
lWords2=["heart", "blood", "blade", "hand"]
# RELIGIONS
# additional name parts for each religion if any
# if pReligion == gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL'):
# lPre = lPre + ["G"]
#CIVILIZATIONS
#additional name parts for each civ, if any
#if requred, a civ can obliterate the default/generic entries by just doing say lPre=[] in stead of +=
if pCiv == gc.getInfoTypeForString('CIVILIZATION_BANNOR'):
lPre = lPre + ["Ban","Sab", "Cap","Tor","Val","Tri","Ten","Yv","El","Ach","Leh","Cen","Ay","Lan","Aar","In","Ea","Bar","Man","Ath","Mar","Ith","Cha"]
lMid = lMid + ["ath","rol","er","nit","tat","on","ith","ar","sur","as","ouse","ia","ay","mar"]
lEnd = lEnd + ["nor", "or", "iel", "ria","iel","us","io","is","ress","yr","an","a","din","ad","ith","hn","ack","aul""el","a","iar","end"]
lWords1 = lWords1 + ["Light"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_MALAKIM'):
lPre = lPre + ["Mal", "Gos", "Le", "Bal","Lod","Fro","Br","Bel","Tir","Ur","Gri","Min","Chi","Ad","Sho"]
lMid = lMid + ["a","en","i","er","o","han","ta"]
lEnd = lEnd + ["kim", "am", "ne","der","te","hk","yn","en","gul","os","son","low","sh","iel","ka"]
lWords1 = lWords1 + ["Golden", "Storm"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_ELOHIM'):
lPre = lPre + ["El","Eth","Ein", "Log", "Im","Sir","Fin","Cah","In","Sla","Gar","Caf","War","Ven","Dro","Or","Ros","Val","Ach","Sap"]
lMid = lMid + ["oh","man", "on","ish","boff","ry","gh", "ed","gu","en","ma"]
lEnd = lEnd + ["im", "os", "ne", "ion","uel","a","ner","hir","in","ne","voe","es","ren","try","an","iel","ill","tia"]
lWords1 = lWords1 + ["White","Pure"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_MERCURIANS'):
lPre = lPre + ["G"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_LUCHUIRP'):
lPre = lPre + ["Luch","Gar","Gy","Bee", "Baw", "Im","Sir","Fin","Ith","Mut","Ti","Morr","Val","Nub"]
lMid = lMid + ["u","r","man", "on","ral","an","a","teb","r","na","il"]
lEnd = lEnd + ["im", "i", "l", "irp","uel","a","ner","ia","bo","an","io","dom","ar"]
lWords1 = lWords1 + ["Delver"]
lWords2 = lWords2 + ["crafter"]
# schema often involves ' between syllables
if pCiv == gc.getInfoTypeForString('CIVILIZATION_KURIOTATES'):
lPre = lPre + ["Kur","Car","Kwy","Nag","Av","Kar","Cal","Kal","Pa","Gan","Gar","Gra"]
lMid = lMid + ["io","ta","d","the","gar","el","e","le","re"]
lEnd = lEnd + ["te", "da", "ith","llar","ond","x","ef","ythe","asc"]
lWords1 = lWords1 + ["Dragon", "Legend"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_LJOSALFAR'):
lPre = lPre + ["Ljo","Fyr","Am","Ar", "Pha", "The","Sir","Fin","Bru","Yon","Den","Ea","E","Ber","Kha","I","El","Al","Ti","Ma","Or","Ka"]
lMid = lMid + ["sal","d","el", "anch","en","ed","ss","n","di","rol","j","gan","h","men","tur"]
lEnd = lEnd + ["far", "well", "ier", "dal","uel","ra","a","ti","na","rom","ca","odd","k","dar","ull","we","ix","s"]
lWords2 = lWords2 + ["leaf", "tree"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_KHAZAD'):
lPre = lPre + ["Kha", "Art","Kan","Fir","Hal","Ka","Ark"]
lMid = lMid + ["sal","tur","d","z","rad","rok","k"]
lEnd = lEnd + ["zad","us","rod","zak","ar","ok","ock","od","ang","an"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_SIDAR'):
lPre = lPre + ["San","Ce","Ve","Ska","Sta"]
lMid = lMid + ["dal","lect","ti","t","ta","arl","isc"]
lEnd = lEnd + ["phon","lo","ra","as","us","on","iv"]
lWords1 = lWords1 + ["Shadow", "Dark", "Mist", "Grey"]
lWords2 = lWords2 + ["shade", "wane"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_LANUN'):
lPre = lPre + ["Lan","Fal","Han", "Guy", "Thre","In","Dun","Ay","Sand","Haw","But","Mid","Ax","Sam","Wil","Crom","Luc","Mor","Spar"]
lMid = lMid + ["am","man", "ep","wi","dl","li","r"]
lEnd = lEnd + ["un", "ar", "nah", "in","kin","kins","ler","e","am","well","as","ss","ow"]
lWords1 = lWords1 + ["Sea", "Red", "Blue", "Drift","Le Grande"]
lWords1 = lWords1 + ["brush","wood","hand","deck", "beard"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_GRIGORI'):
lPre = lPre + ["Gri", "Cas","Lu","Mid","Co","Pet","Bos","Lee","Li","Ju","Gon","Mid","Bi"]
lMid = lMid + ["gor","si","on","at","g","n","ga","ee","st","reg","rej"]
lEnd = lEnd + ["el","ar","on","ga","l","a","ji","gi"]
lWords1 = lWords1 + ["Dragon", "Brave"]
lWords2 = lWords2 + ["slayer"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_HIPPUS'):
lPre = lPre + ["Hip", "Tas","Rho","Al","Me","Con","Fe","Kas","Glor","Dra","Roh","Eo" ,"Cal","Theo","The"]
lMid = lMid + ["un","an","the","alth","r","t","air","ast","irr","ih","hi","ling","van","en","ard"]
lEnd = lEnd + ["pus","na","ond","iss","ar","il","ad","im","as","ling","l","ed","ion","on","den","od","mer"]
lWords2 = lWords2 + ["rider"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_AMURITES'):
lPre = lPre + ["Am","Val", "Da", "Cas", "Ky","Ev","Cev","Ud","Ci","Glo","Cor","Ang"]
lMid = lMid + ["ur", "led", "wall", "lor","en","mar","ri","en","ten","ti"]
lEnd = lEnd + ["ia", "awn", "in","en","il", "el"]
lWords1 = lWords1 + ["Even","Chanter"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_DOVIELLO'):
lPre = lPre + ["Dov","Cha", "Ma", "Cas", "Ky","Ev","Bja","Fji", "Bjo","Fja","Thor","Grot"]
lMid = lMid + ["iel", "ran", "hal", "lor","orn","ist","del","var"]
lEnd = lEnd + ["lo", "don", "a","en","ster","oy","orn","ver","sson","ter"]
lWords1 = lWords1 + ["Hunter", "Wild"]
lWords2 = lWords2 + ["wolf", "heim"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_BALSERAPHS'):
lPre = lPre + ["Bal", "Jub", "Hex", "Gau", "Ar", "Um", "Mi","Gi", "Gu", "Ta"]
lMid = lMid + ["ser","th", "ass","rac", "rack", "ack"]
lEnd = lEnd + ["aph","ell","ells", "kin","io","ing"]
lWords1 = lWords1 + ["Crazy", "Wild", "Crazed", "Moon", "Mind"]
lWords2 = lWords2 + ["touched", "broken"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_CLAN_OF_EMBERS'):
lPre = lPre + ["Jon","End","She","Sha","Nez","Ba","Tu" ]
lMid = lMid + ["el","z","ick","v","al","k"]
lEnd = lEnd + ["as","ain","ba","ak","ul","al","eth"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_SVARTALFAR'):
lPre = lPre + ["Fae","Vic", "Nyx","Shar","Mal","Loth","Tar","Fey","Ter","Do"]
lMid = lMid + ["alf","r","on","em","fir", "sha","dr","k","l"]
lEnd = lEnd + ["ar","yl","ia","kin","iss","ess","kah"]
lWords1 = lWords1 + ["Dark", "Night"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_CALABIM'):
lPre = lPre + ["Cal","Al","Fla","Mor","Pre","Ac","Ad","Kri","It","Am","An","Ka","Pe"]
lMid = lMid + ["a","ex","ur","s","o","v","d","ner"]
lEnd = lEnd + ["bim","is","oi","os", "ar", "a","ia"]
lWords1 = lWords1 + ["Blood", "Dark", "Night"]
lWords2 = lWords2 + ["moon", "drinker", "lord"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_SHEAIM'):
lPre = lPre + ["She","Te","Ar","Os", "Gab","Gal","Gro","Fro","Kul","Ske","Lad"]
lMid = lMid + ["a","bry","ban","el","ling","kur","dek","gur"]
lEnd = lEnd + ["im","n","di","la","ig"]
lWords1 = lWords1 + ["Chaos"]
lWords2 = lWords2 + ["breaker", "end"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_ILLIANS'):
lPre = lPre + ["Ill","Au","Ul","Gar","Dra","Ror","Lat","Tar","Cal","Ret","Tel","Tan","Gos"]
lMid = lMid + ["r","v","d"]
lEnd = lEnd + ["ian","in","ic","an","uk","lor","kor", "ka","kar","on","ar"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_BARBARIAN'):
lPre = lPre + ["Gru","Bra","No","Os","Dir","Ka","Z"]
lMid = lMid + ["g","ck","gg","sh","-","b","bh","aa"]
lEnd = lEnd + ["al","e","ek","esh","ol","olg","alg"]
lWords1 = lWords1 + ["Bone","Skull","Death", "Hate", "Old", "Scar"]
lWords2 = lWords2 + ["smasher", "breaker", "mangle","monger"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_INFERNAL'):
lPre = lPre + ["G"]
if pCiv == gc.getInfoTypeForString('CIVILIZATION_MERCURIANS'):
lPre = lPre + ["G"]
iSchema = CyGame().getSorenRandNum(4, "Name Gen")
if iSchema == 1:
sPre = lPre[CyGame().getSorenRandNum(len(lPre), "Name Gen")-1]
sMid = lMid[CyGame().getSorenRandNum(len(lMid), "Name Gen")-1]
sEnd = lEnd[CyGame().getSorenRandNum(len(lEnd), "Name Gen")-1]
sFull = sPre+sMid+sEnd
if iSchema == 2:
sPre = lPre[CyGame().getSorenRandNum(len(lPre), "Name Gen")-1]
sMid_a = lMid[CyGame().getSorenRandNum(len(lMid), "Name Gen")-1]
sMid_b = lMid[CyGame().getSorenRandNum(len(lMid), "Name Gen")-1]
sEnd = lEnd[CyGame().getSorenRandNum(len(lEnd), "Name Gen")-1]
sFull = sPre+sMid_a+sMid_b+sEnd
if iSchema == 3:
sPre = lPre[CyGame().getSorenRandNum(len(lPre), "Name Gen")-1]
sEnd = lEnd[CyGame().getSorenRandNum(len(lEnd), "Name Gen")-1]
sFull = sPre+sEnd
if iSchema >3:
sPre = lPre[CyGame().getSorenRandNum(len(lPre), "Name Gen")-1]
sMid = lMid[CyGame().getSorenRandNum(len(lMid), "Name Gen")-1]
sEnd = lEnd[CyGame().getSorenRandNum(len(lEnd), "Name Gen")-1]
sFull = sPre+sMid+sEnd
sPre = lPre[CyGame().getSorenRandNum(len(lPre), "Name Gen")-1]
sEnd = lEnd[CyGame().getSorenRandNum(len(lEnd), "Name Gen")-1]
sFull = sFull+" "+sPre+sEnd
if len(sFull) > 25:
sFull = sFull[:25]
return sFull