GameVsJam/3d Prototyp/Assets/Scripts/Utility/EndGameCondition.cs

33 lines
1.2 KiB
C#
Raw Normal View History

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)
};
}
}