diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-05-25 11:40:12 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-05-25 11:40:12 -0400 |
commit | 3915741eccf2c74b7be8043dce10b81161bf4854 (patch) | |
tree | 000e11dd0565770efec2cf45c79c293895a2f8c6 /lib/Games/SMTNocturne/Demons.pm | |
parent | 32e9180698185015a09210012d8ee982d01e5c56 (diff) | |
download | games-smtnocturne-demons-3915741eccf2c74b7be8043dce10b81161bf4854.tar.gz games-smtnocturne-demons-3915741eccf2c74b7be8043dce10b81161bf4854.zip |
implement element fusion
Diffstat (limited to 'lib/Games/SMTNocturne/Demons.pm')
-rw-r--r-- | lib/Games/SMTNocturne/Demons.pm | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/Games/SMTNocturne/Demons.pm b/lib/Games/SMTNocturne/Demons.pm index b5da3d1..386ce0c 100644 --- a/lib/Games/SMTNocturne/Demons.pm +++ b/lib/Games/SMTNocturne/Demons.pm @@ -69,9 +69,20 @@ sub _fuse_mitama { } sub _element_fusion { - my ($element, $demon) = @_; + my ($element, $demon, $options) = @_; - die "element fusion nyi"; + my $direction = Games::SMTNocturne::Demons::FusionChart::element_fusion( + $demon->type, $element->name + ); + return unless $direction; + + return Games::SMTNocturne::Demons::Demon->from_fusion_stats({ + type => $demon->type, + level => $demon->level, + fusion_type => 'normal', + offset => $direction, + %{ $options || {} }, + }); } sub _mitama_fusion { @@ -83,7 +94,11 @@ sub _mitama_fusion { sub _fuse_element { my ($demon1, $demon2) = @_; - die "element fusion nyi"; + my $element = Games::SMTNocturne::Demons::FusionChart::fuse_element( + $demon1->type + ); + return unless $element; + return Games::SMTNocturne::Demons::Demon->from_name($element); } sub _normal_fusion { |