summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm')
-rw-r--r--lib/Games/SMTNocturne/Fusion/KagutsuchiPhase.pm31
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;