summaryrefslogtreecommitdiffstats
path: root/lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm')
-rw-r--r--lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm73
1 files changed, 61 insertions, 12 deletions
diff --git a/lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm b/lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm
index 3d65cb2..a8f04b2 100644
--- a/lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm
+++ b/lib/Games/SMTNocturne/Fusion/Role/Deathstone.pm
@@ -26,17 +26,25 @@ class_has required_target_types => (
=cut
-sub _required_target_types {
+sub _required_state {
local $/ = undef;
my $data = <DATA>;
close DATA;
return Load($data);
}
-memoize('_required_target_types', NORMALIZER => sub { "" });
+memoize('_required_state', NORMALIZER => sub { "" });
sub required_target_type_for {
my $class = shift;
- return $class->_required_target_types->{$_[0]};
+ return $class->_required_state->{$_[0]}{type};
+}
+
+sub required_time_for {
+ my $class = shift;
+ my $time = $class->_required_state->{$_[0]}{time};
+ return Games::SMTNocturne::Fusion::KagutsuchiPhase->new(
+ $time->[0]..$time->[1]
+ );
}
sub required_target_type {
@@ -44,16 +52,57 @@ sub required_target_type {
return $self->required_target_type_for($self->name);
}
+sub required_time {
+ my $self = shift;
+ return $self->required_time_for($self->name);
+}
+
1;
__DATA__
---
-Black Rider: Night
-Daisoujou: Night
-Hell Biker: Fairy
-Matador: Yoma
-Pale Rider: Tyrant
-Red Rider: Fairy
-The Harlot: Tyrant
-Trumpeter: Tyrant
-White Rider: Yoma
+Black Rider:
+ time:
+ - 0
+ - 0
+ type: Night
+Daisoujou:
+ time:
+ - 5
+ - 8
+ type: Night
+Hell Biker:
+ time:
+ - 4
+ - 7
+ type: Fairy
+Matador:
+ time:
+ - 1
+ - 4
+ type: Yoma
+Pale Rider:
+ time:
+ - 0
+ - 0
+ type: Tyrant
+Red Rider:
+ time:
+ - 0
+ - 0
+ type: Fairy
+The Harlot:
+ time:
+ - 4
+ - 4
+ type: Tyrant
+Trumpeter:
+ time:
+ - 8
+ - 8
+ type: Tyrant
+White Rider:
+ time:
+ - 0
+ - 0
+ type: Yoma