LasTres/lib/LasTres/TalkingNPC/AncianoTribuLima.pm

109 lines
2.6 KiB
Perl

package LasTres::TalkingNPC::AncianoTribuLima;
use v5.36.0;
use strict;
use warnings;
use utf8;
use feature 'signatures';
use Moo;
use LasTres::Flags;
use LasTres::Word::Devota;
use parent 'LasTres::TalkingNPC';
sub talk ( $self, $pj, $word = undef ) {
$self->SUPER::talk( $pj, $word );
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;
}
$self->word_unknown($pj);
}
sub word_devota($self, $pj) {
$self->send_response_dialog(
$pj,
[
{
text => '¿La Devota? Suele estar en la casa de piedra.'
}
]
);
}
sub word_unknown($self, $pj) {
$self->send_response_dialog(
$pj,
[
{
text => 'Mmmm seguro que eso es muy interesante para otra persona.'
}
]
);
}
sub identifier {
return 'anciano_tribu_de_la_lima';
}
sub icon {
return '/img/anciano.png';
}
sub name {
return 'Anciano';
}
sub verb ( $self, $pj ) {
if ( !$pj->knows_word( LasTres::Word::Devota->instance ) ) {
return 'farfulla';
}
return 'indica';
}
sub wordlessly_talk ( $self, $pj ) {
if ( $pj->knows_word( LasTres::Word::Devota->instance ) ) {
$self->send_response_dialog(
$pj,
[
{
text => '¿A que esperas? Ve a hablar con la Devota.'
}
]
);
return;
}
$self->send_response_dialog(
$pj,
[
{
text => (
'¿De verdad estabas dormido?'
. ' Una lastima que no hayas visto ese gran pájaro que acaba de pasar'
. ' justo ahora. En cualquier caso, no deberías estar vagueando, ¿Hoy'
. ' no era el día que te marchabas a la Torre? Si se hace de noche'
. ' será demasiado peligroso y tendrás que salir mañana. Ve a hablar'
. ' ahora mismo con la Devota, sin su bendición nadie emprende el viaje a la Torre.'
. ' ¿No sabes donde puede estar la Devota? No tiene perdida, es la única casa hecha de piedra.'
. ' Si no la encuentras siempre puedes preguntar a la gente de la tribu.'
)
}
]
);
$pj->teach_word( LasTres::Word::Devota->instance );
}
1;