summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Fusion/Types.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-10-05 20:45:38 -0500
committerJesse Luehrs <doy@tozt.net>2009-10-05 20:45:38 -0500
commita8aa9525b5fe556470fdf96a0bab733c1d616b0a (patch)
treec867241bb10f5580098f437ecb33f0229c6cf475 /lib/Games/SMTNocturne/Fusion/Types.pm
parent5bb618a0350914e967221c8347a21fedbde997b5 (diff)
downloadgames-smtnocturne-fusion-a8aa9525b5fe556470fdf96a0bab733c1d616b0a.tar.gz
games-smtnocturne-fusion-a8aa9525b5fe556470fdf96a0bab733c1d616b0a.zip
convert to using mx-types
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/Types.pm')
-rw-r--r--lib/Games/SMTNocturne/Fusion/Types.pm25
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/Types.pm b/lib/Games/SMTNocturne/Fusion/Types.pm
index 2811902..2504803 100644
--- a/lib/Games/SMTNocturne/Fusion/Types.pm
+++ b/lib/Games/SMTNocturne/Fusion/Types.pm
@@ -1,18 +1,21 @@
package Games::SMTNocturne::Fusion::Types;
-use strict;
-use warnings;
-use Moose::Util::TypeConstraints;
+use MooseX::Types -declare => [qw(DemonType FusionType SMTDemon DemonList)];
+use MooseX::Types::Moose qw(ArrayRef Str);
-enum 'Games::SMTNocturne::Fusion::DemonType' =>
+# XXX: make each demon type a subtype of Demon
+my @demon_types =
qw(Deity Megami Fury Lady Kishin Holy Element Mitama Yoma Fairy Divine
Fallen Snake Beast Jirae Brute Femme Vile Tyrant Night Wilder Haunt
Foul Seraph Wargod Genma Dragon Avatar Avian Raptor Entity Fiend);
-enum 'Games::SMTNocturne::Fusion::FusionType' =>
- qw(deathstone evolve normal special);
-subtype 'Games::SMTNocturne::Fusion::DemonList',
- as 'ArrayRef[Games::SMTNocturne::Fusion::Demon]';
-coerce 'Games::SMTNocturne::Fusion::DemonList',
- from 'ArrayRef[Str]',
- via { [map { Games::SMTNocturne::Fusion::Demon->lookup($_) } @$_] };
+
+enum DemonType, @demon_types;
+enum FusionType, qw(deathstone evolve normal special);
+
+class_type SMTDemon, { class => 'Games::SMTNocturne::Fusion::Demon' };
+coerce SMTDemon, from Str,
+ via { Games::SMTNocturne::Fusion::Demon->lookup($_) };
+subtype DemonList, as ArrayRef[SMTDemon];
+coerce DemonList, from ArrayRef[Str],
+ via { [map { to_SMTDemon($_) } @$_] };
1;