Skip to content

Commit

Permalink
Add WriteError on Logger + implement rocket
Browse files Browse the repository at this point in the history
  • Loading branch information
Julien committed Dec 19, 2018
1 parent 0580714 commit 40b2bea
Show file tree
Hide file tree
Showing 6 changed files with 139 additions and 8 deletions.
2 changes: 1 addition & 1 deletion PralineNetworkSDK/Client/MyNetworkClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ private void OnNetworkReceive(NetPeer peer, NetPacketReader msg, DeliveryMethod
}
}
catch (Exception e) {
Logger.WriteLine(e);
Logger.WriteLineError(e);
}

msg.Recycle();
Expand Down
49 changes: 49 additions & 0 deletions PralineNetworkSDK/Logger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public abstract class ALogger {
private static IFormatProvider _formatProvider = Thread.CurrentThread.CurrentCulture;

public abstract void Write(string txt);
public abstract void WriteError(string txt);

public void WriteLine(string txt) {
Write(txt + "\n");
Expand All @@ -28,6 +29,26 @@ public void Write(object obj) {
public void Write(string format, params object[] args) {
Write(string.Format(_formatProvider, format, args));
}

public void WriteLineError(string txt) {
WriteError(txt + "\n");
}

public void WriteLineError(object obj) {
WriteLineError(obj.ToString());
}

public void WriteLineError(string format, params object[] args) {
Write(format + "\n", args);
}

public void WriteError(object obj) {
WriteError(obj.ToString());
}

public void WriteError(string format, params object[] args) {
WriteError(string.Format(_formatProvider, format, args));
}
}

public class FileLogger : ALogger {
Expand All @@ -49,6 +70,10 @@ public override void Write(string txt) {
}
}
}

public override void WriteError(string txt) {
Write(txt);
}
}

public class Logger {
Expand All @@ -69,6 +94,18 @@ public static void WriteLine(object obj) {
public static void WriteLine(string format, params object[] args) {
_logger.WriteLine(format, args);
}

public static void WriteLineError(string txt) {
_logger.WriteLineError(txt);
}

public static void WriteLineError(object obj) {
_logger.WriteLineError(obj);
}

public static void WriteLineError(string format, params object[] args) {
_logger.WriteLineError(format, args);
}

public static void Write(string txt) {
_logger.Write(txt);
Expand All @@ -81,5 +118,17 @@ public static void Write(object obj) {
public static void Write(string format, params object[] args) {
_logger.Write(format, args);
}

public static void WriteError(string txt) {
_logger.WriteError(txt);
}

public void WriteError(object obj) {
_logger.WriteError(obj);
}

public void WriteError(string format, params object[] args) {
_logger.WriteError(format, args);
}
}
}
14 changes: 10 additions & 4 deletions PralineNetworkSDK/MessageTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ public class TCPClientToServer {
public const short StartThrowing = 1015;
public const short Throwing = 1016;
public const short ThrowableEnd = 1017;
public const short RocketStart = 1018;
public const short RocketEnd = 1019;
}

public static class TCPServerToClient {
Expand Down Expand Up @@ -68,21 +70,25 @@ public static class TCPServerToClient {
public const short StartThrowing = 1026;
public const short Throwing = 1027;
public const short ThrowableEnd = 1028;
public const short PlayerKill = 1029;
public const short PlayerWin = 1030;
public const short RocketStart = 1029;
public const short RocketEnd = 2030;
public const short PlayerKill = 1031;
public const short PlayerWin = 1032;
}

public static class UDPClientToServer {
public const short Movement = 10001;
public const short Turn = 10002;
public const short ThrowableMove = 10005;
public const short ThrowableMove = 10003;
public const short RocketMove = 10004;
}

public static class UDPServerToClient {
public const short MoveTrain = 10001;
public const short Movement = 10002;
public const short Turn = 10003;
public const short ThrowableMove = 10006;
public const short ThrowableMove = 10004;
public const short RocketMove = 10005;
}
}
}
33 changes: 31 additions & 2 deletions PralineServer/Server/Player/InGamePlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ public Throwable(short type) {
}
}

public class Rocket {
public Vector3 Position;
public Quaternion Rotation;
}

