diff options
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/Types.pm')
-rw-r--r-- | lib/Games/SMTNocturne/Fusion/Types.pm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/Types.pm b/lib/Games/SMTNocturne/Fusion/Types.pm index 86f7fab..b62f483 100644 --- a/lib/Games/SMTNocturne/Fusion/Types.pm +++ b/lib/Games/SMTNocturne/Fusion/Types.pm @@ -7,7 +7,9 @@ BEGIN { Foul Seraph Wargod Genma Dragon Avatar Avian Raptor Entity Fiend); } use MooseX::Types - -declare => [qw(DemonType FusionType SMTDemon DemonList), @demon_types]; + -declare => [qw(DemonType FusionType SMTDemon DemonList + DeathstoneDemon EvolveDemon SpecialDemon), + @demon_types]; use MooseX::Types::Moose qw(ArrayRef Str); enum DemonType, @demon_types; @@ -28,4 +30,12 @@ for my $typename (@demon_types) { via { Games::SMTNocturne::Fusion::Demon->lookup($_) }; } +for my $typename (qw(Deathstone Evolve Special)) { + my $type = __PACKAGE__->can("${typename}Demon")->(); + subtype $type, as SMTDemon, + where { $_->does("Games::SMTNocturne::Fusion::Role::$typename") }; + coerce $type, from Str, + via { Games::SMTNocturne::Fusion::Demon->lookup($_) }; +} + 1; |