More betterer Time tracking and basic Win/Lose check

This commit is contained in:
Simon Lübeß
2024-04-04 22:57:07 +02:00
parent 1d7a3d5870
commit 93db8ae9e5
10 changed files with 1414 additions and 27 deletions

View File

@ -0,0 +1,33 @@
using System;
namespace Utility
{
[Flags]
public enum EndGameCondition
{
Win = 0x01,
Lose = 0x02,
Win_GamePublished = Win | 0x04,
Lose_NoDevelopersLeft = Lose | 0x08,
Lose_DeadlineMissed = Lose | 0x10
}
public static class EndGameConditionExtension
{
public static bool IsWin(this EndGameCondition endGameCondition) =>
endGameCondition.HasFlag(EndGameCondition.Win);
public static bool IsLose(this EndGameCondition endGameCondition) =>
endGameCondition.HasFlag(EndGameCondition.Lose);
public static string GetEndGameMessage(this EndGameCondition endGameCondition) =>
endGameCondition switch
{
EndGameCondition.Win_GamePublished => "Dein Spiel wurde erfolgreich veröffentlicht!",
EndGameCondition.Lose_NoDevelopersLeft => "Oh nein, alle deine Entwickler sind weg!",
EndGameCondition.Lose_DeadlineMissed => "Oh nein, du hast die Deadline verpasst!",
_ => throw new ArgumentOutOfRangeException(nameof(endGameCondition), endGameCondition, null)
};
}
}