From c666bfc50a1acc44ba9dbd206665ec95c1aea9f3 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 25 May 2014 11:47:11 -0400 Subject: implement fusing elements for mitama --- lib/Games/SMTNocturne/Demons.pm | 6 +++++- lib/Games/SMTNocturne/Demons/FusionChart.pm | 30 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) (limited to 'lib/Games') diff --git a/lib/Games/SMTNocturne/Demons.pm b/lib/Games/SMTNocturne/Demons.pm index f24518c..a5e8b04 100644 --- a/lib/Games/SMTNocturne/Demons.pm +++ b/lib/Games/SMTNocturne/Demons.pm @@ -65,7 +65,11 @@ sub fusions_for { sub _fuse_mitama { my ($element1, $element2) = @_; - die "element fusion nyi"; + my $mitama = Games::SMTNocturne::Demons::FusionChart::fuse_mitama( + $element1->name, $element2->name + ); + return unless $mitama; + return Games::SMTNocturne::Demons::Demon->from_name($mitama); } sub _element_fusion { diff --git a/lib/Games/SMTNocturne/Demons/FusionChart.pm b/lib/Games/SMTNocturne/Demons/FusionChart.pm index 294092d..e73bb9b 100644 --- a/lib/Games/SMTNocturne/Demons/FusionChart.pm +++ b/lib/Games/SMTNocturne/Demons/FusionChart.pm @@ -43,6 +43,36 @@ sub element_fusion { return $TYPES{$type}{element_fusions}{$element}; } +sub fuse_mitama { + my ($element1, $element2) = @_; + + # XXX move this into actual data somewhere + my %mitama_fusions = ( + Erthys => { + Aeros => 'Nigi Mitama', + Aquans => 'Ara Mitama', + Flaemis => 'Kusi Mitama', + }, + Aeros => { + Erthys => 'Nigi Mitama', + Aquans => 'Kusi Mitama', + Flaemis => 'Ara Mitama', + }, + Aquans => { + Erthys => 'Ara Mitama', + Aeros => 'Kusi Mitama', + Flaemis => 'Saki Mitama', + }, + Flaemis => { + Erthys => 'Kusi Mitama', + Aeros => 'Ara Mitama', + Aquans => 'Saki Mitama', + }, + ); + + return $mitama_fusions{$element1}{$element2}; +} + 1; __DATA__ -- cgit v1.2.3