summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Fusion/Types.pm
blob: 2811902994e48f2fd52eda6400f1291065957793 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package Games::SMTNocturne::Fusion::Types;
use strict;
use warnings;
use Moose::Util::TypeConstraints;

enum 'Games::SMTNocturne::Fusion::DemonType' =>
    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($_) } @$_] };

1;