public static readonly int BandageValue = 15;
public static readonly int BandageCap = 75;
public static readonly int MedkitValue = 50;
Expand All @@ -35,11 +40,12 @@ public Throwable(short type) {
public uint KillCounter;

public bool IsAlive;

public Dictionary<int, Room.ItemGenerator.Item> Inventory;
public Room.ItemGenerator.Item CurrentItem;

public Dictionary<int, Throwable> Throwables;
public Dictionary<int, Rocket> Rockets;

public InGamePlayer(NetPeer peer, int id) : base(peer, id) {
HP = 100;
Expand All @@ -49,6 +55,7 @@ public InGamePlayer(NetPeer peer, int id) : base(peer, id) {

Inventory = new Dictionary<int, Room.ItemGenerator.Item>();
Throwables = new Dictionary<int, Throwable>();
Rockets = new Dictionary<int, Rocket>();
}

public void TakeDamage(short damage, bool affectShield) {
Expand All @@ -73,7 +80,7 @@ public bool TakeItem(ref Room.ItemGenerator.Item item, int quantity) {
foreach (var i in Inventory) {
if (i.Value.Type == item.Type) {
Logger.WriteLine("Player {0} : Take item {1} and stack into {2}", Id, item.ID, i.Key);

item.Quantity -= quantity;
i.Value.Quantity += quantity;
if (item.Quantity <= 0)
Expand Down Expand Up @@ -151,5 +158,27 @@ public void ThrowingEnd(int index) {
return;
Throwables.Remove(index);
}

public void RocketStart(int index) {
if (Rockets.ContainsKey(index))
return;

var rocket = new Rocket();
Rockets.Add(index, rocket);
}

public void RocketMove(int index, Vector3 position, Quaternion rotation) {
if (!Rockets.ContainsKey(index))
return;
var rocket = Rockets[index];
rocket.Position = position;
rocket.Rotation = rotation;
}

public void RocketEnd(int index) {
if (!Rockets.ContainsKey(index))
return;
Rockets.Remove(index);
}
}
}
2 changes: 1 addition & 1 deletion PralineServer/Server/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public static void Main() {
manager.Update();
}
catch (Exception e) {
Logger.WriteLine(e);
Logger.WriteLineError(e);
throw;
}

Expand Down
47 changes: 47 additions & 0 deletions PralineServer/Server/Room/GameInstance.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,14 @@ public GameInstance(ServerManager manager, int maxPlayer = 32, int minPlayerToSt
_server.RegisterHandler(InGameProtocol.TCPClientToServer.StartThrowing, StartThrowingMessage);
_server.RegisterHandler(InGameProtocol.TCPClientToServer.Throwing, ThrowingMessage);
_server.RegisterHandler(InGameProtocol.TCPClientToServer.ThrowableEnd, ThrowableEndMessage);
_server.RegisterHandler(InGameProtocol.TCPClientToServer.RocketStart, RocketStartMessage);
_server.RegisterHandler(InGameProtocol.TCPClientToServer.RocketEnd, RocketEndMessage);

/* UDP Protocol */
_server.RegisterHandler(InGameProtocol.UDPClientToServer.Movement, PlayerMovementMessage);
_server.RegisterHandler(InGameProtocol.UDPClientToServer.Turn, PlayerTurnMessage);
_server.RegisterHandler(InGameProtocol.UDPClientToServer.ThrowableMove, ThrowableMoveMessage);
_server.RegisterHandler(InGameProtocol.UDPServerToClient.RocketMove, RocketMoveMessage);

_server.Start();
ListenPort = _server.Port;
Expand Down Expand Up @@ -442,6 +445,33 @@ private void ThrowableEndMessage(InGamePlayer player, NetworkMessage msg) {
_server.SendAll(writer, DeliveryMethod.ReliableOrdered);
}

private void RocketStartMessage(InGamePlayer player, NetworkMessage msg) {
if (!GameStarted || GameEnded)
return;

int index = msg.GetInt();

player.RocketStart(index);

var writer = new NetworkWriter(InGameProtocol.TCPServerToClient.RocketStart);
writer.Put(player.Id);
writer.Put(index);
_server.SendAll(writer, DeliveryMethod.ReliableOrdered);
}

private void RocketEndMessage(InGamePlayer player, NetworkMessage msg) {
if (!GameStarted || GameEnded)
return;

int index = msg.GetInt();
player.RocketEnd(index);

var writer = new NetworkWriter(InGameProtocol.TCPServerToClient.RocketEnd);
writer.Put(player.Id);
writer.Put(index);
_server.SendAll(writer, DeliveryMethod.ReliableOrdered);
}

/*********************************************************************************/

private void PlayerMovementMessage(InGamePlayer player, NetworkMessage msg) {
Expand Down Expand Up @@ -490,6 +520,23 @@ private void ThrowableMoveMessage(InGamePlayer player, NetworkMessage msg) {
_server.SendAll(writer, DeliveryMethod.Unreliable);
}

private void RocketMoveMessage(InGamePlayer player, NetworkMessage msg) {
if (!GameStarted || GameEnded)
return;

int index = msg.GetInt();
Vector3 pos = msg.GetVector3();
Quaternion rot = msg.GetQuaternion();

player.RocketMove(index, pos, rot);
var writer = new NetworkWriter(InGameProtocol.UDPServerToClient.RocketMove);
writer.Put(player.Id);
writer.Put(index);
writer.Put(pos);
writer.Put(rot);
_server.SendAll(writer, DeliveryMethod.Unreliable);
}

/*************************************************************************************/

private bool PlayerTakeDamage(InGamePlayer player, short damage, bool affectShield) {
Expand Down

0 comments on commit 40b2bea

Please sign in to comment.