summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Fusion/Chart.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-10-06 10:09:33 -0500
committerJesse Luehrs <doy@tozt.net>2009-10-06 10:09:33 -0500
commite4c8dc1d21fa1229d015872f715bd5709707c2d4 (patch)
treecdb5d1d540cbe30fba9fb9a97dbd08f1f87c118c /lib/Games/SMTNocturne/Fusion/Chart.pm
parent2022027fb115a83b50d1eac1269534c78d342785 (diff)
downloadgames-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.pm12
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,