diff options
author | Jesse Luehrs <doy@tozt.net> | 2009-10-06 10:09:33 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2009-10-06 10:09:33 -0500 |
commit | e4c8dc1d21fa1229d015872f715bd5709707c2d4 (patch) | |
tree | cdb5d1d540cbe30fba9fb9a97dbd08f1f87c118c /lib/Games/SMTNocturne/Fusion/Chart.pm | |
parent | 2022027fb115a83b50d1eac1269534c78d342785 (diff) | |
download | games-smtnocturne-fusion-e4c8dc1d21fa1229d015872f715bd5709707c2d4.tar.gz games-smtnocturne-fusion-e4c8dc1d21fa1229d015872f715bd5709707c2d4.zip |
refactor a bunch of the level calculations
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/Chart.pm')
-rw-r--r-- | lib/Games/SMTNocturne/Fusion/Chart.pm | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/Chart.pm b/lib/Games/SMTNocturne/Fusion/Chart.pm index 1570e97..c3e7c5c 100644 --- a/lib/Games/SMTNocturne/Fusion/Chart.pm +++ b/lib/Games/SMTNocturne/Fusion/Chart.pm @@ -49,16 +49,10 @@ my %element_fusions = ( multi method fuse (ClassName $self: SMTDemon $demon1 is coerce, SMTDemon $demon2 is coerce) { - my $type = $self->_type_chart->{$demon1->type}{$demon2->type}; - my $level = ($demon1->level + $demon2->level) / 2; - my @possible = Demon->lookup( - type => $type, - level => sub { $_ >= $level }, + return Demon->next_demon_above_level( + $self->_type_chart->{$demon1->type}{$demon2->type}, + ($demon1->level + $demon2->level) / 2, ); - return firstval { !$_->does('Games::SMTNocturne::Fusion::Role::Deathstone') - && !$_->does('Games::SMTNocturne::Fusion::Role::Evolve') - && !$_->does('Games::SMTNocturne::Fusion::Role::Special') } - @possible; } multi method fuse (ClassName $self: Element $demon1 is coerce, |