summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Demons
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-05-25 02:08:35 -0400
committerJesse Luehrs <doy@tozt.net>2014-05-25 02:08:35 -0400
commit4eba504c1522ecec0595db81cfffd04badf67e56 (patch)
tree42652b67c8c6050da9f78681007d8f758d2754e0 /lib/Games/SMTNocturne/Demons
parent563e01add1eeeedbe14744bf214b0c37c38a82d0 (diff)
downloadgames-smtnocturne-demons-4eba504c1522ecec0595db81cfffd04badf67e56.tar.gz
games-smtnocturne-demons-4eba504c1522ecec0595db81cfffd04badf67e56.zip
implement basic fusions
Diffstat (limited to 'lib/Games/SMTNocturne/Demons')
-rw-r--r--lib/Games/SMTNocturne/Demons/Demon.pm968
-rw-r--r--lib/Games/SMTNocturne/Demons/FusionChart.pm1110
2 files changed, 2078 insertions, 0 deletions
diff --git a/lib/Games/SMTNocturne/Demons/Demon.pm b/lib/Games/SMTNocturne/Demons/Demon.pm
new file mode 100644
index 0000000..6d8d73d
--- /dev/null
+++ b/lib/Games/SMTNocturne/Demons/Demon.pm
@@ -0,0 +1,968 @@
+package Games::SMTNocturne::Demons::Demon;
+use strict;
+use warnings;
+
+use JSON::PP;
+
+my %DEMONS_BY_NAME = %{ decode_json(do { local $/; <DATA> }) };
+for my $name (keys %DEMONS_BY_NAME) {
+ $DEMONS_BY_NAME{$name}{name} = $name;
+}
+
+my %DEMONS_BY_TYPE;
+for my $name (keys %DEMONS_BY_NAME) {
+ my $data = $DEMONS_BY_NAME{$name};
+ push @{ $DEMONS_BY_TYPE{$data->{type}} ||= [] }, $data;
+}
+for my $type (keys %DEMONS_BY_TYPE) {
+ my $demons = $DEMONS_BY_TYPE{$type};
+ @$demons = sort { $a->{level} <=> $b->{level} } @$demons;
+}
+
+sub new_from_name {
+ my ($class, $name) = @_;
+
+ die "unknown demon $name" unless $DEMONS_BY_NAME{$name};
+
+ return bless { %{ $DEMONS_BY_NAME{$name} } }, $class;
+}
+
+sub new_from_type_and_level {
+ my ($class, $type, $level) = @_;
+
+ die "unknown type $type" unless $DEMONS_BY_TYPE{$type};
+
+ my $found;
+ for my $demon (@{ $DEMONS_BY_TYPE{$type} }) {
+ $found = $demon;
+ last if $demon->{level} >= $level;
+ }
+
+ return bless { %$found }, $class;
+}
+
+# sub boss { $_[0]->{boss} }
+sub fusion_type { $_[0]->{fusion_type} }
+sub level { $_[0]->{level} }
+sub type { $_[0]->{type} }
+
+1;
+
+__DATA__
+{
+ "Abaddon" : {
+ "fusion_type" : "normal",
+ "level" : "69",
+ "type" : "Tyrant"
+ },
+ "Aciel" : {
+ "fusion_type" : "evolve",
+ "level" : "77",
+ "type" : "Tyrant"
+ },
+ "Aeros" : {
+ "fusion_type" : "normal",
+ "level" : "11",
+ "type" : "Element"
+ },
+ "Albion" : {
+ "fusion_type" : "evolve",
+ "level" : "64",
+ "type" : "Entity"
+ },
+ "Amaterasu" : {
+ "fusion_type" : "special",
+ "level" : "56",
+ "type" : "Deity"
+ },
+ "Angel" : {
+ "fusion_type" : "normal",
+ "level" : "11",
+ "type" : "Divine"
+ },
+ "Apsaras" : {
+ "fusion_type" : "normal",
+ "level" : "8",
+ "type" : "Yoma"
+ },
+ "Aquans" : {
+ "fusion_type" : "normal",
+ "level" : "15",
+ "type" : "Element"
+ },
+ "Ara Mitama" : {
+ "fusion_type" : "normal",
+ "level" : "25",
+ "type" : "Mitama"
+ },
+ "Arahabaki" : {
+ "fusion_type" : "normal",
+ "level" : "30",
+ "type" : "Vile"
+ },
+ "Archangel" : {
+ "fusion_type" : "normal",
+ "level" : "18",
+ "type" : "Divine"
+ },
+ "Atavaka" : {
+ "fusion_type" : "normal",
+ "level" : "47",
+ "type" : "Deity"
+ },
+ "Atropos" : {
+ "fusion_type" : "normal",
+ "level" : "67",
+ "type" : "Femme"
+ },
+ "Badb Catha" : {
+ "fusion_type" : "normal",
+ "level" : "23",
+ "type" : "Beast"
+ },
+ "Baihu" : {
+ "fusion_type" : "normal",
+ "level" : "43",
+ "type" : "Holy"
+ },
+ "Baphomet" : {
+ "fusion_type" : "normal",
+ "level" : "33",
+ "type" : "Vile"
+ },
+ "Barong" : {
+ "fusion_type" : "normal",
+ "level" : "60",
+ "type" : "Avatar"
+ },
+ "Beelzebub" : {
+ "fusion_type" : "normal",
+ "level" : "84",
+ "type" : "Tyrant"
+ },
+ "Beelzebub (Fly)" : {
+ "fusion_type" : "evolve",
+ "level" : "95",
+ "type" : "Tyrant"
+ },
+ "Beji Weng" : {
+ "fusion_type" : "normal",
+ "level" : "61",
+ "type" : "Fury"
+ },
+ "Berith" : {
+ "fusion_type" : "normal",
+ "level" : "37",
+ "type" : "Fallen"
+ },
+ "Bicorn" : {
+ "fusion_type" : "normal",
+ "level" : "15",
+ "type" : "Wilder"
+ },
+ "Bishamon" : {
+ "fusion_type" : "normal",
+ "level" : "72",
+ "type" : "Kishin"
+ },
+ "Black Frost" : {
+ "fusion_type" : "normal",
+ "level" : "66",
+ "type" : "Night"
+ },
+ "Black Ooze" : {
+ "fusion_type" : "normal",
+ "level" : "28",
+ "type" : "Foul"
+ },
+ "Black Rider" : {
+ "fusion_type" : "deathstone",
+ "level" : "61",
+ "type" : "Fiend"
+ },
+ "Blob" : {
+ "fusion_type" : "normal",
+ "level" : "16",
+ "type" : "Foul"
+ },
+ "Cai-Zhi" : {
+ "fusion_type" : "normal",
+ "level" : "26",
+ "type" : "Avatar"
+ },
+ "Cerberus" : {
+ "fusion_type" : "normal",
+ "level" : "61",
+ "type" : "Beast"
+ },
+ "Chatterskull" : {
+ "fusion_type" : "normal",
+ "level" : "20",
+ "type" : "Haunt"
+ },
+ "Chimera" : {
+ "fusion_type" : "normal",
+ "level" : "55",
+ "type" : "Holy"
+ },
+ "Choronzon" : {
+ "fusion_type" : "normal",
+ "level" : "11",
+ "type" : "Haunt"
+ },
+ "Clotho" : {
+ "fusion_type" : "normal",
+ "level" : "58",
+ "type" : "Femme"
+ },
+ "Cu Chulainn" : {
+ "fusion_type" : "evolve",
+ "level" : "52",
+ "type" : "Genma"
+ },
+ "Daisoujou" : {
+ "fusion_type" : "deathstone",
+ "level" : "37",
+ "type" : "Fiend"
+ },
+ "Dakini" : {
+ "fusion_type" : "normal",
+ "level" : "52",
+ "type" : "Femme"
+ },
+ "Datsue-Ba" : {
+ "fusion_type" : "normal",
+ "level" : "7",
+ "type" : "Femme"
+ },
+ "Decarabia" : {
+ "fusion_type" : "normal",
+ "level" : "58",
+ "type" : "Fallen"
+ },
+ "Dionysus" : {
+ "fusion_type" : "normal",
+ "level" : "44",
+ "type" : "Fury"
+ },
+ "Dis" : {
+ "fusion_type" : "normal",
+ "level" : "23",
+ "type" : "Yoma"
+ },
+ "Dominion" : {
+ "fusion_type" : "normal",
+ "level" : "50",
+ "type" : "Divine"
+ },
+ "Efreet" : {
+ "fusion_type" : "evolve",
+ "level" : "52",
+ "type" : "Yoma"
+ },
+ "Eligor" : {
+ "fusion_type" : "normal",
+ "level" : "29",
+ "type" : "Fallen"
+ },
+ "Erthys" : {
+ "fusion_type" : "normal",
+ "level" : "7",
+ "type" : "Element"
+ },
+ "Feng Huang" : {
+ "fusion_type" : "normal",
+ "level" : "36",
+ "type" : "Holy"
+ },
+ "Flameis" : {
+ "fusion_type" : "normal",
+ "level" : "20",
+ "type" : "Element"
+ },
+ "Flauros" : {
+ "fusion_type" : "normal",
+ "level" : "68",
+ "type" : "Fallen"
+ },
+ "Fomor" : {
+ "fusion_type" : "normal",
+ "level" : "18",
+ "type" : "Night"
+ },
+ "Forneus" : {
+ "fusion_type" : "normal",
+ "level" : "20",
+ "type" : "Fallen"
+ },
+ "Futomimi" : {
+ "fusion_type" : "normal",
+ "level" : "63",
+ "type" : "Kishin"
+ },
+ "Fuu-Ki" : {
+ "fusion_type" : "normal",
+ "level" : "66",
+ "type" : "Brute"
+ },
+ "Gabriel" : {
+ "fusion_type" : "special",
+ "level" : "87",
+ "type" : "Seraph"
+ },
+ "Ganesha" : {
+ "fusion_type" : "evolve",
+ "level" : "58",
+ "type" : "Wargod"
+ },
+ "Garuda" : {
+ "fusion_type" : "evolve",
+ "level" : "63",
+ "type" : "Avian"
+ },
+ "Girimehkala" : {
+ "fusion_type" : "special",
+ "level" : "58",
+ "type" : "Vile"
+ },
+ "Gogmagog" : {
+ "fusion_type" : "normal",
+ "level" : "55",
+ "type" : "Jirae"
+ },
+ "Gui Xian" : {
+ "fusion_type" : "evolve",
+ "level" : "24",
+ "type" : "Dragon"
+ },
+ "Gurr" : {
+ "fusion_type" : "special",
+ "level" : "63",
+ "type" : "Raptor"
+ },
+ "Hanuman" : {
+ "fusion_type" : "evolve",
+ "level" : "46",
+ "type" : "Genma"
+ },
+ "Hell Biker" : {
+ "fusion_type" : "deathstone",
+ "level" : "42",
+ "type" : "Fiend"
+ },
+ "High Pixie" : {
+ "fusion_type" : "evolve",
+ "level" : "10",
+ "type" : "Fairy"
+ },
+ "Horus" : {
+ "fusion_type" : "normal",
+ "level" : "38",
+ "type" : "Deity"
+ },
+ "Hresvelgr" : {
+ "fusion_type" : "normal",
+ "level" : "75",
+ "type" : "Wilder"
+ },
+ "Hua Po" : {
+ "fusion_type" : "normal",
+ "level" : "5",
+ "type" : "Jirae"
+ },
+ "Ikusa" : {
+ "fusion_type" : "normal",
+ "level" : "44",
+ "type" : "Brute"
+ },
+ "Incubus" : {
+ "fusion_type" : "normal",
+ "level" : "25",
+ "type" : "Night"
+ },
+ "Inugami" : {
+ "fusion_type" : "normal",
+ "level" : "13",
+ "type" : "Beast"
+ },
+ "Isora" : {
+ "fusion_type" : "normal",
+ "level" : "14",
+ "type" : "Yoma"
+ },
+ "Jack Frost" : {
+ "fusion_type" : "normal",
+ "level" : "7",
+ "type" : "Fairy"
+ },
+ "Jinn" : {
+ "fusion_type" : "normal",
+ "level" : "44",
+ "type" : "Yoma"
+ },
+ "Jiroku" : {
+ "fusion_type" : "normal",
+ "level" : "52",
+ "type" : "Kishin"
+ },
+ "Kaiwan" : {
+ "fusion_type" : "normal",
+ "level" : "47",
+ "type" : "Night"
+ },
+ "Kali" : {
+ "fusion_type" : "normal",
+ "level" : "67",
+ "type" : "Lady"
+ },
+ "Karasu" : {
+ "fusion_type" : "evolve",
+ "level" : "28",
+ "type" : "Yoma"
+ },
+ "Kelpie" : {
+ "fusion_type" : "normal",
+ "level" : "26",
+ "type" : "Fairy"
+ },
+ "Kikuri-Hime" : {
+ "fusion_type" : "normal",
+ "level" : "24",
+ "type" : "Lady"
+ },
+ "Kin-Ki" : {
+ "fusion_type" : "normal",
+ "level" : "59",
+ "type" : "Brute"
+ },
+ "Kodama" : {
+ "fusion_type" : "normal",
+ "level" : "3",
+ "type" : "Jirae"
+ },
+ "Koppa" : {
+ "fusion_type" : "normal",
+ "level" : "19",
+ "type" : "Yoma"
+ },
+ "Koumoko" : {
+ "fusion_type" : "normal",
+ "level" : "33",
+ "type" : "Kishin"
+ },
+ "Kurama" : {
+ "fusion_type" : "evolve",
+ "level" : "38",
+ "type" : "Genma"
+ },
+ "Kushinada" : {
+ "fusion_type" : "normal",
+ "level" : "41",
+ "type" : "Lady"
+ },
+ "Kusi Mitama" : {
+ "fusion_type" : "normal",
+ "level" : "32",
+ "type" : "Mitama"
+ },
+ "Lachesis" : {
+ "fusion_type" : "normal",
+ "level" : "63",
+ "type" : "Femme"
+ },
+ "Laksmi" : {
+ "fusion_type" : "normal",
+ "level" : "54",
+ "type" : "Megami"
+ },
+ "Legion" : {
+ "fusion_type" : "normal",
+ "level" : "49",
+ "type" : "Haunt"
+ },
+ "Lilim" : {
+ "fusion_type" : "normal",
+ "level" : "8",
+ "type" : "Night"
+ },
+ "Lilith" : {
+ "fusion_type" : "evolve",
+ "level" : "80",
+ "type" : "Night"
+ },
+ "Loa" : {
+ "fusion_type" : "normal",
+ "level" : "53",
+ "type" : "Night"
+ },
+ "Loki" : {
+ "fusion_type" : "normal",
+ "level" : "52",
+ "type" : "Tyrant"
+ },
+ "Long" : {
+ "fusion_type" : "evolve",
+ "level" : "44",
+ "type" : "Dragon"
+ },
+ "Mada" : {
+ "fusion_type" : "normal",
+ "level" : "83",
+ "type" : "Vile"
+ },
+ "Makami" : {
+ "fusion_type" : "evolve",
+ "level" : "22",
+ "type" : "Avatar"
+ },
+ "Matador" : {
+ "fusion_type" : "deathstone",
+ "level" : "30",
+ "type" : "Fiend"
+ },
+ "Metatron" : {
+ "fusion_type" : "special",
+ "level" : "95",
+ "type" : "Seraph"
+ },
+ "Michael" : {
+ "fusion_type" : "special",
+ "level" : "90",
+ "type" : "Seraph"
+ },
+ "Mikazuchi" : {
+ "fusion_type" : "normal",
+ "level" : "45",
+ "type" : "Kishin"
+ },
+ "Minakata" : {
+ "fusion_type" : "normal",
+ "level" : "17",
+ "type" : "Kishin"
+ },
+ "Mithra" : {
+ "fusion_type" : "normal",
+ "level" : "78",
+ "type" : "Deity"
+ },
+ "Mizuchi" : {
+ "fusion_type" : "normal",
+ "level" : "34",
+ "type" : "Snake"
+ },
+ "Momunofu" : {
+ "fusion_type" : "normal",
+ "level" : "20",
+ "type" : "Brute"
+ },
+ "Mot" : {
+ "fusion_type" : "normal",
+ "level" : "91",
+ "type" : "Tyrant"
+ },
+ "Mothman" : {
+ "fusion_type" : "normal",
+ "level" : "43",
+ "type" : "Wilder"
+ },
+ "Mou-Ryo" : {
+ "fusion_type" : "normal",
+ "level" : "7",
+ "type" : "Foul"
+ },
+ "Naga" : {
+ "fusion_type" : "normal",
+ "level" : "28",
+ "type" : "Snake"
+ },
+ "Nekomata" : {
+ "fusion_type" : "normal",
+ "level" : "18",
+ "type" : "Beast"
+ },
+ "Nigi Mitama" : {
+ "fusion_type" : "normal",
+ "level" : "29",
+ "type" : "Mitama"
+ },
+ "Nozuchi" : {
+ "fusion_type" : "normal",
+ "level" : "14",
+ "type" : "Snake"
+ },
+ "Nue" : {
+ "fusion_type" : "normal",
+ "level" : "31",
+ "type" : "Wilder"
+ },
+ "Nyx" : {
+ "fusion_type" : "normal",
+ "level" : "70",
+ "type" : "Night"
+ },
+ "Oberon" : {
+ "fusion_type" : "normal",
+ "level" : "46",
+ "type" : "Fairy"
+ },
+ "Odin" : {
+ "fusion_type" : "normal",
+ "level" : "65",
+ "type" : "Deity"
+ },
+ "Okuninushi" : {
+ "fusion_type" : "normal",
+ "level" : "39",
+ "type" : "Kishin"
+ },
+ "Ongyo-Ki" : {
+ "fusion_type" : "special",
+ "level" : "81",
+ "type" : "Brute"
+ },
+ "Oni" : {
+ "fusion_type" : "normal",
+ "level" : "25",
+ "type" : "Brute"
+ },
+ "Onkot" : {
+ "fusion_type" : "normal",
+ "level" : "37",
+ "type" : "Yoma"
+ },
+ "Orthrus" : {
+ "fusion_type" : "normal",
+ "level" : "34",
+ "type" : "Beast"
+ },
+ "Ose" : {
+ "fusion_type" : "normal",
+ "level" : "45",
+ "type" : "Fallen"
+ },
+ "Pale Rider" : {
+ "fusion_type" : "deathstone",
+ "level" : "63",
+ "type" : "Fiend"
+ },
+ "Parvati" : {
+ "fusion_type" : "evolve",
+ "level" : "57",
+ "type" : "Lady"
+ },
+ "Pazuzu" : {
+ "fusion_type" : "normal",
+ "level" : "35",
+ "type" : "Vile"
+ },
+ "Phantom" : {
+ "fusion_type" : "normal",
+ "level" : "42",
+ "type" : "Foul"
+ },
+ "Pisaca" : {
+ "fusion_type" : "normal",
+ "level" : "28",
+ "type" : "Haunt"
+ },
+ "Pixie" : {
+ "fusion_type" : "normal",
+ "level" : "2",
+ "type" : "Fairy"
+ },
+ "Power" : {
+ "fusion_type" : "normal",
+ "level" : "33",
+ "type" : "Divine"
+ },
+ "Preta" : {
+ "fusion_type" : "normal",
+ "level" : "4",
+ "type" : "Haunt"
+ },
+ "Principality" : {
+ "fusion_type" : "normal",
+ "level" : "28",
+ "type" : "Divine"
+ },
+ "Purski" : {
+ "fusion_type" : "normal",
+ "level" : "48",
+ "type" : "Yoma"
+ },
+ "Pyro Jack" : {
+ "fusion_type" : "normal",
+ "level" : "19",
+ "type" : "Fairy"
+ },
+ "Queen Mab" : {
+ "fusion_type" : "evolve",
+ "level" : "56",
+ "type" : "Night"
+ },
+ "Quetzalcoatl" : {
+ "fusion_type" : "normal",
+ "level" : "55",
+ "type" : "Snake"
+ },
+ "Raiju" : {
+ "fusion_type" : "normal",
+ "level" : "25",
+ "type" : "Wilder"
+ },
+ "Raja Naga" : {
+ "fusion_type" : "evolve",
+ "level" : "37",
+ "type" : "Snake"
+ },
+ "Rakshasa" : {
+ "fusion_type" : "normal",
+ "level" : "63",
+ "type" : "Haunt"
+ },
+ "Rangda" : {
+ "fusion_type" : "normal",
+ "level" : "72",
+ "type" : "Femme"
+ },
+ "Raphael" : {
+ "fusion_type" : "special",
+ "level" : "84",
+ "type" : "Seraph"
+ },
+ "Red Rider" : {
+ "fusion_type" : "deathstone",
+ "level" : "55",
+ "type" : "Fiend"
+ },
+ "Sakahagi" : {
+ "fusion_type" : "special",
+ "level" : "45",
+ "type" : "Foul"
+ },
+ "Saki Mitama" : {
+ "fusion_type" : "normal",
+ "level" : "35",
+ "type" : "Mitama"
+ },
+ "Samael" : {
+ "fusion_type" : "special",
+ "level" : "73",
+ "type" : "Vile"
+ },
+ "Sarasvati" : {
+ "fusion_type" : "normal",
+ "level" : "30",
+ "type" : "Megami"
+ },
+ "Sarutahiko" : {
+ "fusion_type" : "normal",
+ "level" : "35",
+ "type" : "Jirae"
+ },
+ "Sati" : {
+ "fusion_type" : "normal",
+ "level" : "48",
+ "type" : "Megami"
+ },
+ "Scathach" : {
+ "fusion_type" : "normal",
+ "level" : "64",
+ "type" : "Megami"
+ },
+ "Senri" : {
+ "fusion_type" : "evolve",
+ "level" : "27",
+ "type" : "Holy"
+ },
+ "Setanta" : {
+ "fusion_type" : "normal",
+ "level" : "43",
+ "type" : "Fairy"
+ },
+ "Shadow" : {
+ "fusion_type" : "normal",
+ "level" : "52",
+ "type" : "Foul"
+ },
+ "Shiisaa" : {
+ "fusion_type" : "normal",
+ "level" : "13",
+ "type" : "Holy"
+ },
+ "Shiki-Ouji" : {
+ "fusion_type" : "normal",
+ "level" : "54",
+ "type" : "Brute"
+ },
+ "Shikigami" : {
+ "fusion_type" : "normal",
+ "level" : "4",
+ "type" : "Brute"
+ },
+ "Shikome" : {
+ "fusion_type" : "normal",
+ "level" : "32",
+ "type" : "Femme"
+ },
+ "Shiva" : {
+ "fusion_type" : "special",
+ "level" : "95",
+ "type" : "Fury"
+ },
+ "Skadi" : {
+ "fusion_type" : "evolve",
+ "level" : "74",
+ "type" : "Lady"
+ },
+ "Slime" : {
+ "fusion_type" : "normal",
+ "level" : "6",
+ "type" : "Foul"
+ },
+ "Sparna" : {
+ "fusion_type" : "normal",
+ "level" : "54",
+ "type" : "Beast"
+ },
+ "Succubus" : {
+ "fusion_type" : "normal",
+ "level" : "37",
+ "type" : "Night"
+ },
+ "Sudama" : {
+ "fusion_type" : "normal",
+ "level" : "13",
+ "type" : "Jirae"
+ },
+ "Sui-Ki" : {
+ "fusion_type" : "normal",
+ "level" : "62",
+ "type" : "Brute"
+ },
+ "Surt" : {
+ "fusion_type" : "normal",
+ "level" : "74",
+ "type" : "Tyrant"
+ },
+ "Tao Tie" : {
+ "fusion_type" : "normal",
+ "level" : "65",
+ "type" : "Vile"
+ },
+ "Taraka" : {
+ "fusion_type" : "normal",
+ "level" : "20",
+ "type" : "Femme"
+ },
+ "The Harlot" : {
+ "fusion_type" : "deathstone",
+ "level" : "69",
+ "type" : "Fiend"
+ },
+ "Thor" : {
+ "fusion_type" : "normal",
+ "level" : "76",
+ "type" : "Kishin"
+ },
+ "Throne" : {
+ "fusion_type" : "normal",
+ "level" : "64",
+ "type" : "Divine"
+ },
+ "Titan" : {
+ "fusion_type" : "normal",
+ "level" : "49",
+ "type" : "Jirae"
+ },
+ "Titania" : {
+ "fusion_type" : "normal",
+ "level" : "57",
+ "type" : "Fairy"
+ },
+ "Troll" : {
+ "fusion_type" : "normal",
+ "level" : "38",
+ "type" : "Fairy"
+ },
+ "Trumpeter" : {
+ "fusion_type" : "deathstone",
+ "level" : "77",
+ "type" : "Fiend"
+ },
+ "Unicorn" : {
+ "fusion_type" : "normal",
+ "level" : "21",
+ "type" : "Holy"
+ },
+ "Uriel" : {
+ "fusion_type" : "evolve",
+ "level" : "73",
+ "type" : "Seraph"
+ },
+ "Uzume" : {
+ "fusion_type" : "normal",
+ "level" : "18",
+ "type" : "Megami"
+ },
+ "Valkyrie" : {
+ "fusion_type" : "evolve",
+ "level" : "33",
+ "type" : "Wargod"
+ },
+ "Virtue" : {
+ "fusion_type" : "normal",
+ "level" : "41",
+ "type" : "Divine"
+ },
+ "Vishnu" : {
+ "fusion_type" : "normal",
+ "level" : "93",
+ "type" : "Deity"
+ },
+ "White Rider" : {
+ "fusion_type" : "deathstone",
+ "level" : "52",
+ "type" : "Fiend"
+ },
+ "Will O' Wisp" : {
+ "fusion_type" : "normal",
+ "level" : "1",
+ "type" : "Foul"
+ },
+ "Wu Kong" : {
+ "fusion_type" : "evolve",
+ "level" : "54",
+ "type" : "Fury"
+ },
+ "Yaka" : {
+ "fusion_type" : "normal",
+ "level" : "17",
+ "type" : "Haunt"
+ },
+ "Yaksini" : {
+ "fusion_type" : "normal",
+ "level" : "43",
+ "type" : "Femme"
+ },
+ "Yatagarasu" : {
+ "fusion_type" : "normal",
+ "level" : "46",
+ "type" : "Avatar"
+ },
+ "Yurlungur" : {
+ "fusion_type" : "normal",
+ "level" : "66",
+ "type" : "Snake"
+ },
+ "Zhen" : {
+ "fusion_type" : "normal",
+ "level" : "6",
+ "type" : "Wilder"
+ },
+ "Zouchou" : {
+ "fusion_type" : "normal",
+ "level" : "27",
+ "type" : "Kishin"
+ }
+}
diff --git a/lib/Games/SMTNocturne/Demons/FusionChart.pm b/lib/Games/SMTNocturne/Demons/FusionChart.pm
new file mode 100644
index 0000000..f60a40c
--- /dev/null
+++ b/lib/Games/SMTNocturne/Demons/FusionChart.pm
@@ -0,0 +1,1110 @@
+package Games::SMTNocturne::Demons::FusionChart;
+use strict;
+use warnings;
+
+use JSON::PP;
+
+my %TYPES = %{ decode_json(do { local $/; <DATA> }) };
+
+sub fuse {
+ my ($type1, $type2) = @_;
+
+ die "unknown demon type $type1" unless $TYPES{$type1};
+ die "unknown demon type $type2" unless $TYPES{$type1}{$type2};
+
+ return $TYPES{$type1}{$type2};
+}
+
+1;
+
+__DATA__
+{
+ "Avatar" : {
+ "Avatar" : null,
+ "Avian" : "Holy",
+ "Beast" : "Snake",
+ "Brute" : "Kishin",
+ "Deity" : "Megami",
+ "Divine" : "Megami",
+ "Dragon" : "Fury",
+ "Element" : null,
+ "Entity" : "Fury",
+ "Fairy" : "Divine",
+ "Fallen" : "Divine",
+ "Femme" : "Kishin",
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : "Holy",
+ "Genma" : "Kishin",
+ "Haunt" : null,
+ "Holy" : "Megami",
+ "Jirae" : "Kishin",
+ "Kishin" : "Holy",
+ "Lady" : "Fury",
+ "Megami" : "Deity",
+ "Mitama" : "Avatar",
+ "Night" : "Holy",
+ "Raptor" : "Wilder",
+ "Seraph" : "Deity",
+ "Snake" : "Lady",
+ "Tyrant" : null,
+ "Vile" : "Deity",
+ "Wargod" : "Deity",
+ "Wilder" : null,
+ "Yoma" : "Divine"
+ },
+ "Avian" : {
+ "Avatar" : "Holy",
+ "Avian" : null,
+ "Beast" : "Femme",
+ "Brute" : "Kishin",
+ "Deity" : "Megami",
+ "Divine" : "Snake",
+ "Dragon" : "Fury",
+ "Element" : null,
+ "Entity" : "Deity",
+ "Fairy" : "Night",
+ "Fallen" : "Snake",
+ "Femme" : "Brute",
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : "Kishin",
+ "Genma" : "Megami",
+ "Haunt" : null,
+ "Holy" : "Lady",
+ "Jirae" : "Kishin",
+ "Kishin" : "Lady",
+ "Lady" : null,
+ "Megami" : "Deity",
+ "Mitama" : "Avian",
+ "Night" : "Femme",
+ "Raptor" : "Megami",
+ "Seraph" : "Megami",
+ "Snake" : "Kishin",
+ "Tyrant" : null,
+ "Vile" : null,
+ "Wargod" : "Kishin",
+ "Wilder" : null,
+ "Yoma" : "Night"
+ },
+ "Beast" : {
+ "Avatar" : "Snake",
+ "Avian" : "Femme",
+ "Beast" : "Element",
+ "Brute" : "Femme",
+ "Deity" : "Avatar",
+ "Divine" : "Holy",
+ "Dragon" : "Snake",
+ "Element" : "Beast",
+ "Entity" : "Holy",
+ "Fairy" : "Divine",
+ "Fallen" : "Night",
+ "Femme" : "Foul",
+ "Fiend" : "Night",
+ "Foul" : "Wilder",
+ "Fury" : "Avatar",
+ "Genma" : "Fairy",
+ "Haunt" : "Wilder",
+ "Holy" : "Avatar",
+ "Jirae" : "Yoma",
+ "Kishin" : "Holy",
+ "Lady" : "Snake",
+ "Megami" : "Holy",
+ "Mitama" : "Beast",
+ "Night" : "Fairy",
+ "Raptor" : "Wilder",
+ "Seraph" : null,
+ "Snake" : "Brute",
+ "Tyrant" : "Night",
+ "Vile" : "Foul",
+ "Wargod" : "Holy",
+ "Wilder" : "Jirae",
+ "Yoma" : "Fallen"
+ },
+ "Brute" : {
+ "Avatar" : "Kishin",
+ "Avian" : "Kishin",
+ "Beast" : "Femme",
+ "Brute" : "Element",
+ "Deity" : "Kishin",
+ "Divine" : "Yoma",
+ "Dragon" : "Night",
+ "Element" : "Brute",
+ "Entity" : "Fury",
+ "Fairy" : "Night",
+ "Fallen" : "Jirae",
+ "Femme" : "Beast",
+ "Fiend" : "Haunt",
+ "Foul" : "Wilder",
+ "Fury" : "Lady",
+ "Genma" : "Divine",
+ "Haunt" : "Foul",
+ "Holy" : "Femme",
+ "Jirae" : "Fairy",
+ "Kishin" : "Snake",
+ "Lady" : "Fury",
+ "Megami" : "Femme",
+ "Mitama" : "Brute",
+ "Night" : "Kishin",
+ "Raptor" : "Fury",
+ "Seraph" : null,
+ "Snake" : "Beast",
+ "Tyrant" : "Haunt",
+ "Vile" : "Haunt",
+ "Wargod" : null,
+ "Wilder" : "Fairy",
+ "Yoma" : "Femme"
+ },
+ "Deity" : {
+ "Avatar" : "Megami",
+ "Avian" : "Megami",
+ "Beast" : "Avatar",
+ "Brute" : "Kishin",
+ "Deity" : null,
+ "Divine" : "Megami",
+ "Dragon" : null,
+ "Element" : "Deity",
+ "Entity" : "Megami",
+ "Fairy" : "Night",
+ "Fallen" : "Fury",
+ "Femme" : "Lady",
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : null,
+ "Genma" : "Megami",
+ "Haunt" : null,
+ "Holy" : "Megami",
+ "Jirae" : "Brute",
+ "Kishin" : "Fury",
+ "Lady" : null,
+ "Megami" : null,
+ "Mitama" : "Deity",
+ "Night" : "Vile",
+ "Raptor" : "Tyrant",
+ "Seraph" : null,
+ "Snake" : "Kishin",
+ "Tyrant" : null,
+ "Vile" : null,
+ "Wargod" : "Kishin",
+ "Wilder" : null,
+ "Yoma" : "Megami"
+ },
+ "Divine" : {
+ "Avatar" : "Megami",
+ "Avian" : "Snake",
+ "Beast" : "Holy",
+ "Brute" : "Yoma",
+ "Deity" : "Megami",
+ "Divine" : "Element",
+ "Dragon" : "Megami",
+ "Element" : "Divine",
+ "Entity" : "Megami",
+ "Fairy" : "Megami",
+ "Fallen" : "Vile",
+ "Femme" : "Beast",
+ "Fiend" : "Vile",
+ "Foul" : "Fairy",
+ "Fury" : "Deity",
+ "Genma" : "Megami",
+ "Haunt" : "Jirae",
+ "Holy" : "Fairy",
+ "Jirae" : "Night",
+ "Kishin" : "Vile",
+ "Lady" : "Megami",
+ "Megami" : "Holy",
+ "Mitama" : "Divine",
+ "Night" : "Snake",
+ "Raptor" : "Foul",
+ "Seraph" : "Megami",
+ "Snake" : "Fairy",
+ "Tyrant" : "Vile",
+ "Vile" : "Fallen",
+ "Wargod" : "Holy",
+ "Wilder" : "Fallen",
+ "Yoma" : "Snake"
+ },
+ "Dragon" : {
+ "Avatar" : "Fury",
+ "Avian" : "Fury",
+ "Beast" : "Snake",
+ "Brute" : "Night",
+ "Deity" : null,
+ "Divine" : "Megami",
+ "Dragon" : null,
+ "Element" : null,
+ "Entity" : "Lady",
+ "Fairy" : "Snake",
+ "Fallen" : "Snake",
+ "Femme" : "Night",
+ "Fiend" : null,
+ "Foul" : "Snake",
+ "Fury" : null,
+ "Genma" : "Holy",
+ "Haunt" : null,
+ "Holy" : "Snake",
+ "Jirae" : "Kishin",
+ "Kishin" : "Fury",
+ "Lady" : null,
+ "Megami" : "Avatar",
+ "Mitama" : "Dragon",
+ "Night" : "Femme",
+ "Raptor" : null,
+ "Seraph" : "Holy",
+ "Snake" : "Lady",
+ "Tyrant" : null,
+ "Vile" : "Snake",
+ "Wargod" : "Lady",
+ "Wilder" : null,
+ "Yoma" : "Avatar"
+ },
+ "Element" : {
+ "Avatar" : null,
+ "Avian" : null,
+ "Beast" : "Beast",
+ "Brute" : "Brute",
+ "Deity" : "Deity",
+ "Divine" : "Divine",
+ "Dragon" : null,
+ "Element" : "Mitama",
+ "Entity" : null,
+ "Fairy" : "Fairy",
+ "Fallen" : "Fallen",
+ "Femme" : "Femme",
+ "Fiend" : null,
+ "Foul" : "Foul",
+ "Fury" : "Fury",
+ "Genma" : null,
+ "Haunt" : "Haunt",
+ "Holy" : "Holy",
+ "Jirae" : "Jirae",
+ "Kishin" : "Kishin",
+ "Lady" : "Lady",
+ "Megami" : "Megami",
+ "Mitama" : "Element",
+ "Night" : "Night",
+ "Raptor" : null,
+ "Seraph" : null,
+ "Snake" : "Snake",
+ "Tyrant" : "Tyrant",
+ "Vile" : "Vile",
+ "Wargod" : null,
+ "Wilder" : "Wilder",
+ "Yoma" : "Yoma"
+ },
+ "Entity" : {
+ "Avatar" : "Fury",
+ "Avian" : "Deity",
+ "Beast" : "Holy",
+ "Brute" : "Fury",
+ "Deity" : "Megami",
+ "Divine" : "Megami",
+ "Dragon" : "Lady",
+ "Element" : null,
+ "Entity" : null,
+ "Fairy" : "Megami",
+ "Fallen" : "Kishin",
+ "Femme" : "Lady",
+ "Fiend" : null,
+ "Foul" : "Brute",
+ "Fury" : "Lady",
+ "Genma" : "Fury",
+ "Haunt" : "Brute",
+ "Holy" : "Kishin",
+ "Jirae" : "Fury",
+ "Kishin" : "Fury",
+ "Lady" : "Fury",
+ "Megami" : "Deity",
+ "Mitama" : "Entity",
+ "Night" : "Brute",
+ "Raptor" : "Vile",
+ "Seraph" : "Deity",
+ "Snake" : "Fury",
+ "Tyrant" : null,
+ "Vile" : null,
+ "Wargod" : "Fury",
+ "Wilder" : "Brute",
+ "Yoma" : "Megami"
+ },
+ "Fairy" : {
+ "Avatar" : "Divine",
+ "Avian" : "Night",
+ "Beast" : "Divine",
+ "Brute" : "Night",
+ "Deity" : "Night",
+ "Divine" : "Megami",
+ "Dragon" : "Snake",
+ "Element" : "Fairy",
+ "Entity" : "Megami",
+ "Fairy" : "Element",
+ "Fallen" : "Yoma",
+ "Femme" : "Haunt",
+ "Fiend" : "Night",
+ "Foul" : "Haunt",
+ "Fury" : "Brute",
+ "Genma" : null,
+ "Haunt" : "Night",
+ "Holy" : "Megami",
+ "Jirae" : "Yoma",
+ "Kishin" : "Brute",
+ "Lady" : "Yoma",
+ "Megami" : "Fallen",
+ "Mitama" : "Fairy",
+ "Night" : "Snake",
+ "Raptor" : "Haunt",
+ "Seraph" : "Holy",
+ "Snake" : "Yoma",
+ "Tyrant" : "Night",
+ "Vile" : "Night",
+ "Wargod" : null,
+ "Wilder" : "Yoma",
+ "Yoma" : "Holy"
+ },
+ "Fallen" : {
+ "Avatar" : "Divine",
+ "Avian" : "Snake",
+ "Beast" : "Night",
+ "Brute" : "Jirae",
+ "Deity" : "Fury",
+ "Divine" : "Vile",
+ "Dragon" : "Snake",
+ "Element" : "Fallen",
+ "Entity" : "Kishin",
+ "Fairy" : "Yoma",
+ "Fallen" : "Element",
+ "Femme" : "Wilder",
+ "Fiend" : "Fury",
+ "Foul" : "Vile",
+ "Fury" : "Vile",
+ "Genma" : "Lady",
+ "Haunt" : "Night",
+ "Holy" : "Beast",
+ "Jirae" : "Brute",
+ "Kishin" : "Night",
+ "Lady" : "Fury",
+ "Megami" : "Divine",
+ "Mitama" : "Fallen",
+ "Night" : "Haunt",
+ "Raptor" : "Foul",
+ "Seraph" : "Lady",
+ "Snake" : "Beast",
+ "Tyrant" : "Fury",
+ "Vile" : "Brute",
+ "Wargod" : "Lady",
+ "Wilder" : "Night",
+ "Yoma" : "Jirae"
+ },
+ "Femme" : {
+ "Avatar" : "Kishin",
+ "Avian" : "Brute",
+ "Beast" : "Foul",
+ "Brute" : "Beast",
+ "Deity" : "Lady",
+ "Divine" : "Beast",
+ "Dragon" : "Night",
+ "Element" : "Femme",
+ "Entity" : "Lady",
+ "Fairy" : "Haunt",
+ "Fallen" : "Wilder",
+ "Femme" : "Element",
+ "Fiend" : "Lady",
+ "Foul" : "Wilder",
+ "Fury" : "Lady",
+ "Genma" : "Night",
+ "Haunt" : "Foul",
+ "Holy" : "Lady",
+ "Jirae" : "Wilder",
+ "Kishin" : "Lady",
+ "Lady" : "Kishin",
+ "Megami" : "Fairy",
+ "Mitama" : "Femme",
+ "Night" : "Jirae",
+ "Raptor" : "Foul",
+ "Seraph" : null,
+ "Snake" : "Kishin",
+ "Tyrant" : "Lady",
+ "Vile" : "Brute",
+ "Wargod" : null,
+ "Wilder" : "Fallen",
+ "Yoma" : "Brute"
+ },
+ "Fiend" : {
+ "Avatar" : null,
+ "Avian" : null,
+ "Beast" : "Night",
+ "Brute" : "Haunt",
+ "Deity" : null,
+ "Divine" : "Vile",
+ "Dragon" : null,
+ "Element" : null,
+ "Entity" : null,
+ "Fairy" : "Night",
+ "Fallen" : "Fury",
+ "Femme" : "Lady",
+ "Fiend" : null,
+ "Foul" : "Haunt",
+ "Fury" : "Deity",
+ "Genma" : "Yoma",
+ "Haunt" : "Foul",
+ "Holy" : null,
+ "Jirae" : "Wilder",
+ "Kishin" : null,
+ "Lady" : null,
+ "Megami" : null,
+ "Mitama" : "Fiend",
+ "Night" : "Lady",
+ "Raptor" : "Fury",
+ "Seraph" : "Fallen",
+ "Snake" : "Brute",
+ "Tyrant" : null,
+ "Vile" : "Fury",
+ "Wargod" : null,
+ "Wilder" : "Night",
+ "Yoma" : "Night"
+ },
+ "Foul" : {
+ "Avatar" : null,
+ "Avian" : null,
+ "Beast" : "Wilder",
+ "Brute" : "Wilder",
+ "Deity" : null,
+ "Divine" : "Fairy",
+ "Dragon" : "Snake",
+ "Element" : "Foul",
+ "Entity" : "Brute",
+ "Fairy" : "Haunt",
+ "Fallen" : "Vile",
+ "Femme" : "Wilder",
+ "Fiend" : "Haunt",
+ "Foul" : null,
+ "Fury" : null,
+ "Genma" : null,
+ "Haunt" : "Brute",
+ "Holy" : null,
+ "Jirae" : "Femme",
+ "Kishin" : null,
+ "Lady" : "Vile",
+ "Megami" : null,
+ "Mitama" : "Foul",
+ "Night" : "Brute",
+ "Raptor" : "Vile",
+ "Seraph" : "Fallen",
+ "Snake" : "Fallen",
+ "Tyrant" : "Haunt",
+ "Vile" : "Haunt",
+ "Wargod" : null,
+ "Wilder" : "Beast",
+ "Yoma" : "Snake"
+ },
+ "Fury" : {
+ "Avatar" : "Holy",
+ "Avian" : "Kishin",
+ "Beast" : "Avatar",
+ "Brute" : "Lady",
+ "Deity" : null,
+ "Divine" : "Deity",
+ "Dragon" : null,
+ "Element" : "Fury",
+ "Entity" : "Lady",
+ "Fairy" : "Brute",
+ "Fallen" : "Vile",
+ "Femme" : "Lady",
+ "Fiend" : "Deity",
+ "Foul" : null,
+ "Fury" : null,
+ "Genma" : "Lady",
+ "Haunt" : null,
+ "Holy" : "Kishin",
+ "Jirae" : "Femme",
+ "Kishin" : "Lady",
+ "Lady" : "Vile",
+ "Megami" : "Deity",
+ "Mitama" : "Fury",
+ "Night" : "Lady",
+ "Raptor" : "Tyrant",
+ "Seraph" : "Vile",
+ "Snake" : "Kishin",
+ "Tyrant" : "Deity",
+ "Vile" : "Tyrant",
+ "Wargod" : "Deity",
+ "Wilder" : null,
+ "Yoma" : "Holy"
+ },
+ "Genma" : {
+ "Avatar" : "Kishin",
+ "Avian" : "Megami",
+ "Beast" : "Fairy",
+ "Brute" : "Divine",
+ "Deity" : "Megami",
+ "Divine" : "Megami",
+ "Dragon" : "Holy",
+ "Element" : null,
+ "Entity" : "Fury",
+ "Fairy" : null,
+ "Fallen" : "Lady",
+ "Femme" : "Night",
+ "Fiend" : "Yoma",
+ "Foul" : null,
+ "Fury" : "Lady",
+ "Genma" : null,
+ "Haunt" : null,
+ "Holy" : "Yoma",
+ "Jirae" : "Lady",
+ "Kishin" : "Megami",
+ "Lady" : "Femme",
+ "Megami" : "Divine",
+ "Mitama" : "Genma",
+ "Night" : "Holy",
+ "Raptor" : "Lady",
+ "Seraph" : "Megami",
+ "Snake" : "Femme",
+ "Tyrant" : "Yoma",
+ "Vile" : "Yoma",
+ "Wargod" : "Holy",
+ "Wilder" : "Yoma",
+ "Yoma" : null
+ },
+ "Haunt" : {
+ "Avatar" : null,
+ "Avian" : null,
+ "Beast" : "Wilder",
+ "Brute" : "Foul",
+ "Deity" : null,
+ "Divine" : "Jirae",
+ "Dragon" : null,
+ "Element" : "Haunt",
+ "Entity" : "Brute",
+ "Fairy" : "Night",
+ "Fallen" : "Night",
+ "Femme" : "Foul",
+ "Fiend" : "Foul",
+ "Foul" : "Brute",
+ "Fury" : null,
+ "Genma" : null,
+ "Haunt" : null,
+ "Holy" : null,
+ "Jirae" : "Vile",
+ "Kishin" : null,
+ "Lady" : "Vile",
+ "Megami" : null,
+ "Mitama" : "Haunt",
+ "Night" : "Yoma",
+ "Raptor" : "Vile",
+ "Seraph" : "Fallen",
+ "Snake" : "Brute",
+ "Tyrant" : "Foul",
+ "Vile" : "Foul",
+ "Wargod" : null,
+ "Wilder" : "Jirae",
+ "Yoma" : "Jirae"
+ },
+ "Holy" : {
+ "Avatar" : "Megami",
+ "Avian" : "Lady",
+ "Beast" : "Avatar",
+ "Brute" : "Femme",
+ "Deity" : "Megami",
+ "Divine" : "Fairy",
+ "Dragon" : "Snake",
+ "Element" : "Holy",
+ "Entity" : "Kishin",
+ "Fairy" : "Megami",
+ "Fallen" : "Beast",
+ "Femme" : "Lady",
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : "Kishin",
+ "Genma" : "Yoma",
+ "Haunt" : null,
+ "Holy" : "Element",
+ "Jirae" : "Beast",
+ "Kishin" : "Lady",
+ "Lady" : "Avatar",
+ "Megami" : "Divine",
+ "Mitama" : "Holy",
+ "Night" : "Fairy",
+ "Raptor" : "Wilder",
+ "Seraph" : "Divine",
+ "Snake" : "Kishin",
+ "Tyrant" : null,
+ "Vile" : null,
+ "Wargod" : "Kishin",
+ "Wilder" : null,
+ "Yoma" : "Divine"
+ },
+ "Jirae" : {
+ "Avatar" : "Kishin",
+ "Avian" : "Kishin",
+ "Beast" : "Yoma",
+ "Brute" : "Fairy",
+ "Deity" : "Brute",
+ "Divine" : "Night",
+ "Dragon" : "Kishin",
+ "Element" : "Jirae",
+ "Entity" : "Fury",
+ "Fairy" : "Yoma",
+ "Fallen" : "Brute",
+ "Femme" : "Wilder",
+ "Fiend" : "Wilder",
+ "Foul" : "Femme",
+ "Fury" : "Femme",
+ "Genma" : "Lady",
+ "Haunt" : "Vile",
+ "Holy" : "Beast",
+ "Jirae" : "Element",
+ "Kishin" : "Snake",
+ "Lady" : "Beast",
+ "Megami" : "Lady",
+ "Mitama" : "Jirae",
+ "Night" : "Foul",
+ "Raptor" : "Foul",
+ "Seraph" : null,
+ "Snake" : "Fallen",
+ "Tyrant" : "Wilder",
+ "Vile" : "Haunt",
+ "Wargod" : "Kishin",
+ "Wilder" : "Brute",
+ "Yoma" : "Beast"
+ },
+ "Kishin" : {
+ "Avatar" : "Holy",
+ "Avian" : "Lady",
+ "Beast" : "Holy",
+ "Brute" : "Snake",
+ "Deity" : "Fury",
+ "Divine" : "Vile",
+ "Dragon" : "Fury",
+ "Element" : "Kishin",
+ "Entity" : "Fury",
+ "Fairy" : "Brute",
+ "Fallen" : "Night",
+ "Femme" : "Lady",
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : "Lady",
+ "Genma" : "Megami",
+ "Haunt" : null,
+ "Holy" : "Lady",
+ "Jirae" : "Snake",
+ "Kishin" : null,
+ "Lady" : "Fury",
+ "Megami" : "Lady",
+ "Mitama" : "Kishin",
+ "Night" : "Femme",
+ "Raptor" : "Tyrant",
+ "Seraph" : "Divine",
+ "Snake" : "Femme",
+ "Tyrant" : null,
+ "Vile" : null,
+ "Wargod" : "Fury",
+ "Wilder" : null,
+ "Yoma" : "Femme"
+ },
+ "Lady" : {
+ "Avatar" : "Fury",
+ "Avian" : null,
+ "Beast" : "Snake",
+ "Brute" : "Fury",
+ "Deity" : null,
+ "Divine" : "Megami",
+ "Dragon" : null,
+ "Element" : "Lady",
+ "Entity" : "Fury",
+ "Fairy" : "Yoma",
+ "Fallen" : "Fury",
+ "Femme" : "Kishin",
+ "Fiend" : null,
+ "Foul" : "Vile",
+ "Fury" : "Vile",
+ "Genma" : "Femme",
+ "Haunt" : "Vile",
+ "Holy" : "Avatar",
+ "Jirae" : "Beast",
+ "Kishin" : "Fury",
+ "Lady" : null,
+ "Megami" : "Fury",
+ "Mitama" : "Lady",
+ "Night" : "Kishin",
+ "Raptor" : "Kishin",
+ "Seraph" : "Deity",
+ "Snake" : "Femme",
+ "Tyrant" : null,
+ "Vile" : null,
+ "Wargod" : "Kishin",
+ "Wilder" : "Haunt",
+ "Yoma" : "Night"
+ },
+ "Megami" : {
+ "Avatar" : "Deity",
+ "Avian" : "Deity",
+ "Beast" : "Holy",
+ "Brute" : "Femme",
+ "Deity" : null,
+ "Divine" : "Holy",
+ "Dragon" : "Avatar",
+ "Element" : "Megami",
+ "Entity" : "Deity",
+ "Fairy" : "Fallen",
+ "Fallen" : "Divine",
+ "Femme" : "Fairy",
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : "Deity",
+ "Genma" : "Divine",
+ "Haunt" : null,
+ "Holy" : "Divine",
+ "Jirae" : "Lady",
+ "Kishin" : "Lady",
+ "Lady" : "Fury",
+ "Megami" : null,
+ "Mitama" : "Megami",
+ "Night" : "Fallen",
+ "Raptor" : "Tyrant",
+ "Seraph" : "Deity",
+ "Snake" : "Fairy",
+ "Tyrant" : null,
+ "Vile" : "Fury",
+ "Wargod" : "Deity",
+ "Wilder" : "Vile",
+ "Yoma" : "Kishin"
+ },
+ "Mitama" : {
+ "Avatar" : "Avatar",
+ "Avian" : "Avian",
+ "Beast" : "Beast",
+ "Brute" : "Brute",
+ "Deity" : "Deity",
+ "Divine" : "Divine",
+ "Dragon" : "Dragon",
+ "Element" : "Element",
+ "Entity" : "Entity",
+ "Fairy" : "Fairy",
+ "Fallen" : "Fallen",
+ "Femme" : "Femme",
+ "Fiend" : "Fiend",
+ "Foul" : "Foul",
+ "Fury" : "Fury",
+ "Genma" : "Genma",
+ "Haunt" : "Haunt",
+ "Holy" : "Holy",
+ "Jirae" : "Jirae",
+ "Kishin" : "Kishin",
+ "Lady" : "Lady",
+ "Megami" : "Megami",
+ "Mitama" : "Mitama",
+ "Night" : "Night",
+ "Raptor" : "Raptor",
+ "Seraph" : "Seraph",
+ "Snake" : "Snake",
+ "Tyrant" : "Tyrant",
+ "Vile" : "Vile",
+ "Wargod" : "Wargod",
+ "Wilder" : "Wilder",
+ "Yoma" : "Yoma"
+ },
+ "Night" : {
+ "Avatar" : "Holy",
+ "Avian" : "Femme",
+ "Beast" : "Fairy",
+ "Brute" : "Kishin",
+ "Deity" : "Vile",
+ "Divine" : "Snake",
+ "Dragon" : "Femme",
+ "Element" : "Night",
+ "Entity" : "Brute",
+ "Fairy" : "Snake",
+ "Fallen" : "Haunt",
+ "Femme" : "Jirae",
+ "Fiend" : "Lady",
+ "Foul" : "Brute",
+ "Fury" : "Lady",
+ "Genma" : "Holy",
+ "Haunt" : "Yoma",
+ "Holy" : "Fairy",
+ "Jirae" : "Foul",
+ "Kishin" : "Femme",
+ "Lady" : "Kishin",
+ "Megami" : "Fallen",
+ "Mitama" : "Night",
+ "Night" : "Element",
+ "Raptor" : "Vile",
+ "Seraph" : "Fallen",
+ "Snake" : "Fallen",
+ "Tyrant" : "Lady",
+ "Vile" : "Lady",
+ "Wargod" : null,
+ "Wilder" : "Beast",
+ "Yoma" : "Divine"
+ },
+ "Raptor" : {
+ "Avatar" : "Wilder",
+ "Avian" : "Megami",
+ "Beast" : "Wilder",
+ "Brute" : "Fury",
+ "Deity" : "Tyrant",
+ "Divine" : "Foul",
+ "Dragon" : null,
+ "Element" : null,
+ "Entity" : "Vile",
+ "Fairy" : "Haunt",
+ "Fallen" : "Foul",
+ "Femme" : "Foul",
+ "Fiend" : "Fury",
+ "Foul" : "Vile",
+ "Fury" : "Tyrant",
+ "Genma" : "Lady",
+ "Haunt" : "Vile",
+ "Holy" : "Wilder",
+ "Jirae" : "Foul",
+ "Kishin" : "Tyrant",
+ "Lady" : "Kishin",
+ "Megami" : "Tyrant",
+ "Mitama" : "Raptor",
+ "Night" : "Vile",
+ "Raptor" : null,
+ "Seraph" : null,
+ "Snake" : "Foul",
+ "Tyrant" : "Fury",
+ "Vile" : "Fury",
+ "Wargod" : null,
+ "Wilder" : "Vile",
+ "Yoma" : "Haunt"
+ },
+ "Seraph" : {
+ "Avatar" : "Deity",
+ "Avian" : "Megami",
+ "Beast" : null,
+ "Brute" : null,
+ "Deity" : null,
+ "Divine" : "Megami",
+ "Dragon" : "Holy",
+ "Element" : null,
+ "Entity" : "Deity",
+ "Fairy" : "Holy",
+ "Fallen" : "Lady",
+ "Femme" : null,
+ "Fiend" : "Fallen",
+ "Foul" : "Fallen",
+ "Fury" : "Vile",
+ "Genma" : "Megami",
+ "Haunt" : "Fallen",
+ "Holy" : "Divine",
+ "Jirae" : null,
+ "Kishin" : "Divine",
+ "Lady" : "Deity",
+ "Megami" : "Deity",
+ "Mitama" : "Seraph",
+ "Night" : "Fallen",
+ "Raptor" : null,
+ "Seraph" : "Element",
+ "Snake" : null,
+ "Tyrant" : "Fallen",
+ "Vile" : "Divine",
+ "Wargod" : "Kishin",
+ "Wilder" : null,
+ "Yoma" : "Megami"
+ },
+ "Snake" : {
+ "Avatar" : "Lady",
+ "Avian" : "Kishin",
+ "Beast" : "Brute",
+ "Brute" : "Beast",
+ "Deity" : "Kishin",
+ "Divine" : "Fairy",
+ "Dragon" : "Lady",
+ "Element" : "Snake",
+ "Entity" : "Fury",
+ "Fairy" : "Yoma",
+ "Fallen" : "Beast",
+ "Femme" : "Kishin",
+ "Fiend" : "Brute",
+ "Foul" : "Fallen",
+ "Fury" : "Kishin",
+ "Genma" : "Femme",
+ "Haunt" : "Brute",
+ "Holy" : "Kishin",
+ "Jirae" : "Fallen",
+ "Kishin" : "Femme",
+ "Lady" : "Femme",
+ "Megami" : "Fairy",
+ "Mitama" : "Snake",
+ "Night" : "Fallen",
+ "Raptor" : "Foul",
+ "Seraph" : null,
+ "Snake" : "Element",
+ "Tyrant" : "Brute",
+ "Vile" : "Kishin",
+ "Wargod" : "Kishin",
+ "Wilder" : "Night",
+ "Yoma" : "Night"
+ },
+ "Tyrant" : {
+ "Avatar" : null,
+ "Avian" : null,
+ "Beast" : "Night",
+ "Brute" : "Haunt",
+ "Deity" : null,
+ "Divine" : "Vile",
+ "Dragon" : null,
+ "Element" : "Tyrant",
+ "Entity" : null,
+ "Fairy" : "Night",
+ "Fallen" : "Fury",
+ "Femme" : "Lady",
+ "Fiend" : null,
+ "Foul" : "Haunt",
+ "Fury" : "Deity",
+ "Genma" : "Yoma",
+ "Haunt" : "Foul",
+ "Holy" : null,
+ "Jirae" : "Wilder",
+ "Kishin" : null,
+ "Lady" : null,
+ "Megami" : null,
+ "Mitama" : "Tyrant",
+ "Night" : "Lady",
+ "Raptor" : "Fury",
+ "Seraph" : "Fallen",
+ "Snake" : "Brute",
+ "Tyrant" : null,
+ "Vile" : "Fury",
+ "Wargod" : null,
+ "Wilder" : "Night",
+ "Yoma" : "Night"
+ },
+ "Vile" : {
+ "Avatar" : "Deity",
+ "Avian" : null,
+ "Beast" : "Foul",
+ "Brute" : "Haunt",
+ "Deity" : null,
+ "Divine" : "Fallen",
+ "Dragon" : "Snake",
+ "Element" : "Vile",
+ "Entity" : null,
+ "Fairy" : "Night",
+ "Fallen" : "Brute",
+ "Femme" : "Brute",
+ "Fiend" : "Fury",
+ "Foul" : "Haunt",
+ "Fury" : "Tyrant",
+ "Genma" : "Yoma",
+ "Haunt" : "Foul",
+ "Holy" : null,
+ "Jirae" : "Haunt",
+ "Kishin" : null,
+ "Lady" : null,
+ "Megami" : "Fury",
+ "Mitama" : "Vile",
+ "Night" : "Lady",
+ "Raptor" : "Fury",
+ "Seraph" : "Divine",
+ "Snake" : "Kishin",
+ "Tyrant" : "Fury",
+ "Vile" : null,
+ "Wargod" : "Kishin",
+ "Wilder" : "Foul",
+ "Yoma" : "Jirae"
+ },
+ "Wargod" : {
+ "Avatar" : "Deity",
+ "Avian" : "Kishin",
+ "Beast" : "Holy",
+ "Brute" : null,
+ "Deity" : "Kishin",
+ "Divine" : "Holy",
+ "Dragon" : "Lady",
+ "Element" : null,
+ "Entity" : "Fury",
+ "Fairy" : null,
+ "Fallen" : "Lady",
+ "Femme" : null,
+ "Fiend" : null,
+ "Foul" : null,
+ "Fury" : "Deity",
+ "Genma" : "Holy",
+ "Haunt" : null,
+ "Holy" : "Kishin",
+ "Jirae" : "Kishin",
+ "Kishin" : "Fury",
+ "Lady" : "Kishin",
+ "Megami" : "Deity",
+ "Mitama" : "Wargod",
+ "Night" : null,
+ "Raptor" : null,
+ "Seraph" : "Kishin",
+ "Snake" : "Kishin",
+ "Tyrant" : null,
+ "Vile" : "Kishin",
+ "Wargod" : null,
+ "Wilder" : null,
+ "Yoma" : null
+ },
+ "Wilder" : {
+ "Avatar" : null,
+ "Avian" : null,
+ "Beast" : "Jirae",
+ "Brute" : "Fairy",
+ "Deity" : null,
+ "Divine" : "Fallen",
+ "Dragon" : null,
+ "Element" : "Wilder",
+ "Entity" : "Brute",
+ "Fairy" : "Yoma",
+ "Fallen" : "Night",
+ "Femme" : "Fallen",
+ "Fiend" : "Night",
+ "Foul" : "Beast",
+ "Fury" : null,
+ "Genma" : "Yoma",
+ "Haunt" : "Jirae",
+ "Holy" : null,
+ "Jirae" : "Brute",
+ "Kishin" : null,
+ "Lady" : "Haunt",
+ "Megami" : "Vile",
+ "Mitama" : "Wilder",
+ "Night" : "Beast",
+ "Raptor" : "Vile",
+ "Seraph" : null,
+ "Snake" : "Night",
+ "Tyrant" : "Night",
+ "Vile" : "Foul",
+ "Wargod" : null,
+ "Wilder" : "Element",
+ "Yoma" : "Beast"
+ },
+ "Yoma" : {
+ "Avatar" : "Divine",
+ "Avian" : "Night",
+ "Beast" : "Fallen",
+ "Brute" : "Femme",
+ "Deity" : "Megami",
+ "Divine" : "Snake",
+ "Dragon" : "Avatar",
+ "Element" : "Yoma",
+ "Entity" : "Megami",
+ "Fairy" : "Holy",
+ "Fallen" : "Jirae",
+ "Femme" : "Brute",
+ "Fiend" : "Night",
+ "Foul" : "Snake",
+ "Fury" : "Holy",
+ "Genma" : null,
+ "Haunt" : "Jirae",
+ "Holy" : "Divine",
+ "Jirae" : "Beast",
+ "Kishin" : "Femme",
+ "Lady" : "Night",
+ "Megami" : "Kishin",
+ "Mitama" : "Yoma",
+ "Night" : "Divine",
+ "Raptor" : "Haunt",
+ "Seraph" : "Megami",
+ "Snake" : "Night",
+ "Tyrant" : "Night",
+ "Vile" : "Jirae",
+ "Wargod" : null,
+ "Wilder" : "Beast",
+ "Yoma" : "Element"
+ }
+}