diff options
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm')
-rw-r--r-- | lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm b/lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm new file mode 100644 index 0000000..08f161f --- /dev/null +++ b/lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm @@ -0,0 +1,31 @@ +package Games::SMTNocturne::Fusion::KagutsuchiPhase; +use Moose; +use namespace::clean -except => 'meta'; +use overload '""' => sub { + my $self = shift; + '<Kagutsuchi: ' . join(', ', map { $_ == 0 ? 'new' + : $_ == 4 ? 'half' + : $_ == 8 ? 'full' + : $_ } $self->phases) . '>'; +}; +# use namespace::autoclean; + +has phases => ( + traits => ['Array'], + isa => 'ArrayRef[Int]', + required => 1, + handles => { + phases => 'elements', + }, +); + +around BUILDARGS => sub { + my $orig = shift; + my $class = shift; + my @phases = @_; + return $class->$orig(phases => \@phases); +}; + +__PACKAGE__->meta->make_immutable; + +1; |