summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Demons.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-05-25 11:40:12 -0400
committerJesse Luehrs <doy@tozt.net>2014-05-25 11:40:12 -0400
commit3915741eccf2c74b7be8043dce10b81161bf4854 (patch)
tree000e11dd0565770efec2cf45c79c293895a2f8c6 /lib/Games/SMTNocturne/Demons.pm
parent32e9180698185015a09210012d8ee982d01e5c56 (diff)
downloadgames-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.pm21
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 {