3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-28 14:59:56 +01:00

Plugin/Wordle: keep game state after giveup

This commit is contained in:
Pragmatic Software 2024-11-27 16:15:09 -08:00
parent 001f2024c4
commit 6ba8776c2c
No known key found for this signature in database
GPG Key ID: CC916B6E3C84ECCE
2 changed files with 28 additions and 5 deletions

View File

@ -165,6 +165,12 @@ sub wordle($self, $context) {
$result .= "; solved by: $self->{$channel}->{solved_by} ($solved_on)"; $result .= "; solved by: $self->{$channel}->{solved_by} ($solved_on)";
} }
if ($self->{$channel}->{givenup}) {
my $givenup_on = concise ago (time - $self->{$channel}->{givenup_on});
my $wordle = join '', $self->{$channel}->{wordle}->@*;
$result .= "; given up by: $self->{$channel}->{givenup_by} ($givenup_on); word was: $wordle";
}
return $result; return $result;
} }
@ -173,9 +179,21 @@ sub wordle($self, $context) {
return NO_WORDLE; return NO_WORDLE;
} }
my $wordle = join '', $self->{$channel}->{wordle}->@*; if ($self->{$channel}->{correct}) {
$self->{$channel}->{wordle} = undef; my $solved_on = concise ago (time - $self->{$channel}->{solved_on});
return "Wordle already solved by $self->{$channel}->{solved_by} ($solved_on)";
}
if ($self->{$channel}->{givenup}) {
my $givenup_on = concise ago (time - $self->{$channel}->{givenup_on});
my $wordle = join '', $self->{$channel}->{wordle}->@*;
return "The word was $wordle. It was already given up by $self->{$channel}->{givenup_by} ($givenup_on).";
}
$self->{$channel}->{givenup} = 1;
$self->{$channel}->{givenup_by} = $context->{nick};
$self->{$channel}->{givenup_on} = time;
my $wordle = join '', $self->{$channel}->{wordle}->@*;
return "The word was $wordle. Better luck next time."; return "The word was $wordle. Better luck next time.";
} }
@ -203,7 +221,7 @@ sub wordle($self, $context) {
$length = $args[0]; $length = $args[0];
} }
if (defined $self->{$channel}->{wordle} && $self->{$channel}->{correct} == 0) { if (defined $self->{$channel}->{wordle} && $self->{$channel}->{correct} == 0 && $self->{$channel}->{givenup} == 0) {
return "There is already a Wordle underway! Use `wordle show` to see the current progress or `wordle giveup` to end it."; return "There is already a Wordle underway! Use `wordle show` to see the current progress or `wordle giveup` to end it.";
} }
@ -237,7 +255,7 @@ sub wordle($self, $context) {
return "I'm not on that channel!"; return "I'm not on that channel!";
} }
if (defined $self->{$custom_channel}->{wordle} && $self->{$custom_channel}->{correct} == 0) { if (defined $self->{$custom_channel}->{wordle} && $self->{$custom_channel}->{correct} == 0 && $self->{$custom_channel}->{givenup} == 0) {
return "There is already a Wordle underway! Use `wordle show` to see the current progress or `wordle giveup` to end it."; return "There is already a Wordle underway! Use `wordle show` to see the current progress or `wordle giveup` to end it.";
} }
@ -279,6 +297,10 @@ sub wordle($self, $context) {
return "Wordle already solved by $self->{$channel}->{solved_by}. " . $self->show_wordle($channel); return "Wordle already solved by $self->{$channel}->{solved_by}. " . $self->show_wordle($channel);
} }
if ($self->{$channel}->{givenup}) {
return "Wordle given up by $self->{$channel}->{givenup_by}.";
}
my $result = $self->guess_wordle($channel, $args[0]); my $result = $self->guess_wordle($channel, $args[0]);
if ($self->{$channel}->{correct}) { if ($self->{$channel}->{correct}) {
@ -394,6 +416,7 @@ sub make_wordle($self, $channel, $length, $word = undef, $wordlist = DEFAULT_LIS
$self->{$channel}->{guess} = ''; $self->{$channel}->{guess} = '';
$self->{$channel}->{guesses} = []; $self->{$channel}->{guesses} = [];
$self->{$channel}->{correct} = 0; $self->{$channel}->{correct} = 0;
$self->{$channel}->{givenup} = 0;
$self->{$channel}->{guess_count} = 0; $self->{$channel}->{guess_count} = 0;
$self->{$channel}->{letters} = {}; $self->{$channel}->{letters} = {};

View File

@ -25,7 +25,7 @@ use PBot::Imports;
# These are set by the /misc/update_version script # These are set by the /misc/update_version script
use constant { use constant {
BUILD_NAME => "PBot", BUILD_NAME => "PBot",
BUILD_REVISION => 4859, BUILD_REVISION => 4860,
BUILD_DATE => "2024-11-27", BUILD_DATE => "2024-11-27",
}; };