The number of rounds, questions and bonus rounds are now all configurable via
`spinach set settings`.
Refactored states to not transition of a false value is returned, to eliminate
all explicit "wait" states.
Refactored ridiculous large per-round/per-question state transitions and
subroutines into a much more manageable and simpler state machine.
Now can easily and trivially adjust maximum rounds and maximum questions
by editing $self->{game} hashtable entries. TODO: make this configurable
via `spinach set`.
Replaced "/msg me" with "/msg $botnick" throughout.
Adjusted lie validation:
* If all words of lie are found within solution and word-count of lie is
less than word-count of solution, then game will say "So-and-so has found
part of the truth!"
* If lie is 20%-or-less different to the solution, then game will say
"So-and-so has misspelled the truth!"
This preserves the pipe/cmd-substitution/etc to allow post-processing
of the `date` output.
Interpreter: Reset `interpreted` contextual metadata when handling
result to allow recursion for continued command processing.
* func sed no longer trims leading whitespace
* quoted text no longer trims leading whitespace
* no longer convert tabs to spaces in output
* no longer condense adjacent whitespace together in output
Same-player ships will no longer be aligned end-to-end in the same orientation
to appear like one long ship.
There will no longer always be an even amount of horizontal and vertical ships
for each player.
- refactor `wordlists` into structure with more details
- added `name` field for language names
- added `prompt` field for localized "Guess the word!" prompt
- added `supp` field for supplemental wordlists
(used to add words to list for guessing, e.g. urban with insane supplement
allows initial word selection from urban list and then adds words from
insane list for more options for guessing)
- moved accents into added `accents` field
- added `min_length` and `max_length` fields for lists that are different
from default lengths
- misc minor adjustments
* obtain bot nick from connection details instead of registry where appropriate
* irc.random_nick works again
* record own hostmask when connecting
* fix web-paste truncation by subtracting length of own hostmask from message length
* set irc.max_msg_len back to 510
* updated IRC numeric 378 to whoishost
* add sprunge.us to WebPaste
Accented words will be unidecoded to Latin letters so letter list remains A-Z.
German words will include proper nouns since I had no easy way to distinguish
them from regular nouns.