static Color GetColorFromPartType(JsonMessagePart messagePart) { switch (messagePart.Type) { case JsonMessagePartType.PlayerId: return((int.TryParse(messagePart.Text, out var playerId) && playerId == session.ConnectionInfo.Slot) ? Color.Yellow : Color.Orange); case JsonMessagePartType.PlayerName: return(session.Players.GetPlayerName(session.ConnectionInfo.Slot) == messagePart.Text ? Color.Yellow : Color.Orange); case JsonMessagePartType.ItemId: case JsonMessagePartType.ItemName: switch (messagePart.Flags) { case ItemFlags.Advancement: return(Color.Crimson * 6); case ItemFlags.NeverExclude: return(Color.Crimson * 2.5f); case ItemFlags.Trap: return(Color.Red); default: return(Color.Crimson); } case JsonMessagePartType.LocationId: case JsonMessagePartType.LocationName: return(Color.Aquamarine); case JsonMessagePartType.EntranceName: return(Color.DarkOliveGreen); default: return(Color.White); } }
static string GetMessage(JsonMessagePart messagePart) { switch (messagePart.Type) { case JsonMessagePartType.PlayerId: return(int.TryParse(messagePart.Text, out var playerSlot) ? session.Players.GetPlayerAliasAndName(playerSlot) ?? $"Slot: {playerSlot}" : messagePart.Text); case JsonMessagePartType.ItemId: return(int.TryParse(messagePart.Text, out var itemId) ? session.Items.GetItemName(itemId) ?? $"Item: {itemId}" : messagePart.Text); case JsonMessagePartType.LocationId: return(int.TryParse(messagePart.Text, out var locationId) ? session.Locations.GetLocationNameFromId(locationId) ?? $"Location: {locationId}" : messagePart.Text); default: return(messagePart.Text); } }
static Color GetColor(JsonMessagePart messagePart) { if (messagePart.Type != JsonMessagePartType.Color) { return(GetColorFromPartType(messagePart)); } switch (messagePart.Color) { case JsonMessagePartColor.Red: return(Color.Red); case JsonMessagePartColor.Green: return(Color.Green); case JsonMessagePartColor.Yellow: return(Color.Yellow); case JsonMessagePartColor.Blue: return(Color.Blue); case JsonMessagePartColor.Magenta: return(Color.Magenta); case JsonMessagePartColor.Cyan: return(Color.Cyan); case JsonMessagePartColor.Black: return(Color.DarkGray); case JsonMessagePartColor.White: return(Color.White); default: return(Color.White); } }