summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-05-26 10:26:11 -0400
committerJesse Luehrs <doy@tozt.net>2014-05-26 10:26:11 -0400
commit97b7df9631adf914eaf11212768a1ce32cb12b16 (patch)
treede836963383c1083f318425e152b50bfc7fe43c6
parent235f460139542ea01d767c9631fffcdc48735da5 (diff)
downloadgames-smtnocturne-demons-97b7df9631adf914eaf11212768a1ce32cb12b16.tar.gz
games-smtnocturne-demons-97b7df9631adf914eaf11212768a1ce32cb12b16.zip
allow listing all demons of a given type
-rw-r--r--bin/smt_fusion12
-rw-r--r--lib/Games/SMTNocturne/Demons.pm8
2 files changed, 16 insertions, 4 deletions
diff --git a/bin/smt_fusion b/bin/smt_fusion
index 75538ce..6954425 100644
--- a/bin/smt_fusion
+++ b/bin/smt_fusion
@@ -7,9 +7,10 @@ use List::Util 'max';
use Games::SMTNocturne::Demons;
-sub _demon { Games::SMTNocturne::Demons::demon(@_) }
-sub _fuse { Games::SMTNocturne::Demons::fuse(@_) }
-sub _fusions_for { Games::SMTNocturne::Demons::fusions_for(@_) }
+sub _demon { Games::SMTNocturne::Demons::demon(@_) }
+sub _demons_of_type { Games::SMTNocturne::Demons::demons_of_type(@_) }
+sub _fuse { Games::SMTNocturne::Demons::fuse(@_) }
+sub _fusions_for { Games::SMTNocturne::Demons::fusions_for(@_) }
my $command = shift @ARGV;
@@ -42,6 +43,11 @@ sub demon {
print _demon($demon), "\n";
}
+sub demons_of_type {
+ my ($type) = @_;
+ print join("\n", _demons_of_type($type)), "\n";
+}
+
sub fuse {
my ($demon1, $demon2) = @_;
print _fuse($demon1, $demon2, $options), "\n";
diff --git a/lib/Games/SMTNocturne/Demons.pm b/lib/Games/SMTNocturne/Demons.pm
index d3f3f1a..b09672b 100644
--- a/lib/Games/SMTNocturne/Demons.pm
+++ b/lib/Games/SMTNocturne/Demons.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Exporter 'import';
-our @EXPORT_OK = qw(demon fuse fusions_for);
+our @EXPORT_OK = qw(demon demons_of_type fuse fusions_for);
use Games::SMTNocturne::Demons::Demon;
use Games::SMTNocturne::Demons::Fusion;
@@ -15,6 +15,12 @@ sub demon {
return Games::SMTNocturne::Demons::Demon->from_name($demon);
}
+sub demons_of_type {
+ my ($type) = @_;
+
+ return Games::SMTNocturne::Demons::Demon->from_type($type);
+}
+
sub fuse {
my ($demon1, $demon2, $options) = @_;
$options = { %{ $options || {} } };