summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Fusion/Chart.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/Chart.pm')
-rw-r--r--lib/Games/SMTNocturne/Fusion/Chart.pm27
1 files changed, 25 insertions, 2 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/Chart.pm b/lib/Games/SMTNocturne/Fusion/Chart.pm
index a5b226b..9095a50 100644
--- a/lib/Games/SMTNocturne/Fusion/Chart.pm
+++ b/lib/Games/SMTNocturne/Fusion/Chart.pm
@@ -63,8 +63,31 @@ multi method fuse (ClassName $self: SMTDemon $demon1 is coerce,
multi method fuse (ClassName $self: Element $demon1 is coerce,
Element $demon2 is coerce) {
- # XXX: fix
- return;
+ my %element_fusions = (
+ Erthys => {
+ Aeros => 'Nigi',
+ Aquans => 'Ara',
+ Flameis => 'Kusi',
+ },
+ Aeros => {
+ Erthys => 'Nigi',
+ Aquans => 'Kusi',
+ Flameis => 'Ara',
+ },
+ Aquans => {
+ Erthys => 'Ara',
+ Aeros => 'Kusi',
+ Flameis => 'Saki',
+ },
+ Flameis => {
+ Erthys => 'Kusi',
+ Aeros => 'Ara',
+ Aquans => 'Saki',
+ },
+ );
+ my $mitama = $element_fusions{$demon1->name}{$demon2->name};
+ return unless $mitama;
+ return Demon->lookup("$mitama Mitama");
}
multi method fuse (ClassName $self: Mitama $demon1 is coerce,