Added .config games hangman.currency_reward and a property with the same name in games.yml

This commit is contained in:
Kwoth
2021-09-15 01:50:48 +02:00
parent 3edcca4927
commit 786ede3290
6 changed files with 59 additions and 7 deletions

View File

@@ -8,6 +8,15 @@ namespace NadekoBot.Modules.Games.Common
[Cloneable]
public sealed partial class GamesConfig : ICloneable<GamesConfig>
{
[Comment("DO NOT CHANGE")]
public int Version { get; set; }
[Comment("Hangman related settings (.hangman command)")]
public HangmanConfig Hangman { get; set; } = new HangmanConfig()
{
CurrencyReward = 0
};
[Comment("Trivia related settings (.t command)")]
public TriviaConfig Trivia { get; set; } = new TriviaConfig()
{
@@ -57,6 +66,13 @@ namespace NadekoBot.Modules.Games.Common
};
}
[Cloneable]
public sealed partial class HangmanConfig
{
[Comment("The amount of currency awarded to the winner of a hangman game")]
public long CurrencyReward { get; set; }
}
[Cloneable]
public sealed partial class TriviaConfig
{

View File

@@ -45,7 +45,7 @@ namespace NadekoBot.Modules.Games.Common.Hangman
public uint Errors { get; private set; } = 0;
public uint MaxErrors { get; } = 6;
public event Func<Hangman, string, Task> OnGameEnded = delegate { return Task.CompletedTask; };
public event Func<Hangman, string, ulong, Task> OnGameEnded = delegate { return Task.CompletedTask; };
public event Func<Hangman, string, char, Task> OnLetterAlreadyUsed = delegate { return Task.CompletedTask; };
public event Func<Hangman, string, char, Task> OnGuessFailed = delegate { return Task.CompletedTask; };
public event Func<Hangman, string, char, Task> OnGuessSucceeded = delegate { return Task.CompletedTask; };
@@ -68,7 +68,7 @@ namespace NadekoBot.Modules.Games.Common.Hangman
{
if (++Errors > MaxErrors)
{
var _ = OnGameEnded(this, null);
var _ = OnGameEnded(this, null, 0);
CurrentPhase = Phase.Ended;
}
}
@@ -102,7 +102,7 @@ namespace NadekoBot.Modules.Games.Common.Hangman
if (input != Term.Word) // failed
return;
var _ = OnGameEnded?.Invoke(this, userName);
var _ = OnGameEnded?.Invoke(this, userName, userId);
CurrentPhase = Phase.Ended;
return;
}
@@ -127,7 +127,7 @@ namespace NadekoBot.Modules.Games.Common.Hangman
else if (Term.Word.All(x => _previousGuesses.IsSupersetOf(Term.Word.ToLowerInvariant()
.Where(char.IsLetterOrDigit))))
{
var _ = OnGameEnded.Invoke(this, userName); // if all letters are guessed
var _ = OnGameEnded.Invoke(this, userName, userId); // if all letters are guessed
CurrentPhase = Phase.Ended;
}
else // guessed but not last letter