LasTres/lib/LasTres/TalkingNPC/Chaman.pm

106 lines
2.2 KiB
Perl

package LasTres::TalkingNPC::Chaman;
use v5.36.0;
use strict;
use warnings;
use utf8;
use feature 'signatures';
use Moo;
use LasTres::Flags;
use LasTres::Word::Devota;
use LasTres::Word::Ayazel;
use parent 'LasTres::TalkingNPC';
sub talk ( $self, $pj, $word = undef ) {
$self->SUPER::talk( $pj, $word );
if (!$pj->get_flag(LasTres::Flags::ASKED_FOR_DEVOTA_VETERANO_CALIZOR)) {
$self->send_response_dialog($pj, [
{
text => 'No tengo tiempo para esto, estoy preparando el '
. 'ritual de esta noche.'
}
]);
return;
}
if (!$pj->get_location_flag(LasTres::Flags::TEMPORAL_HAS_PRAYED)) {
$self->send_response_dialog($pj, [
{
text => 'Recuerda que lo primero que tienes que hacer al entrar a'
. ' este sitio sagrado es rezar a la diosa Ayazel.'
. ' Lo que me quieras decir puede esperar hasta entonces.'
}
]);
return;
}
if ( !defined $word ) {
$self->wordlessly_talk($pj);
return;
}
$self->word_talk($pj, $word);
}
sub word_talk($self, $pj, $word) {
require LasTres::Word::Devota;
if ($word->identifier eq LasTres::Word::Devota->instance->identifier) {
$self->word_devota($pj);
return;
}
if ($word->identifier eq LasTres::Word::Ayazel->instance->identifier) {
$self->word_ayazel($pj);
return;
}
$self->word_unknown($pj);
}
sub word_devota($self, $pj) {
...
}
sub word_ayazel($self, $pj) {
...
}
sub word_unknown($self, $pj) {
$self->send_response_dialog(
$pj,
[
{
text => 'Solo Ayazel sabe a que te refieres con eso.'
}
]
);
}
sub identifier {
return 'chaman_tribu_de_la_lima';
}
# sub icon {
# return '/img/anciano.png';
# }
sub name {
return 'Chamán de Ayazel';
}
sub verb ( $self, $pj ) {
return 'susurra';
}
sub wordlessly_talk ( $self, $pj ) {
$self->send_response_dialog(
$pj,
[
{
text => 'Ayazel te protegerá en tu viaje por el bosque, me lo dijo en sueños hace 2 noches.'
}
]
);
}
1;