Starsector API
Loading...
Searching...
No Matches
MarkovNames.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.procgen;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.HashMap;
6import java.util.HashSet;
7import java.util.LinkedHashSet;
8import java.util.List;
9import java.util.Map;
10import java.util.Random;
11import java.util.Set;
12
13import com.fs.starfarer.api.Global;
14import com.fs.starfarer.api.util.WeightedRandomPicker;
15
16public class MarkovNames {
17
18 public static String UNUSED = "*";
19 public static String START = "@";
20 public static String END = "#";
21
22 public static float [][] prob;
23
24 public static String alphabet = UNUSED + START + END + "abcdefghijklmnopqrstuvwxyz-' ";
25 public static Map<String, Integer> stringToIndex = new HashMap<String, Integer>();
26 public static Map<Integer, String> indexToString = new HashMap<Integer, String>();
27 public static int order = 2;
28
29 public static void loadIfNeeded() {
30 if (prob == null) {
31 List<String> names = new ArrayList<String>();
32 Collection<NameGenData> specs = Global.getSettings().getAllSpecs(NameGenData.class);
33 for (NameGenData spec : specs) {
34 //if ((float) Math.random() > 0.1f) continue;
35 names.add(spec.getName());
36 }
37 MarkovNames.load(names, 3);
38 }
39 }
40
41 public static void load(List<String> names, int order) {
42 MarkovNames.order = order;
43 clear();
44
45 List<String> all = new ArrayList<String>();
46 for (int i = 1; i < alphabet.length(); i++) {
47 String s1 = "" + alphabet.charAt(i);
48 all.add(s1);
49 for (int j = 1; j < alphabet.length(); j++) {
50 String s2 = "" + alphabet.charAt(j);
51 all.add(s1 + s2);
52
53 if (order == 3) {
54 for (int k = 1; k < alphabet.length(); k++) {
55 String s3 = "" + alphabet.charAt(k);
56 all.add(s1 + s2 + s3);
57 }
58 }
59 }
60 }
61 for (String str : all) {
62 Integer index = computeIndex(str);
63 stringToIndex.put(str, index);
64 indexToString.put(index, str);
65 }
66
67 int size = (int) Math.pow(alphabet.length() + 1, order) + (int) Math.pow(alphabet.length(), order - 1);
68
69 prob = new float [size][alphabet.length()];
70
71
72 for (String name : names) {
73 if (name.contains("$")) continue;
74 if (containsWord(name, "field")) continue;
75 if (containsWord(name, "disk")) continue;
76 if (containsWord(name, "asteroid")) continue;
77 if (containsWord(name, "nebula")) continue;
78 if (containsWord(name, "magnetic")) continue;
79 if (containsWord(name, "star")) continue;
80 if (containsWord(name, "planet")) continue;
81 if (containsWord(name, "world")) continue;
82 load(name);
83 }
84
85 int x = 0;
86 }
87
88 public static void load(String name) {
89 name = START + name + END;
90 for (int i = 0; i < name.length() - 1; i++) {
91 String curr = "" + name.charAt(i);
92 if (i > 0) curr = "" + name.charAt(i - 1) + curr;
93 if (i > 1 && order == 3) curr = "" + name.charAt(i - 2) + curr;
94
95 String next = "" + name.charAt(i + 1);
96
97 int x = getIndex(curr.toLowerCase());
98 int y = getIndex(next.toLowerCase());
99
100 prob[x][y]++;
101 }
102 }
103
104 public static boolean sanityCheck(String name) {
105 if (name.length() <= 2) return false;
106 if (name.length() > 20) return false;
107
108 int maxUnbroken = 0;
109 int currUnbroken = 0;
110 int numSpaces = 0;
111 for (int i = 0; i < name.length(); i++) {
112 String curr = "" + name.charAt(i);
113 if (" ".equals(curr) || "-".equals(curr)) {
114 currUnbroken = 0;
115 }
116 if (" ".equals(curr)) {
117 numSpaces++;
118 }
119
120 currUnbroken++;
121 if (currUnbroken > maxUnbroken) {
122 maxUnbroken = currUnbroken;
123 }
124 }
125
126 if (numSpaces >= 2) return false;
127 if (maxUnbroken >= 12) return false;
128
129 if (containsBad(name)) return false;
130
131 return true;
132 }
133
134 public static class MarkovNameResult {
135 public String name;
136 public double probability;
137 }
138
139 public static MarkovNameResult generate(Random random) {
140 if (prob == null) return null;
141 if (random == null) random = new Random();
142
143 double probability = 1f;
144
145 String name = "";
146 String add = START;
147 while (!END.equals(add) && add != null) {
148 name += add;
149
150 String curr = add;
151 if (name.length() > 1) {
152 curr = "" + name.charAt(name.length() - 2) + curr;
153 }
154 if (name.length() > 2 && order == 3) {
155 curr = "" + name.charAt(name.length() - 3) + curr;
156 }
157
158 WeightedRandomPicker<String> picker = new WeightedRandomPicker<String>(random);
159 int index = getIndex(curr);
160 if (index >= 0) {
161 for (int i = 0; i < prob[index].length; i++) {
162 float weight = prob[index][i];
163 if (weight > 0) {
164 String next = getString(i);
165 picker.add(next, weight);
166 }
167 }
168 }
169
170 add = picker.pick();
171 if (add != null) {
172 int pickIndex = picker.getItems().indexOf(add);
173 if (pickIndex >= 0) {
174 probability *= (double) (picker.getWeight(pickIndex) / picker.getTotal());
175 }
176 }
177
178
179 if (name.length() > 50) break;
180 }
181 if (add != null) name += add;
182
183
184 if (name.startsWith(START)) name = name.substring(1);
185 if (name.endsWith(END)) name = name.substring(0, name.length() - 1);
186
187 StringBuffer result = new StringBuffer();
188 String prev = null;
189 for (int i = 0; i < name.length(); i++) {
190 String curr = "" + name.charAt(i);
191 if (" ".equals(prev) || "-".equals(prev) || prev == null) {
192 curr = curr.toUpperCase();
193 }
194 result.append(curr);
195 prev = curr;
196 }
197
198 name = result.toString();
199 if (!sanityCheck(name)) name = null;
200
201 if (name == null) return null;
202
203 MarkovNameResult r = new MarkovNameResult();
204 r.name = name;
205 r.probability = probability * 1000000;
206 return r;
207 }
208
209 public static void clear() {
210 prob = null;
211 stringToIndex.clear();
212 indexToString.clear();
213 }
214
215 public static Integer getIndex(String str) {
216 if (!stringToIndex.containsKey(str)) {
217 return alphabet.indexOf(" ");
218 }
219 return stringToIndex.get(str);
220 }
221 public static String getString(Integer index) {
222 if (!indexToString.containsKey(index)) {
223 return " ";
224 }
225 return indexToString.get(index);
226 }
227
228 public static int computeIndex(String str) {
229 int index = 0;
230 int radix = alphabet.length();
231
232 for (int i = 0; i < str.length(); i++) {
233 int val = alphabet.indexOf("" + str.charAt(i));
234 if (val < 0) continue;
235
236 index += val * Math.pow(radix, i);
237 radix++;
238 }
239
240 return index;
241 }
242
243
244 public static void main(String[] args) {
245 List<String> names = createNames();
246 load(names, 3);
247
248
249// for (int i = 0; i < 1000; i++) {
250// MarkovNameResult r = generate(null);
251// //if (r != null && r.name != null && r.probability > 1000 && !names.contains(r.name) && r.name.length() > 4) {
252// if (r != null && r.name != null) {
253// System.out.println(r.name + "\t\t\t\t(" + (int) r.probability + ")");
254// }
255// }
256 Set<String> generated = new LinkedHashSet<String>();
257 for (int i = 0; i < 20000; i++) {
258 MarkovNameResult r = MarkovNames.generate(null);
259 if (r == null) continue;
260 if (r.name == null) continue;
261 if (names.contains(r.name)) continue;
262 if (generated.contains(r.name)) continue;
263
264 System.out.println(r.name);
265 generated.add(r.name);
266 }
267 }
268
269 public static boolean containsWord(String in, String word) {
270 String [] split = in.split(" |-");
271 for (String curr : split) {
272 if (curr.toLowerCase().equals(word.toLowerCase())) {
273 return true;
274 }
275 }
276 return false;
277 }
278
279 public static boolean containsBad(String in) {
280 if (blocked.contains(in.toLowerCase())) return true;
281
282 String [] split = in.split(" |-");
283 for (String curr : split) {
284 if (badWords.contains(curr.toLowerCase())) return true;
285 }
286
287 boolean allBlocked = true;
288 for (String curr : split) {
289 if (!blocked.contains(curr.toLowerCase())) {
290 allBlocked = false;
291 break;
292 }
293 }
294 if (allBlocked) return true;
295
296 return false;
297 }
298
299 public static Set<String> badWords = new HashSet<String>();
300 public static Set<String> blocked = new HashSet<String>();
301 static {
302 blocked = new HashSet<String>();
303 blocked.add("yes");
304 blocked.add("the");
305 blocked.add("new");
306 blocked.add("old");
307 blocked.add("and");
308 blocked.add("but");
309 blocked.add("for");
310 blocked.add("all");
311 blocked.add("any");
312 blocked.add("are");
313 blocked.add("ask");
314 blocked.add("etc");
315 blocked.add("far");
316 blocked.add("few");
317 blocked.add("get");
318 blocked.add("got");
319 blocked.add("him");
320 blocked.add("his");
321 blocked.add("how");
322 blocked.add("inc");
323 blocked.add("may");
324 blocked.add("non");
325 blocked.add("nor");
326 blocked.add("not");
327 blocked.add("now");
328 blocked.add("off");
329 blocked.add("one");
330 blocked.add("our");
331 blocked.add("out");
332 blocked.add("own");
333 blocked.add("per");
334 blocked.add("que");
335 blocked.add("saw");
336 blocked.add("say");
337 blocked.add("sub");
338 blocked.add("too");
339 blocked.add("try");
340 blocked.add("two");
341 blocked.add("use");
342 blocked.add("lay");
343 blocked.add("yet");
344 blocked.add("you");
345
346 badWords = new HashSet<String>();
347 badWords.add("fuck");
348 badWords.add("fucks");
349 badWords.add("fucker");
350 badWords.add("fucking");
351 badWords.add("fucked");
352 badWords.add("shit");
353 badWords.add("shits");
354 badWords.add("cunt");
355 badWords.add("cunts");
356 badWords.add("bitch");
357 badWords.add("bitches");
358 badWords.add("ass");
359 badWords.add("arse");
360 badWords.add("arses");
361 badWords.add("asses");
362 badWords.add("dick");
363 badWords.add("dicks");
364 badWords.add("cock");
365 badWords.add("cocks");
366 badWords.add("nigga");
367 badWords.add("niggas");
368 badWords.add("nigger");
369 badWords.add("niggers");
370 badWords.add("shitass");
371 badWords.add("whore");
372 badWords.add("twat");
373 badWords.add("twats");
374 badWords.add("pussy");
375 badWords.add("pussys");
376 badWords.add("pussies");
377 badWords.add("butt");
378 badWords.add("butts");
379 badWords.add("anus");
380 }
381
382
383 public static List<String> createNames() {
384 List<String> names = new ArrayList<String>();
385
386 names.add("Aelurus");
387 names.add("Hera");
388 names.add("Ares");
389 names.add("Deimos");
390 names.add("Phobos");
391 names.add("Kydoimos");
392 names.add("Makhai");
393 names.add("Mysminai");
394 names.add("Polemos");
395 names.add("Hebe");
396 names.add("Alexiares");
397 names.add("Anicetus");
398 names.add("Eris");
399 names.add("Dysnomia");
400 names.add("Lethe");
401 names.add("Limos");
402 names.add("Algos");
403 names.add("Neikea");
404 names.add("Eleuthia");
405 names.add("Enyo");
406 names.add("Enyalius");
407 names.add("Baraq");
408 names.add("Zumurrud");
409 names.add("Lithos");
410 names.add("Temblor");
411 names.add("Baal");
412 names.add("Bel");
413 names.add("Haddu");
414 names.add("Ishkur");
415 names.add("Enki");
416 names.add("Dilmun");
417 names.add("Ki");
418 names.add("Nintul");
419 names.add("Ninsutu");
420 names.add("Ninkasi");
421 names.add("Dazimua");
422 names.add("Enshagag");
423 names.add("Nintu");
424 names.add("Ninsar");
425 names.add("Ninkurra");
426 names.add("Uttu");
427 names.add("Isimud");
428 names.add("Ishtar");
429 names.add("Dumuzi");
430 names.add("Gudam");
431 names.add("Galatura");
432 names.add("Kurjara");
433 names.add("Dagon");
434 names.add("Belatu");
435 names.add("Godiva");
436 names.add("Great Dismal");
437 names.add("Herzog");
438 names.add("Pandemonium");
439 names.add("Mulciber");
440 names.add("Mammon");
441 names.add("Leviathon");
442 names.add("Asmodeus");
443 names.add("Belphegor");
444 names.add("Belial");
445 names.add("Berith");
446 names.add("Ashtoreth");
447 names.add("Sidon");
448 names.add("Galera");
449 names.add("Moloch");
450 names.add("Utopia");
451 names.add("Azathoth");
452 names.add("Abaddon");
453 names.add("Dis");
454 names.add("Medea");
455 names.add("Crucible");
456 names.add("Wyrm");
457 names.add("Dantalion");
458 names.add("Humility");
459 names.add("Romance");
460 names.add("Wan");
461 names.add("Leeloo");
462 names.add("Zhu Que");
463 names.add("Ada");
464 names.add("Rukh");
465 names.add("Zenobia");
466 names.add("Labyrinth");
467 names.add("Genbu");
468 names.add("Qilin");
469 names.add("Black Emperor");
470 names.add("Myrkheim");
471 names.add("Idunn");
472 names.add("Draupnir");
473 names.add("Ivaldi");
474 names.add("Brokr");
475 names.add("Gadfly");
476 names.add("Eitri");
477 names.add("Gullinbursti");
478 names.add("Habrok");
479 names.add("Jotunheim");
480 names.add("Greip");
481 names.add("Gjalp");
482 names.add("Bardarbunga");
483 names.add("Thrivaldi");
484 names.add("Zosimos");
485 names.add("$parent's Wheel");
486 names.add("Ezekial's Wheel");
487 names.add("Arc of $parent");
488 names.add("$parent's Wreath");
489 names.add("Torq of $parent");
490 names.add("Crown of $parent");
491 names.add("Ring System");
492 names.add("Accretion Disk");
493 names.add("The Ouroboros");
494 names.add("$parent's Girdle");
495 names.add("Iron Stream");
496 names.add("Stone River");
497 names.add("The Glittering Band");
498 names.add("Asteroid Belt");
499 names.add("Stone Conclave");
500 names.add("Freyja");
501 names.add("Brisingamen");
502 names.add("Wotan");
503 names.add("Draupnir");
504 names.add("Hlidskjalf");
505 names.add("Ring of Gyges");
506 names.add("Fenrir");
507 names.add("Gjoll");
508 names.add("Sledovik");
509 names.add("Sessho-seki");
510 names.add("Arkady");
511 names.add("Rocannon's World");
512 names.add("Baslag");
513 names.add("Boone");
514 names.add("Zakalwe");
515 names.add("Darkense");
516 names.add("Livueta");
517 names.add("Elethiomel ");
518 names.add("Staberinde");
519 names.add("Cache");
520 names.add("Ged");
521 names.add("Palaver");
522 names.add("Rigamarole");
523 names.add("Scrimshaw");
524 names.add("Hadria");
525 names.add("Rosas");
526 names.add("Orobas");
527 names.add("Murmur");
528 names.add("Asmoday");
529 names.add("Marax");
530 names.add("Amon");
531 names.add("Komarov");
532 names.add("Nibiru");
533 names.add("Brahe");
534 names.add("Perseus");
535 names.add("Cerenkov");
536 names.add("Cygnus");
537 names.add("Saurus");
538 names.add("Pisces");
539 names.add("Carina");
540 names.add("Draco");
541 names.add("Elysia");
542 names.add("Irkalla");
543 names.add("Meropis");
544 names.add("Nysa");
545 names.add("Paititi");
546 names.add("Suddene");
547 names.add("Yomi");
548 names.add("Baltia");
549 names.add("Union");
550 names.add("Jeremiah's World");
551 names.add("Strathcona");
552 names.add("Tamsin");
553 names.add("Kete");
554 names.add("Hrosa");
555 names.add("Aether");
556 names.add("Eros");
557 names.add("Asphodel");
558 names.add("Erebus");
559 names.add("Nyx");
560 names.add("Acheron");
561 names.add("Kharon");
562 names.add("Tartarus");
563 names.add("Khthon");
564 names.add("Bothros");
565 names.add("Megaron");
566 names.add("Thanatos");
567 names.add("Hypnos");
568 names.add("Morpheus");
569 names.add("Phobetor");
570 names.add("Phantasos");
571 names.add("Oneiroi");
572 names.add("Lethe");
573 names.add("Cocytus");
574 names.add("Oceanus Nebula");
575 names.add("Elysion");
576 names.add("Minos");
577 names.add("Khora");
578 names.add("Mnemosyne");
579 names.add("Calliope");
580 names.add("Myhdon");
581 names.add("Edonus");
582 names.add("Biston");
583 names.add("Kleio");
584 names.add("Hyacinth ");
585 names.add("Euterpe");
586 names.add("Rhesus");
587 names.add("Erato");
588 names.add("Melpomene");
589 names.add("Polymnia");
590 names.add("Aglaope");
591 names.add("Leucosia");
592 names.add("Ligeia");
593 names.add("Molpe");
594 names.add("Pathenope");
595 names.add("Peisinoe");
596 names.add("Thelxiope");
597 names.add("Terpsichore");
598 names.add("Thalia");
599 names.add("The Korybantes");
600 names.add("Urania");
601 names.add("Linus");
602 names.add("Dia");
603 names.add("Helicon");
604 names.add("Aoide");
605 names.add("Melete");
606 names.add("Mneme");
607 names.add("Parnassos");
608 names.add("The Banshee");
609 names.add("The Sirens");
610 names.add("Orpheus");
611 names.add("Tragedy");
612 names.add("The Kuretes");
613 names.add("Mangindusa");
614 names.add("Bugawasin");
615 names.add("Polo");
616 names.add("Sedumunadoc");
617 names.add("Tabiacoud");
618 names.add("Anggugru");
619 names.add("Balugu");
620 names.add("Kalabagang");
621 names.add("Taliyakad");
622 names.add("Langit");
623 names.add("Basad");
624 names.add("Sidpan");
625 names.add("Dibuwat");
626 names.add("Kavacha");
627 names.add("Orm");
628 names.add("Ogion");
629 names.add("Ring of Morred");
630 names.add("Selidor");
631 names.add("Nug");
632 names.add("Yeg");
633 names.add("Rhogog");
634 names.add("Hastur");
635 names.add("Yig");
636 names.add("Rama");
637 names.add("Hanuman");
638 names.add("Vanara");
639 names.add("Surasa");
640 names.add("Vasuki");
641 names.add("The Nagas");
642 names.add("Kaliya");
643 names.add("Manasa");
644 names.add("Bakunawa");
645 names.add("Karkotaka");
646 names.add("Mucalinda");
647 names.add("Padmavati");
648 names.add("Pearl River");
649 names.add("Zmey");
650 names.add("Lamya");
651 names.add("Smok");
652 names.add("Stygia");
653 names.add("Cimmeria");
654 names.add("Magen");
655 names.add("Zirnitra");
656 names.add("Arkona");
657 names.add("Ved");
658 names.add("Kolobok");
659 names.add("Mokosh");
660 names.add("Perun");
661 names.add("Morana");
662 names.add("Veles");
663 names.add("Jarilo");
664 names.add("Morana");
665 names.add("Svarog");
666 names.add("Dazbog");
667 names.add("Indrik");
668 names.add("Stribog");
669 names.add("Gamayun");
670 names.add("Sirin");
671 names.add("Alkonost");
672 names.add("The Simargl");
673 names.add("Baba Yaga");
674 names.add("Buyan");
675 names.add("Koschei");
676 names.add("Kitezh");
677 names.add("Neter");
678 names.add("Pontus");
679 names.add("Tiamat");
680 names.add("Apsu");
681 names.add("Lotan");
682 names.add("Basmu");
683 names.add("Usumgallu");
684 names.add("Masmahhu");
685 names.add("Mushussu");
686 names.add("Lahmu");
687 names.add("Ugallu");
688 names.add("Uridimmu");
689 names.add("Girtablullu");
690 names.add("Umu Dabrutu");
691 names.add("Kulullu");
692 names.add("Kusarikku");
693 names.add("Yaw");
694 names.add("Rahab");
695 names.add("Tannin");
696 names.add("Anzu");
697 names.add("Ausir");
698 names.add("Horos");
699 names.add("Nekhen");
700 names.add("Anapa");
701 names.add("Atuan");
702 names.add("Tenar");
703 names.add("Kossil");
704 names.add("Rota Fortunae");
705 names.add("Siege Perilous");
706 names.add("World Mill");
707 names.add("Ara");
708 names.add("Durer's Star");
709 names.add("Melancholia");
710 names.add("Moskva");
711 names.add("Griseus");
712 names.add("Breq");
713 names.add("Hungry Ghost");
714 names.add("Diyu");
715 names.add("Yama");
716 names.add("Naihe Qiao");
717 names.add("Youdu");
718 names.add("Qinguang");
719 names.add("Bing Diyu");
720 names.add("Chujiang");
721 names.add("Heisheng Dadi");
722 names.add("Songdi");
723 names.add("Wuguan");
724 names.add("Xuechi");
725 names.add("Yanluo");
726 names.add("Diancheng");
727 names.add("Jiaohuan");
728 names.add("Taishan");
729 names.add("Roujiang");
730 names.add("Dushi");
731 names.add("Menguo");
732 names.add("Pingden");
733 names.add("Avici");
734 names.add("Jigoku");
735 names.add("Enma");
736 names.add("Gargoyle");
737 names.add("Familiar");
738 names.add("Schrat");
739 names.add("Kobold");
740 names.add("Youming");
741 names.add("Yinjian");
742 names.add("Soleyn");
743 names.add("Glowan");
744 names.add("Sagan");
745 names.add("Robinson's Moon");
746 names.add("Idir");
747 names.add("Morthanveld");
748 names.add("Issorile");
749 names.add("Azad");
750 names.add("Gormenghast");
751 names.add("Knole");
752 names.add("Carcassonne");
753 names.add("Sark");
754 names.add("Rameumptom");
755 names.add("Vidur");
756 names.add("Jahannam");
757 names.add("Zaqqum");
758 names.add("Maalik");
759 names.add("Haawiyah");
760 names.add("Barzakh");
761 names.add("Al Nar");
762 names.add("Jahim");
763 names.add("Jannah");
764 names.add("Touba");
765 names.add("Araf");
766 names.add("Sheol");
767 names.add("Rephaim");
768 names.add("Perdition");
769 names.add("Aaru");
770 names.add("Neter-hkertet");
771 names.add("Erlig");
772 names.add("Karoaglanlar");
773 names.add("Karakizlar");
774 names.add("Karash");
775 names.add("Matyr");
776 names.add("Shyngay");
777 names.add("Komur");
778 names.add("Badysh");
779 names.add("Yabash");
780 names.add("Temir");
781 names.add("Uchar");
782 names.add("Kerey");
783 names.add("Ulgan");
784 names.add("Maidere");
785 names.add("The Ordog");
786 names.add("Yav");
787 names.add("Prav");
788 names.add("Nav");
789 names.add("Anyox");
790 names.add("Atlin");
791 names.add("The Chechidla");
792 names.add("Comiaken");
793 names.add("Cultus");
794 names.add("Gingolx");
795 names.add("The Nechako");
796 names.add("Tsimshian");
797 names.add("Ivavik");
798 names.add("Ghost Dance");
799 names.add("Mag Mell");
800 names.add("Loka");
801 names.add("Cipactli");
802 names.add("Ehecatl");
803 names.add("Spirit Wind");
804 names.add("Agiel");
805 names.add("Tesh");
806 names.add("Rohagi");
807 names.add("Cymek");
808 names.add("Bered Kai Nev");
809 names.add("Samael");
810 names.add("Agrat bat Mahlat");
811 names.add("Amamar");
812 names.add("Naamah");
813 names.add("Lilith");
814 names.add("Eisheth");
815 names.add("Zepar");
816 names.add("The Grigori");
817 names.add("The Sentinels");
818 names.add("Suriel");
819 names.add("Old Goat");
820 names.add("Kochab");
821 names.add("Yaqum");
822 names.add("Asbeel");
823 names.add("Gadreel");
824 names.add("Penemue");
825 names.add("Kasdaye");
826 names.add("Cambriel Nebula");
827 names.add("Armaros' Work");
828 names.add("The Myriad");
829 names.add("The Lost Legion");
830 names.add("Al Kathab");
831 names.add("The Armada");
832 names.add("Kohnid");
833 names.add("The Gengris");
834 names.add("New Suroch");
835 names.add("Xezbeth");
836 names.add("Xaphan");
837 names.add("Vanth");
838 names.add("The Erinyes");
839 names.add("Charun");
840 names.add("Calu");
841 names.add("Turms");
842 names.add("Aita");
843 names.add("Anvil");
844 names.add("Stray Dog");
845 names.add("Valefar");
846 names.add("Laverna");
847 names.add("Maderakka");
848 names.add("Sarakka");
849 names.add("Juksakka");
850 names.add("Uksakka");
851 names.add("Jabme-Akka");
852 names.add("Maan-Emo");
853 names.add("An");
854 names.add("Ki");
855 names.add("Anu");
856 names.add("Long");
857 names.add("Quy");
858 names.add("Lan");
859 names.add("Phung");
860 names.add("Art of the Jinns");
861 names.add("The Qarin");
862 names.add("Tuchulcha");
863 names.add("Suanggi");
864 names.add("Surgat");
865 names.add("The Imp");
866 names.add("Chax");
867 names.add("The Raven");
868 names.add("The Murder");
869 names.add("Saleos");
870 names.add("Puloman");
871 names.add("Indrani Sachi");
872 names.add("Sivasri");
873 names.add("The Pontianak");
874 names.add("The Pocong");
875 names.add("O Tokata");
876 names.add("Osor");
877 names.add("Empusa");
878 names.add("Mormo");
879 names.add("Onoskelis");
880 names.add("Mara");
881 names.add("Krampus");
882 names.add("Kroni");
883 names.add("Ravanan");
884 names.add("Kaliyan");
885 names.add("Thuriothanan");
886 names.add("Kad");
887 names.add("The Marid");
888 names.add("Hantu Raya");
889 names.add("Tuyul");
890 names.add("Koman-tong");
891 names.add("Koman-lay");
892 names.add("Kwee Kia");
893 names.add("Jenglot");
894 names.add("Gusoyn");
895 names.add("Gallu");
896 names.add("Gaap");
897 names.add("Dzoavits");
898 names.add("Klabautermann");
899 names.add("$parent's Jinx");
900 names.add("$parent's Hex");
901 names.add("The Hecatomb");
902 names.add("Grigri");
903 names.add("Bakaak");
904 names.add("Jumbee's Dance");
905 names.add("Kigatilik");
906 names.add("Qiqirn");
907 names.add("Tupilaq");
908 names.add("Tizheruk");
909 names.add("Run of the Haietlik");
910 names.add("Unhcegila");
911 names.add("Okeus");
912 names.add("Shapishico");
913 names.add("Atahsaya");
914 names.add("Wekufe");
915 names.add("Gualichu");
916 names.add("Babi Ngepet");
917 names.add("Royllo");
918 names.add("Braxil");
919 names.add("Mam");
920 names.add("Zuane");
921 names.add("Caprica");
922 names.add("Letum");
923 names.add("Pallida");
924 names.add("Somnus");
925 names.add("Nox");
926 names.add("Mors");
927 names.add("The Pactolus");
928 names.add("Socordia");
929 names.add("Ignavia");
930 names.add("Sabriel");
931 names.add("Lirael");
932 names.add("Clariel");
933 names.add("Ranna");
934 names.add("Mosrael");
935 names.add("Kibeth");
936 names.add("Dyrim");
937 names.add("Belgaer");
938 names.add("Astarael");
939 names.add("Saraneth");
940 names.add("Tanmar");
941 names.add("Maida");
942 names.add("Bentusle");
943 names.add("Asmaidas");
944 names.add("Groclant");
945 names.add("Nona");
946 names.add("Decima");
947 names.add("Morta");
948 names.add("Ratna");
949 names.add("Sharkara");
950 names.add("Valuka");
951 names.add("Panka");
952 names.add("Dhuma");
953 names.add("Tamaha");
954 names.add("Mahatamaha");
955 names.add("Achuguayo");
956 names.add("Teide");
957 names.add("Gara");
958 names.add("Jonay");
959 names.add("Chijoraji");
960 names.add("Achuhucanac");
961 names.add("Ganigo");
962 names.add("Tagoror");
963 names.add("Goro");
964 names.add("Sose");
965 names.add("Faunus");
966 names.add("Bona Dea");
967 names.add("Pitys");
968 names.add("Echo");
969 names.add("Kelaineus");
970 names.add("Argennon");
971 names.add("Aigikoros");
972 names.add("Eugeneios");
973 names.add("Omester");
974 names.add("Daphoenus");
975 names.add("Philamnos");
976 names.add("Xanthos");
977 names.add("Glaukos");
978 names.add("Phorbas");
979 names.add("Leng");
980 names.add("Kang Admi");
981 names.add("Mika");
982 names.add("Bun Manchi");
983 names.add("Migoi");
984 names.add("Dzu-teh");
985 names.add("Miche");
986 names.add("Sarkomand");
987 names.add("Cerenerian Sea");
988 names.add("Kephalos");
989 names.add("Procris");
990 names.add("Minyas");
991 names.add("Cymene");
992 names.add("Arcesius");
993 names.add("Astraeus");
994 names.add("Boreas");
995 names.add("Notus");
996 names.add("Eurus");
997 names.add("Zephyrus");
998 names.add("Toci");
999 names.add("Coatlicue");
1000 names.add("Centeotl");
1001 names.add("Chicomecoatl");
1002 names.add("Texcatlipoca");
1003 names.add("Xantico");
1004 names.add("Chantico");
1005 names.add("Mayahue");
1006 names.add("Mixcoatl");
1007 names.add("Centzon Huitznauhtin");
1008 names.add("Tlaloc");
1009 names.add("The Anillo");
1010 names.add("Tohil");
1011 names.add("Denyen");
1012 names.add("Ekwesh");
1013 names.add("Peleset");
1014 names.add("Sherden");
1015 names.add("Teresh");
1016 names.add("Weshesh");
1017 names.add("Tjeker");
1018 names.add("Bull Moose");
1019 names.add("Minnow");
1020 names.add("Will-o-wisp");
1021 names.add("Stingy Jack");
1022 names.add("City of Brass");
1023 names.add("Saraph");
1024 names.add("Harah");
1025 names.add("Hazor");
1026 names.add("Gezor");
1027 names.add("Ningishzida");
1028 names.add("Azimua");
1029 names.add("Nehushtan");
1030 names.add("Oberon");
1031 names.add("Cymnea");
1032 names.add("Faiella");
1033 names.add("Clarissa");
1034 names.add("Riga");
1035 names.add("Sawal");
1036 names.add("Dara");
1037 names.add("Mandor");
1038 names.add("Jurt");
1039 names.add("Corwin");
1040 names.add("Merlin");
1041 names.add("Brand");
1042 names.add("Jasra");
1043 names.add("Luke");
1044 names.add("Random");
1045 names.add("Morganthe");
1046 names.add("Martin");
1047 names.add("Morganna");
1048 names.add("Moronoe");
1049 names.add("Mazoe");
1050 names.add("Gliten");
1051 names.add("Glitonea");
1052 names.add("Tyronoe");
1053 names.add("Thiten");
1054 names.add("Pomorum");
1055 names.add("Basilia");
1056 names.add("Mentonomon");
1057 names.add("Suroch");
1058 names.add("Grimnebulin");
1059 names.add("Weaver");
1060 names.add("Tesh");
1061 names.add("Shining Tor");
1062 names.add("Vannin");
1063 names.add("Manau");
1064 names.add("Monabia");
1065 names.add("Cushag");
1066 names.add("Ayre");
1067 names.add("Neb");
1068 names.add("Dhoo");
1069 names.add("Keter");
1070 names.add("Zohar");
1071 names.add("Binah");
1072 names.add("Netzach");
1073 names.add("Yesod");
1074 names.add("Hod");
1075 names.add("Simchah");
1076 names.add("Emet");
1077 names.add("Grimsnes");
1078 names.add("Alfur");
1079 names.add("Grensdalur");
1080 names.add("Troll");
1081 names.add("Askja");
1082 names.add("Vofa");
1083 names.add("Surtsey");
1084 names.add("Sal");
1085 names.add("Krossa");
1086 names.add("Hvita");
1087 names.add("Olfusa");
1088 names.add("Grendel");
1089 names.add("Modor");
1090 names.add("The Chiral Wisp");
1091 names.add("Avice");
1092 names.add("Maculatus");
1093 names.add("Deinos");
1094 names.add("Vuzgrimeti");
1095 names.add("Balwom");
1096 names.add("Spira");
1097 names.add("Zaranya");
1098 names.add("The Motley");
1099 names.add("Moile");
1100 names.add("Prism");
1101 names.add("Arcus");
1102 names.add("Welo");
1103 names.add("Acorn");
1104 names.add("Hope");
1105 names.add("Wonder");
1106 names.add("The Confluence");
1107 names.add("Cirrus");
1108 names.add("Olwyn");
1109 names.add("Pantheon");
1110 names.add("Eye");
1111 names.add("Pharos");
1112 names.add("Tempest");
1113 names.add("The Precipice");
1114 names.add("Archon");
1115 names.add("Sabazios");
1116 names.add("Terror");
1117 names.add("Despair");
1118 names.add("Abandon");
1119 names.add("Legion");
1120 names.add("Golgotha");
1121 names.add("Blost");
1122 names.add("Uz");
1123 names.add("Hul");
1124 names.add("Togar");
1125 names.add("Mesha");
1126 names.add("Mu");
1127 names.add("Naacal");
1128 names.add("Zahra");
1129 names.add("Hufra");
1130 names.add("Zill");
1131 names.add("Swang");
1132 names.add("Troano");
1133 names.add("Mayda");
1134 names.add("Bolunda");
1135 names.add("Brazir");
1136 names.add("Mam");
1137 names.add("Vlaanderen");
1138 names.add("Asmaida");
1139 names.add("Chagos");
1140 names.add("Eiger");
1141 names.add("Ran");
1142 names.add("Vigrid");
1143 names.add("Hrym");
1144 names.add("Nog");
1145 names.add("Gryla");
1146 names.add("Cormoran");
1147 names.add("Morvah");
1148 names.add("Zennor");
1149 names.add("Madron");
1150 names.add("Athos");
1151 names.add("Cadmus");
1152 names.add("Echion");
1153 names.add("Laius");
1154 names.add("The Spartoi");
1155 names.add("Bellerophon");
1156 names.add("Cilix");
1157 names.add("Telephassa");
1158 names.add("Telephe");
1159 names.add("Agriope");
1160 names.add("Shevar");
1161 names.add("Ferragut");
1162 names.add("Kroni");
1163 names.add("Kapre");
1164 names.add("Zipacna");
1165 names.add("Mbombo");
1166 names.add("Basan");
1167 names.add("Wendigo");
1168 names.add("Abraxas");
1169 names.add("Vassago");
1170 names.add("Ukobach");
1171 names.add("Valac");
1172 names.add("Toyol");
1173 names.add("Solas");
1174 names.add("Shedim");
1175 names.add("Raum");
1176 names.add("Ose");
1177 names.add("Lempo");
1178 names.add("Lilin");
1179 names.add("Killakee Cat");
1180 names.add("Ipos");
1181 names.add("Hantu Raya");
1182 names.add("The Polong");
1183 names.add("Pelesit");
1184 names.add("Blue Crow");
1185 names.add("Marathon");
1186 names.add("Mazu");
1187 names.add("Svarga");
1188 names.add("Sunda");
1189 names.add("Garbhodaka");
1190 names.add("Pitrloka");
1191 names.add("Dalar's Star");
1192 names.add("Kardashev");
1193 names.add("Hero");
1194 names.add("Vecna");
1195 names.add("Zendar");
1196 names.add("Yaahl");
1197 names.add("Sahara");
1198 names.add("Gobi");
1199 names.add("Kalahari");
1200 names.add("Karakum");
1201 names.add("Sonora");
1202 names.add("Atacama");
1203 names.add("Mojave");
1204 names.add("Namib");
1205 names.add("Aegea");
1206 names.add("New Labrador");
1207 names.add("New Biscay");
1208 names.add("New Azov");
1209 names.add("New Cordova");
1210 names.add("New Pender");
1211 names.add("New Guayaquil");
1212 names.add("Third Bogota");
1213 names.add("Yuendumu");
1214 names.add("Yulara");
1215 names.add("Ghan");
1216 names.add("Warmun");
1217 names.add("The Ord");
1218 names.add("Naikoon");
1219 names.add("Haanas");
1220 names.add("The Pines");
1221 names.add("New Caldwell");
1222 names.add("Potato");
1223
1224 return names;
1225 }
1226}
1227
1228
1229
1230
1231
1232
1233
static SettingsAPI getSettings()
Definition Global.java:51
static void load(List< String > names, int order)
static MarkovNameResult generate(Random random)
static boolean containsWord(String in, String word)
< T > Collection< T > getAllSpecs(Class< T > c)