summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-10-04 00:39:35 -0500
committerJesse Luehrs <doy@tozt.net>2009-10-04 00:39:35 -0500
commit2ad79606e53dfa84b18d704f2d889edca5a69fc2 (patch)
treec9d5a10f59d2db23dbff2522cb2c315a63611663 /lib
parente9560047135492340a29029b18aea45c27ed6d98 (diff)
downloadgames-smtnocturne-fusion-2ad79606e53dfa84b18d704f2d889edca5a69fc2.tar.gz
games-smtnocturne-fusion-2ad79606e53dfa84b18d704f2d889edca5a69fc2.zip
add basic demon fusion rules
Diffstat (limited to 'lib')
-rw-r--r--lib/Games/SMTNocturne/Fusion/Chart.pm16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/Chart.pm b/lib/Games/SMTNocturne/Fusion/Chart.pm
index 631e585..69f2fd5 100644
--- a/lib/Games/SMTNocturne/Fusion/Chart.pm
+++ b/lib/Games/SMTNocturne/Fusion/Chart.pm
@@ -16,6 +16,22 @@ class_has _type_chart => (
},
);
+sub fuse {
+ my $self = shift;
+ my ($demon1, $demon2) = @_;
+ $demon1 = Games::SMTNocturne::Fusion::Demon->lookup($demon1)
+ unless blessed($demon1);
+ $demon2 = Games::SMTNocturne::Fusion::Demon->lookup($demon2)
+ unless blessed($demon2);
+ my $type = $self->_type_chart->{$demon1->type}{$demon2->type};
+ my $level = ($demon1->level + $demon2->level) / 2;
+ my @possible = Games::SMTNocturne::Fusion::Demon->lookup(
+ type => $type,
+ level => sub { $_ >= $level },
+ );
+ return $possible[0];
+}
+
1;
__DATA__