#106 player colors in chat
This commit is contained in:
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using IjwFramework.Types;
|
using IjwFramework.Types;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRa.Game
|
namespace OpenRa.Game
|
||||||
{
|
{
|
||||||
@@ -10,7 +11,7 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
const int logLength = 10;
|
const int logLength = 10;
|
||||||
|
|
||||||
public List<Pair<string, string>> recentLines = new List<Pair<string, string>>();
|
public List<Tuple<Color, string, string>> recentLines = new List<Tuple<Color, string, string>>();
|
||||||
public string typing = "";
|
public string typing = "";
|
||||||
public bool isChatting = false;
|
public bool isChatting = false;
|
||||||
|
|
||||||
@@ -19,7 +20,7 @@ namespace OpenRa.Game
|
|||||||
if (isChatting && typing.Length > 0)
|
if (isChatting && typing.Length > 0)
|
||||||
{
|
{
|
||||||
Game.controller.AddOrder(Order.Chat(Game.LocalPlayer, typing));
|
Game.controller.AddOrder(Order.Chat(Game.LocalPlayer, typing));
|
||||||
AddLine(Game.LocalPlayer.PlayerName, typing);
|
AddLine(Game.LocalPlayer, typing);
|
||||||
}
|
}
|
||||||
|
|
||||||
typing = "";
|
typing = "";
|
||||||
@@ -37,9 +38,26 @@ namespace OpenRa.Game
|
|||||||
typing += c;
|
typing += c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddLine(string from, string text)
|
static readonly Color[] paletteColors =
|
||||||
{
|
{
|
||||||
recentLines.Add(Pair.New(from, text));
|
Color.FromArgb(228, 200, 112),
|
||||||
|
Color.FromArgb(56, 72, 125),
|
||||||
|
Color.FromArgb(238, 0, 0),
|
||||||
|
Color.FromArgb(198,97,0),
|
||||||
|
Color.FromArgb(28,109,97),
|
||||||
|
Color.FromArgb(153,76,53),
|
||||||
|
Color.FromArgb(76,101,60),
|
||||||
|
Color.FromArgb(133,113,101),
|
||||||
|
};
|
||||||
|
|
||||||
|
public void AddLine(Player p, string text)
|
||||||
|
{
|
||||||
|
AddLine(paletteColors[p.Palette], p.PlayerName, text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddLine(Color c, string from, string text)
|
||||||
|
{
|
||||||
|
recentLines.Add(Tuple.New(c, from, text));
|
||||||
Game.PlaySound("rabeep1.aud", false);
|
Game.PlaySound("rabeep1.aud", false);
|
||||||
while (recentLines.Count > logLength) recentLines.RemoveAt(0);
|
while (recentLines.Count > logLength) recentLines.RemoveAt(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ namespace OpenRa.Game
|
|||||||
var chatpos = new int2( 400, Game.viewport.Height - 20 );
|
var chatpos = new int2( 400, Game.viewport.Height - 20 );
|
||||||
|
|
||||||
if (Game.chat.isChatting)
|
if (Game.chat.isChatting)
|
||||||
RenderChatLine(Pair.New("Chat:", Game.chat.typing), chatpos);
|
RenderChatLine(Tuple.New(Color.White, "Chat:", Game.chat.typing), chatpos);
|
||||||
|
|
||||||
foreach (var line in Game.chat.recentLines.AsEnumerable().Reverse())
|
foreach (var line in Game.chat.recentLines.AsEnumerable().Reverse())
|
||||||
{
|
{
|
||||||
@@ -138,11 +138,11 @@ namespace OpenRa.Game
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderChatLine(Pair<string, string> line, int2 p)
|
void RenderChatLine(Tuple<Color, string, string> line, int2 p)
|
||||||
{
|
{
|
||||||
var size = renderer.MeasureText(line.First);
|
var size = renderer.MeasureText(line.b);
|
||||||
renderer.DrawText(line.First, p, Color.Red);
|
renderer.DrawText(line.b, p, line.a);
|
||||||
renderer.DrawText(line.Second, p + new int2(size.X + 10, 0), Color.White);
|
renderer.DrawText(line.c, p + new int2(size.X + 10, 0), Color.White);
|
||||||
}
|
}
|
||||||
|
|
||||||
string currentTab = "Building";
|
string currentTab = "Building";
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Linq;
|
|||||||
using IjwFramework.Types;
|
using IjwFramework.Types;
|
||||||
using OpenRa.Game.GameRules;
|
using OpenRa.Game.GameRules;
|
||||||
using OpenRa.Game.Traits;
|
using OpenRa.Game.Traits;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRa.Game
|
namespace OpenRa.Game
|
||||||
{
|
{
|
||||||
@@ -99,30 +100,30 @@ namespace OpenRa.Game
|
|||||||
}
|
}
|
||||||
case "Chat":
|
case "Chat":
|
||||||
{
|
{
|
||||||
Game.chat.AddLine(order.Player.PlayerName + ":", order.TargetString);
|
Game.chat.AddLine(order.Player, order.TargetString);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "ToggleReady":
|
case "ToggleReady":
|
||||||
{
|
{
|
||||||
Game.chat.AddLine(order.Player.PlayerName, "is " + order.TargetString );
|
Game.chat.AddLine(order.Player, "is " + order.TargetString );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "AssignPlayer":
|
case "AssignPlayer":
|
||||||
{
|
{
|
||||||
Game.LocalPlayer = order.Player;
|
Game.LocalPlayer = order.Player;
|
||||||
Game.chat.AddLine(order.Player.PlayerName, "is now YOU.");
|
Game.chat.AddLine(order.Player, "is now YOU.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetName":
|
case "SetName":
|
||||||
{
|
{
|
||||||
Game.chat.AddLine(order.Player.PlayerName, "is now known as " + order.TargetString);
|
Game.chat.AddLine(order.Player, "is now known as " + order.TargetString);
|
||||||
order.Player.PlayerName = order.TargetString;
|
order.Player.PlayerName = order.TargetString;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetRace":
|
case "SetRace":
|
||||||
{
|
{
|
||||||
order.Player.Race = order.TargetString == "0" ? Race.Soviet : Race.Allies;
|
order.Player.Race = order.TargetString == "0" ? Race.Soviet : Race.Allies;
|
||||||
Game.chat.AddLine(order.Player.PlayerName, "is now playing {0}".F(order.Player.Race));
|
Game.chat.AddLine(order.Player, "is now playing {0}".F(order.Player.Race));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetLag":
|
case "SetLag":
|
||||||
@@ -130,24 +131,24 @@ namespace OpenRa.Game
|
|||||||
int lag = int.Parse(order.TargetString);
|
int lag = int.Parse(order.TargetString);
|
||||||
if (Game.orderManager.GameStarted)
|
if (Game.orderManager.GameStarted)
|
||||||
{
|
{
|
||||||
Game.chat.AddLine("Server", "Failed to change lag to {0} frames".F(lag));
|
Game.chat.AddLine(Color.White, "Server", "Failed to change lag to {0} frames".F(lag));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Game.orderManager.FramesAhead = lag;
|
Game.orderManager.FramesAhead = lag;
|
||||||
Game.chat.AddLine("Server", "Order lag is now {0} frames.".F(lag));
|
Game.chat.AddLine(Color.White, "Server", "Order lag is now {0} frames.".F(lag));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetPalette":
|
case "SetPalette":
|
||||||
{
|
{
|
||||||
int palette = int.Parse(order.TargetString);
|
int palette = int.Parse(order.TargetString);
|
||||||
Game.chat.AddLine(order.Player.PlayerName, "has changed color to {0}".F(palette));
|
Game.chat.AddLine(order.Player, "has changed color to {0}".F(palette));
|
||||||
order.Player.Palette = palette;
|
order.Player.Palette = palette;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "StartGame":
|
case "StartGame":
|
||||||
{
|
{
|
||||||
Game.chat.AddLine("Server:", "The game has started.");
|
Game.chat.AddLine(Color.White, "Server", "The game has started.");
|
||||||
Game.orderManager.StartGame();
|
Game.orderManager.StartGame();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user