diff options
author | Jesse Luehrs <doy@tozt.net> | 2009-10-04 00:39:35 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2009-10-04 00:39:35 -0500 |
commit | 2ad79606e53dfa84b18d704f2d889edca5a69fc2 (patch) | |
tree | c9d5a10f59d2db23dbff2522cb2c315a63611663 /lib | |
parent | e9560047135492340a29029b18aea45c27ed6d98 (diff) | |
download | games-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.pm | 16 |
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__ |