forked from SoDOff-Project/sodoff-mmo
code quality fixes
This commit is contained in:
parent
f1865bd4a3
commit
c909d07462
@ -30,7 +30,7 @@ class GauntletJoinRoomHandler : ICommandHandler
|
|||||||
class GauntletPlayAgainHandler : ICommandHandler
|
class GauntletPlayAgainHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) {
|
public void Handle(Client client, NetworkObject receivedObject) {
|
||||||
GauntletRoom room = client.Room as GauntletRoom;
|
GauntletRoom room = (client.Room as GauntletRoom)!;
|
||||||
room.SetPlayerReady(client, false);
|
room.SetPlayerReady(client, false);
|
||||||
|
|
||||||
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
||||||
@ -52,7 +52,7 @@ class GauntletPlayAgainHandler : ICommandHandler
|
|||||||
class GauntletLobbyUserReadyHandler : ICommandHandler
|
class GauntletLobbyUserReadyHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) {
|
public void Handle(Client client, NetworkObject receivedObject) {
|
||||||
GauntletRoom room = client.Room as GauntletRoom;
|
GauntletRoom room = (client.Room as GauntletRoom)!;
|
||||||
room.SetPlayerReady(client);
|
room.SetPlayerReady(client);
|
||||||
|
|
||||||
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
||||||
@ -84,7 +84,7 @@ class GauntletLobbyUserReadyHandler : ICommandHandler
|
|||||||
class GauntletLobbyUserNotReadyHandler : ICommandHandler
|
class GauntletLobbyUserNotReadyHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) {
|
public void Handle(Client client, NetworkObject receivedObject) {
|
||||||
GauntletRoom room = client.Room as GauntletRoom;
|
GauntletRoom room = (client.Room as GauntletRoom)!;
|
||||||
room.SetPlayerReady(client, false);
|
room.SetPlayerReady(client, false);
|
||||||
|
|
||||||
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
||||||
@ -104,7 +104,7 @@ class GauntletLobbyUserNotReadyHandler : ICommandHandler
|
|||||||
class GauntletLevelLoadHandler : ICommandHandler
|
class GauntletLevelLoadHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"gs.GLL","p":{"0":"0","1":"0","2":"5","en":"GauntletGameExtension"},"r":365587}}
|
public void Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"gs.GLL","p":{"0":"0","1":"0","2":"5","en":"GauntletGameExtension"},"r":365587}}
|
||||||
GauntletRoom room = client.Room as GauntletRoom;
|
GauntletRoom room = (client.Room as GauntletRoom)!;
|
||||||
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
||||||
|
|
||||||
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
||||||
@ -125,12 +125,12 @@ class GauntletLevelLoadHandler : ICommandHandler
|
|||||||
[ExtensionCommandHandler("gs.GLLD")]
|
[ExtensionCommandHandler("gs.GLLD")]
|
||||||
class GauntletLevelLoadedHandler : ICommandHandler
|
class GauntletLevelLoadedHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
private System.Timers.Timer timer = null;
|
private System.Timers.Timer? timer = null;
|
||||||
private int counter;
|
private int counter;
|
||||||
private GauntletRoom room;
|
private GauntletRoom room;
|
||||||
|
|
||||||
public void Handle(Client client, NetworkObject receivedObject) {
|
public void Handle(Client client, NetworkObject receivedObject) {
|
||||||
room = client.Room as GauntletRoom;
|
room = (client.Room as GauntletRoom)!;
|
||||||
counter = 5;
|
counter = 5;
|
||||||
|
|
||||||
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["GCDS","365587","4"]},"r":365587}}
|
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["GCDS","365587","4"]},"r":365587}}
|
||||||
@ -149,7 +149,7 @@ class GauntletLevelLoadedHandler : ICommandHandler
|
|||||||
timer.Elapsed += OnTick;
|
timer.Elapsed += OnTick;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnTick(Object source, ElapsedEventArgs e) {
|
private void OnTick(Object? source, ElapsedEventArgs e) {
|
||||||
NetworkPacket packet;
|
NetworkPacket packet;
|
||||||
if (--counter > 0) {
|
if (--counter > 0) {
|
||||||
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["GCDS","365587","4"]},"r":365587}}
|
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["GCDS","365587","4"]},"r":365587}}
|
||||||
@ -165,8 +165,8 @@ class GauntletLevelLoadedHandler : ICommandHandler
|
|||||||
room.Id.ToString()
|
room.Id.ToString()
|
||||||
}, "msg", room.Id);
|
}, "msg", room.Id);
|
||||||
|
|
||||||
timer.Stop();
|
timer!.Stop();
|
||||||
timer.Close();
|
timer!.Close();
|
||||||
timer = null;
|
timer = null;
|
||||||
}
|
}
|
||||||
foreach (var roomClient in room.Clients) {
|
foreach (var roomClient in room.Clients) {
|
||||||
@ -181,7 +181,7 @@ class GauntletRelayGameDataHandler : ICommandHandler
|
|||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) // {"a":13,"c":1,"p":{"c":"gs.RGD","p":{"0":"2700","1":"78","en":"GauntletGameExtension"},"r":4}}
|
public void Handle(Client client, NetworkObject receivedObject) // {"a":13,"c":1,"p":{"c":"gs.RGD","p":{"0":"2700","1":"78","en":"GauntletGameExtension"},"r":4}}
|
||||||
{
|
{
|
||||||
GauntletRoom room = client.Room as GauntletRoom;
|
GauntletRoom room = (client.Room as GauntletRoom)!;
|
||||||
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
||||||
|
|
||||||
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["RGD","365587","150","75"]},"r":365587}}
|
// {"a":13,"c":1,"p":{"c":"msg","p":{"arr":["RGD","365587","150","75"]},"r":365587}}
|
||||||
@ -204,7 +204,7 @@ class GauntletGameCompleteHandler : ICommandHandler
|
|||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) // {"a":13,"c":1,"p":{"c":"gs.GC","p":{"0":"1550","1":"84","en":"GauntletGameExtension"},"r":4}}
|
public void Handle(Client client, NetworkObject receivedObject) // {"a":13,"c":1,"p":{"c":"gs.GC","p":{"0":"1550","1":"84","en":"GauntletGameExtension"},"r":4}}
|
||||||
{
|
{
|
||||||
GauntletRoom room = client.Room as GauntletRoom;
|
GauntletRoom room = (client.Room as GauntletRoom)!;
|
||||||
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
||||||
|
|
||||||
room.ProcessResult(client, p.Get<string>("0"), p.Get<string>("1"));
|
room.ProcessResult(client, p.Get<string>("0"), p.Get<string>("1"));
|
||||||
|
@ -18,7 +18,7 @@ class RacingPlayerReadyHandler : ICommandHandler
|
|||||||
// so server do not need generate this packet
|
// so server do not need generate this packet
|
||||||
|
|
||||||
if (client.Room.Group == "RacingDragon") {
|
if (client.Room.Group == "RacingDragon") {
|
||||||
RacingRoom room = client.Room as RacingRoom;
|
RacingRoom room = (client.Room as RacingRoom)!;
|
||||||
room.SetPlayerState(client, ready);
|
room.SetPlayerState(client, ready);
|
||||||
Console.WriteLine($"IMR Lobby: {client.ClientID} {ready}");
|
Console.WriteLine($"IMR Lobby: {client.ClientID} {ready}");
|
||||||
room.TryLoad();
|
room.TryLoad();
|
||||||
@ -44,7 +44,7 @@ class RacingPlayerStatusHandler : ICommandHandler
|
|||||||
class RacingUACKHandler : ICommandHandler
|
class RacingUACKHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) {
|
public void Handle(Client client, NetworkObject receivedObject) {
|
||||||
RacingRoom room = client.Room as RacingRoom;
|
RacingRoom room = (client.Room as RacingRoom)!;
|
||||||
room.SetPlayerState(client, RacingPlayerState.RaceReady1);
|
room.SetPlayerState(client, RacingPlayerState.RaceReady1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -54,7 +54,7 @@ class RacingUACKHandler : ICommandHandler
|
|||||||
class RacingARACKHandler : ICommandHandler
|
class RacingARACKHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) {
|
public void Handle(Client client, NetworkObject receivedObject) {
|
||||||
RacingRoom room = client.Room as RacingRoom;
|
RacingRoom room = (client.Room as RacingRoom)!;
|
||||||
room.SetPlayerState(client, RacingPlayerState.RaceReady2);
|
room.SetPlayerState(client, RacingPlayerState.RaceReady2);
|
||||||
|
|
||||||
if (room.GetPlayersCount(RacingPlayerState.RaceReady2) == room.ClientsCount) {
|
if (room.GetPlayersCount(RacingPlayerState.RaceReady2) == room.ClientsCount) {
|
||||||
@ -71,7 +71,7 @@ class RacingARACKHandler : ICommandHandler
|
|||||||
class RacingARHandler : ICommandHandler
|
class RacingARHandler : ICommandHandler
|
||||||
{
|
{
|
||||||
public void Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"dr.AR","p":{"CT":"112.1268","FD":"3008.283","LC":"3","UN":"scourgexxwulf","en":""},"r":412467}}
|
public void Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"dr.AR","p":{"CT":"112.1268","FD":"3008.283","LC":"3","UN":"scourgexxwulf","en":""},"r":412467}}
|
||||||
RacingRoom room = client.Room as RacingRoom;
|
RacingRoom room = (client.Room as RacingRoom)!;
|
||||||
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
NetworkObject p = receivedObject.Get<NetworkObject>("p");
|
||||||
|
|
||||||
room.SetResults(client, p.Get<string>("UN"), p.Get<string>("CT"), p.Get<string>("LC"));
|
room.SetResults(client, p.Get<string>("UN"), p.Get<string>("CT"), p.Get<string>("LC"));
|
||||||
|
@ -3,34 +3,38 @@ using sodoffmmo.Data;
|
|||||||
|
|
||||||
namespace sodoffmmo.Core;
|
namespace sodoffmmo.Core;
|
||||||
public class GauntletRoom : Room {
|
public class GauntletRoom : Room {
|
||||||
static GauntletRoom NextRoom = null;
|
static GauntletRoom? NextRoom = null;
|
||||||
|
|
||||||
public static GauntletRoom Get() {
|
public static GauntletRoom Get() {
|
||||||
if (NextRoom != null && NextRoom.ClientsCount == 1) {
|
if (NextRoom != null && NextRoom.ClientsCount == 1) {
|
||||||
var ret = NextRoom;
|
var ret = NextRoom!;
|
||||||
NextRoom = null;
|
NextRoom = null;
|
||||||
return ret;
|
return ret;
|
||||||
} else {
|
} else {
|
||||||
NextRoom = new GauntletRoom();
|
NextRoom = new GauntletRoom();
|
||||||
return NextRoom;
|
return NextRoom!;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public GauntletRoom(string name = null) : base (name, "GauntletDO", true) {
|
public GauntletRoom() : base (null, "GauntletDO", true) {
|
||||||
base.RoomVariables.Add(NetworkArray.VlElement("IS_RACE_ROOM", true));
|
base.RoomVariables.Add(NetworkArray.VlElement("IS_RACE_ROOM", true));
|
||||||
}
|
}
|
||||||
|
|
||||||
class Status {
|
class Status {
|
||||||
public string uid;
|
public string uid;
|
||||||
public bool isReady = false;
|
public bool isReady = false;
|
||||||
public string resultA = null;
|
public string resultA = "";
|
||||||
public string resultB = null;
|
public string resultB = "";
|
||||||
|
|
||||||
|
public Status(string uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Dictionary<Client, Status> players = new();
|
private Dictionary<Client, Status> players = new();
|
||||||
|
|
||||||
public void AddPlayer(Client client) {
|
public void AddPlayer(Client client) {
|
||||||
players[client] = new Status { uid = client.PlayerData.Uid };
|
players[client] = new Status(client.PlayerData.Uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetPlayerReady(Client client, bool status = true) {
|
public void SetPlayerReady(Client client, bool status = true) {
|
||||||
@ -51,7 +55,6 @@ public class GauntletRoom : Room {
|
|||||||
info.Add("UJR"); // User Joined Room
|
info.Add("UJR"); // User Joined Room
|
||||||
info.Add(base.Id.ToString());
|
info.Add(base.Id.ToString());
|
||||||
info.Add("2");
|
info.Add("2");
|
||||||
int i = 0;
|
|
||||||
foreach(var player in players) {
|
foreach(var player in players) {
|
||||||
info.Add(player.Value.uid);
|
info.Add(player.Value.uid);
|
||||||
info.Add(player.Value.isReady.ToString());
|
info.Add(player.Value.isReady.ToString());
|
||||||
@ -70,7 +73,6 @@ public class GauntletRoom : Room {
|
|||||||
info.Add("PA"); // Play Again
|
info.Add("PA"); // Play Again
|
||||||
info.Add(base.Id.ToString());
|
info.Add(base.Id.ToString());
|
||||||
info.Add("1");
|
info.Add("1");
|
||||||
int i = 0;
|
|
||||||
foreach(var player in players) {
|
foreach(var player in players) {
|
||||||
info.Add(player.Value.uid);
|
info.Add(player.Value.uid);
|
||||||
info.Add(player.Value.isReady.ToString());
|
info.Add(player.Value.isReady.ToString());
|
||||||
@ -88,7 +90,7 @@ public class GauntletRoom : Room {
|
|||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
foreach(var player in players) {
|
foreach(var player in players) {
|
||||||
if (player.Value.resultA != null) ++count;
|
if (player.Value.resultB != "") ++count;
|
||||||
}
|
}
|
||||||
if (count != 2)
|
if (count != 2)
|
||||||
return false;
|
return false;
|
||||||
@ -98,7 +100,7 @@ public class GauntletRoom : Room {
|
|||||||
info.Add("GC");
|
info.Add("GC");
|
||||||
info.Add(base.Id.ToString());
|
info.Add(base.Id.ToString());
|
||||||
foreach(var player in players) {
|
foreach(var player in players) {
|
||||||
if (player.Value.resultA is null)
|
if (player.Value.resultB == "")
|
||||||
continue;
|
continue;
|
||||||
info.Add(player.Value.uid);
|
info.Add(player.Value.uid);
|
||||||
info.Add(player.Value.resultA);
|
info.Add(player.Value.resultA);
|
||||||
@ -117,7 +119,7 @@ public class GauntletRoom : Room {
|
|||||||
|
|
||||||
static object joinLock = new object();
|
static object joinLock = new object();
|
||||||
|
|
||||||
static public void Join(Client client, GauntletRoom room = null) {
|
static public void Join(Client client, GauntletRoom? room = null) {
|
||||||
lock(joinLock) {
|
lock(joinLock) {
|
||||||
if (room is null)
|
if (room is null)
|
||||||
room = GauntletRoom.Get();
|
room = GauntletRoom.Get();
|
||||||
|
@ -19,12 +19,8 @@ public class RacingRoom : Room {
|
|||||||
return new RacingRoom();
|
return new RacingRoom();
|
||||||
}
|
}
|
||||||
|
|
||||||
public RacingRoom(string name = null, int? trackId = null) : base (name, "RacingDragon", true) {
|
public RacingRoom() : base (null, "RacingDragon", true) {
|
||||||
if (trackId is null) {
|
TID = random.Next(105);
|
||||||
TID = random.Next(105);
|
|
||||||
} else {
|
|
||||||
TID = (int)trackId;
|
|
||||||
}
|
|
||||||
|
|
||||||
players = new();
|
players = new();
|
||||||
results = new();
|
results = new();
|
||||||
@ -66,6 +62,12 @@ public class RacingRoom : Room {
|
|||||||
public string userName;
|
public string userName;
|
||||||
public string time;
|
public string time;
|
||||||
public string laps;
|
public string laps;
|
||||||
|
|
||||||
|
public Result(string userName, string time, string laps) {
|
||||||
|
this.userName = userName;
|
||||||
|
this.time = time;
|
||||||
|
this.laps = laps;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SortedDictionary<float, Result> results;
|
SortedDictionary<float, Result> results;
|
||||||
@ -75,11 +77,7 @@ public class RacingRoom : Room {
|
|||||||
while (results.ContainsKey(timef))
|
while (results.ContainsKey(timef))
|
||||||
timef += 0.000001f;
|
timef += 0.000001f;
|
||||||
|
|
||||||
results.Add(timef, new Result {
|
results.Add(timef, new Result(userName, time, laps));
|
||||||
userName = userName,
|
|
||||||
time = time,
|
|
||||||
laps = laps
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendResults() {
|
public void SendResults() {
|
||||||
@ -104,7 +102,7 @@ public class RacingRoom : Room {
|
|||||||
|
|
||||||
// start and countdown
|
// start and countdown
|
||||||
|
|
||||||
System.Timers.Timer timer;
|
System.Timers.Timer? timer = null;
|
||||||
int counter;
|
int counter;
|
||||||
|
|
||||||
private void SetTimer(double timeout, System.Timers.ElapsedEventHandler callback, bool AutoReset = false) {
|
private void SetTimer(double timeout, System.Timers.ElapsedEventHandler callback, bool AutoReset = false) {
|
||||||
@ -124,7 +122,7 @@ public class RacingRoom : Room {
|
|||||||
SetTimer(0.2, SendJoin);
|
SetTimer(0.2, SendJoin);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SendJoin(Object source, ElapsedEventArgs e) {
|
private void SendJoin(Object? source, ElapsedEventArgs e) {
|
||||||
foreach(var player in players) {
|
foreach(var player in players) {
|
||||||
Console.WriteLine($"Join Racing Room: {Name} RoomID: {Id} IID: {player.Key.ClientID}");
|
Console.WriteLine($"Join Racing Room: {Name} RoomID: {Id} IID: {player.Key.ClientID}");
|
||||||
player.Key.JoinRoom(this);
|
player.Key.JoinRoom(this);
|
||||||
@ -132,7 +130,7 @@ public class RacingRoom : Room {
|
|||||||
SetTimer(1, CountDown, true);
|
SetTimer(1, CountDown, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CountDown(Object source, ElapsedEventArgs e) {
|
private void CountDown(Object? source, ElapsedEventArgs e) {
|
||||||
if (!TryLoad()) {
|
if (!TryLoad()) {
|
||||||
if (counter == 0) {
|
if (counter == 0) {
|
||||||
Load();
|
Load();
|
||||||
@ -160,8 +158,8 @@ public class RacingRoom : Room {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Load() {
|
public void Load() {
|
||||||
timer.Stop();
|
timer!.Stop();
|
||||||
timer.Close();
|
timer!.Close();
|
||||||
|
|
||||||
// {"a":13,"c":1,"p":{"c":"","p":{"arr":["RA","","ST"]},"r":412467}}
|
// {"a":13,"c":1,"p":{"c":"","p":{"arr":["RA","","ST"]},"r":412467}}
|
||||||
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
NetworkPacket packet = Utils.ArrNetworkPacket(new string[] {
|
||||||
@ -216,6 +214,9 @@ public class RacingLobby {
|
|||||||
class Status {
|
class Status {
|
||||||
public string uid;
|
public string uid;
|
||||||
public RacingPlayerState state = RacingPlayerState.NotReady;
|
public RacingPlayerState state = RacingPlayerState.NotReady;
|
||||||
|
public Status (string uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static object lobbyLock = new object();
|
static object lobbyLock = new object();
|
||||||
@ -225,7 +226,7 @@ public class RacingLobby {
|
|||||||
public static void SetPlayerState(Client client, RacingPlayerState state) {
|
public static void SetPlayerState(Client client, RacingPlayerState state) {
|
||||||
lock (lobbyLock) {
|
lock (lobbyLock) {
|
||||||
if (!lobbyPlayers.ContainsKey(client)) {
|
if (!lobbyPlayers.ContainsKey(client)) {
|
||||||
lobbyPlayers[client] = new Status { uid = client.PlayerData.Uid };
|
lobbyPlayers[client] = new Status(client.PlayerData.Uid);
|
||||||
}
|
}
|
||||||
lobbyPlayers[client].state = state;
|
lobbyPlayers[client].state = state;
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,15 @@ public class Room {
|
|||||||
public bool IsRemoved { get; private set; } = false;
|
public bool IsRemoved { get; private set; } = false;
|
||||||
public NetworkArray RoomVariables = new();
|
public NetworkArray RoomVariables = new();
|
||||||
|
|
||||||
public Room(string name, string group = null, bool autoRemove = false) {
|
public Room(string? name, string? group = null, bool autoRemove = false) {
|
||||||
Id = ++MaxId;
|
Id = ++MaxId;
|
||||||
if (name is null) {
|
if (name is null) {
|
||||||
Name = group + "_" + MaxId;
|
Name = group! + "_" + MaxId;
|
||||||
} else {
|
} else {
|
||||||
Name = name;
|
Name = name;
|
||||||
}
|
}
|
||||||
if (group is null) {
|
if (group is null) {
|
||||||
Group = name;
|
Group = name!;
|
||||||
} else {
|
} else {
|
||||||
Group = group;
|
Group = group;
|
||||||
}
|
}
|
||||||
|
@ -9,10 +9,10 @@ class WorldEvent {
|
|||||||
End,
|
End,
|
||||||
NotActive
|
NotActive
|
||||||
}
|
}
|
||||||
private static WorldEvent _instance = null;
|
private static WorldEvent? _instance = null;
|
||||||
private object EventLock = new object();
|
private object EventLock = new object();
|
||||||
private Random random = new Random();
|
private Random random = new Random();
|
||||||
private System.Timers.Timer timer = null;
|
private System.Timers.Timer? timer = null;
|
||||||
|
|
||||||
public static WorldEvent Get() {
|
public static WorldEvent Get() {
|
||||||
if (_instance == null) {
|
if (_instance == null) {
|
||||||
@ -24,6 +24,7 @@ class WorldEvent {
|
|||||||
private WorldEvent() {
|
private WorldEvent() {
|
||||||
startTime = DateTime.UtcNow.AddMinutes(-60);
|
startTime = DateTime.UtcNow.AddMinutes(-60);
|
||||||
startTimeString = startTime.ToString("MM/dd/yyyy HH:mm:ss");
|
startTimeString = startTime.ToString("MM/dd/yyyy HH:mm:ss");
|
||||||
|
room = Room.GetOrAdd("HubTrainingDO");
|
||||||
uid = "sodoff";
|
uid = "sodoff";
|
||||||
state = State.End;
|
state = State.End;
|
||||||
ScheduleEvent(Configuration.ServerConfiguration.FirstEventTimer); // WE_ != WEN_
|
ScheduleEvent(Configuration.ServerConfiguration.FirstEventTimer); // WE_ != WEN_
|
||||||
@ -32,7 +33,7 @@ class WorldEvent {
|
|||||||
// controlled (init/reset) by Reset()
|
// controlled (init/reset) by Reset()
|
||||||
private Room room;
|
private Room room;
|
||||||
private string uid;
|
private string uid;
|
||||||
private Client operatorAI;
|
private Client? operatorAI;
|
||||||
private State state;
|
private State state;
|
||||||
|
|
||||||
private DateTime startTime;
|
private DateTime startTime;
|
||||||
@ -51,7 +52,6 @@ class WorldEvent {
|
|||||||
// reset event - set new id, start time, end time, etc
|
// reset event - set new id, start time, end time, etc
|
||||||
private void Reset(DateTime newStartTime) {
|
private void Reset(DateTime newStartTime) {
|
||||||
lock (EventLock) {
|
lock (EventLock) {
|
||||||
room = Room.GetOrAdd("HubTrainingDO");
|
|
||||||
uid = Path.GetRandomFileName().Substring(0, 8); // this is used as RandomSeed for random select ship variant
|
uid = Path.GetRandomFileName().Substring(0, 8); // this is used as RandomSeed for random select ship variant
|
||||||
operatorAI = null;
|
operatorAI = null;
|
||||||
state = State.NotActive;
|
state = State.NotActive;
|
||||||
@ -87,7 +87,7 @@ class WorldEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// reset event and set timer to call PreEndEvent, send new WE_ info
|
// reset event and set timer to call PreEndEvent, send new WE_ info
|
||||||
private void PreInit(Object source, ElapsedEventArgs e) {
|
private void PreInit(Object? source, ElapsedEventArgs e) {
|
||||||
Reset(nextStartTime); // WE_ == WEN_
|
Reset(nextStartTime); // WE_ == WEN_
|
||||||
AnnounceEvent();
|
AnnounceEvent();
|
||||||
}
|
}
|
||||||
@ -114,7 +114,7 @@ class WorldEvent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PreEndEvent(Object source, ElapsedEventArgs e) {
|
private void PreEndEvent(Object? source, ElapsedEventArgs e) {
|
||||||
Console.WriteLine($"Event {uid} force end from timer");
|
Console.WriteLine($"Event {uid} force end from timer");
|
||||||
EndEvent(true);
|
EndEvent(true);
|
||||||
}
|
}
|
||||||
@ -152,7 +152,7 @@ class WorldEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send reward info
|
// send reward info
|
||||||
private void PostEndEvent1(Object source, ElapsedEventArgs e) {
|
private void PostEndEvent1(Object? source, ElapsedEventArgs e) {
|
||||||
NetworkPacket packet = Utils.VlNetworkPacket(
|
NetworkPacket packet = Utils.VlNetworkPacket(
|
||||||
"WE_ScoutAttack_End",
|
"WE_ScoutAttack_End",
|
||||||
lastResults,
|
lastResults,
|
||||||
@ -179,7 +179,7 @@ class WorldEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// schedule next event, set timer to call PreInit() and send new WEN_ info
|
// schedule next event, set timer to call PreInit() and send new WEN_ info
|
||||||
private void PostEndEvent2(Object source, ElapsedEventArgs e) {
|
private void PostEndEvent2(Object? source, ElapsedEventArgs e) {
|
||||||
ScheduleEvent(); // WE_ != WEN_
|
ScheduleEvent(); // WE_ != WEN_
|
||||||
AnnounceEvent(false, true); // send only WEN_ (WE_ should stay unchanged ... as WE_..._End)
|
AnnounceEvent(false, true); // send only WEN_ (WE_ should stay unchanged ... as WE_..._End)
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ public class NetworkArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class NullClass {};
|
public class NullClass {};
|
||||||
public static NullClass NULL;
|
public static NullClass NULL = new ();
|
||||||
|
|
||||||
public void AddWithType<T>(T value) {
|
public void AddWithType<T>(T value) {
|
||||||
if (typeof(T) == typeof(NullClass))
|
if (typeof(T) == typeof(NullClass))
|
||||||
@ -120,7 +120,7 @@ public class NetworkArray {
|
|||||||
throw new Exception("Unsupported type");
|
throw new Exception("Unsupported type");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddWithTypeObject(NetworkDataType dataType, byte typeId, object obj) {
|
private void AddWithTypeObject(NetworkDataType dataType, byte typeId, object? obj) {
|
||||||
Add(new DataWrapper(NetworkDataType.Byte,typeId));
|
Add(new DataWrapper(NetworkDataType.Byte,typeId));
|
||||||
Add(new DataWrapper(dataType, obj));
|
Add(new DataWrapper(dataType, obj));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user