From fb30b8628ed46a479e857a7bf7d0318740ff03e8 Mon Sep 17 00:00:00 2001
From: AnloGames <7383an@gmail.com>
Date: Tue, 15 Aug 2023 17:22:37 +0300
Subject: [PATCH 1/3] JsonTaskInit
---
DangerousD/GameCore/Network/Json/JsonTask.cs | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 DangerousD/GameCore/Network/Json/JsonTask.cs
diff --git a/DangerousD/GameCore/Network/Json/JsonTask.cs b/DangerousD/GameCore/Network/Json/JsonTask.cs
new file mode 100644
index 0000000..c04414a
--- /dev/null
+++ b/DangerousD/GameCore/Network/Json/JsonTask.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DangerousD.GameCore.Network.Json
+{
+ public class JsonTask
+ {
+ }
+}
From 4fd28308f2863c160b95620aabd5c8b51a3f9f63 Mon Sep 17 00:00:00 2001
From: AnloGames <7383an@gmail.com>
Date: Wed, 16 Aug 2023 13:56:25 +0300
Subject: [PATCH 2/3] NetworkTask init
---
DangerousD/GameCore/Network/Json/JsonTask.cs | 12 ---
DangerousD/GameCore/Network/NetworkTask.cs | 87 +++++++++++++++++++
.../Network/NetworkTaskOperationEnum.cs | 14 +++
3 files changed, 101 insertions(+), 12 deletions(-)
delete mode 100644 DangerousD/GameCore/Network/Json/JsonTask.cs
create mode 100644 DangerousD/GameCore/Network/NetworkTask.cs
create mode 100644 DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs
diff --git a/DangerousD/GameCore/Network/Json/JsonTask.cs b/DangerousD/GameCore/Network/Json/JsonTask.cs
deleted file mode 100644
index c04414a..0000000
--- a/DangerousD/GameCore/Network/Json/JsonTask.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace DangerousD.GameCore.Network.Json
-{
- public class JsonTask
- {
- }
-}
diff --git a/DangerousD/GameCore/Network/NetworkTask.cs b/DangerousD/GameCore/Network/NetworkTask.cs
new file mode 100644
index 0000000..54fd5b4
--- /dev/null
+++ b/DangerousD/GameCore/Network/NetworkTask.cs
@@ -0,0 +1,87 @@
+using Microsoft.Xna.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DangerousD.GameCore.Network
+{
+ [Serializable]
+ public class NetworkTask
+ {
+ public NetworkTaskOperationEnum operation { get; set; }
+ public string name { get; set; }
+ public int value { get; set; }
+ public int objId { get; set; }
+ public Vector2 position { get; set; }
+ public Vector2 velocity { get; set; }
+ public Type type { get; set; }
+
+
+ ///
+ /// Нанести урон сущности
+ ///
+ ///
+ ///
+ public NetworkTask(int LivingEntityId, int Damage)
+ {
+ operation = NetworkTaskOperationEnum.TakeDamage;
+ objId = LivingEntityId;
+ value = Damage;
+ }
+
+ ///
+ /// Проиграть звук на позиции
+ ///
+ ///
+ ///
+ public NetworkTask(Vector2 SoundPosition, string SoundName)
+ {
+ operation = NetworkTaskOperationEnum.SendSound;
+ position = SoundPosition;
+ name = SoundName;
+ }
+
+ ///
+ /// Создать сущность на позиции с заданной скоростью и присвоить её родительской сущности
+ ///
+ ///
+ ///
+ ///
+ ///
+ public NetworkTask(Type EntityType, Vector2 EntityPosition, Vector2 EntityVelocity, int ParentId)
+ {
+ operation = NetworkTaskOperationEnum.CreateEntity;
+ type = EntityType;
+ position = EntityPosition;
+ velocity = EntityVelocity;
+ objId = ParentId;
+ }
+
+ ///
+ /// Изменить позицию сущности со сложной логикой(игрок)
+ ///
+ ///
+ ///
+ public NetworkTask(int EntityId, Vector2 EntityPosition)
+ {
+ operation = NetworkTaskOperationEnum.SendPosition;
+ objId = EntityId;
+ position = EntityPosition;
+ }
+ ///
+ /// Изменяет состояние и/или скорость сущности
+ ///
+ ///
+ ///
+ ///
+ public NetworkTask(int EntityId, string StateName, Vector2 EntityVelocity)
+ {
+ operation = NetworkTaskOperationEnum.ChangeState;
+ objId = EntityId;
+ name = StateName;
+ velocity = EntityVelocity;
+ }
+ }
+}
diff --git a/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs b/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs
new file mode 100644
index 0000000..49fee15
--- /dev/null
+++ b/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DangerousD.GameCore.Network
+{
+ [Serializable]
+ public enum NetworkTaskOperationEnum
+ {
+ TakeDamage, SendSound, CreateEntity, SendPosition, ChangeState
+ }
+}
From ef5483a917d8fbd184928f6bc696c255bf851071 Mon Sep 17 00:00:00 2001
From: AnloGames <7383an@gmail.com>
Date: Wed, 16 Aug 2023 14:54:03 +0300
Subject: [PATCH 3/3] NetworkTask First Result
---
DangerousD/GameCore/Network/NetworkTask.cs | 21 ++++++++++++++++++-
.../Network/NetworkTaskOperationEnum.cs | 2 +-
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/DangerousD/GameCore/Network/NetworkTask.cs b/DangerousD/GameCore/Network/NetworkTask.cs
index 54fd5b4..a1fb999 100644
--- a/DangerousD/GameCore/Network/NetworkTask.cs
+++ b/DangerousD/GameCore/Network/NetworkTask.cs
@@ -18,7 +18,6 @@ namespace DangerousD.GameCore.Network
public Vector2 velocity { get; set; }
public Type type { get; set; }
-
///
/// Нанести урон сущности
///
@@ -83,5 +82,25 @@ namespace DangerousD.GameCore.Network
name = StateName;
velocity = EntityVelocity;
}
+
+ ///
+ /// Подключается к хосту и передаёт своё имя
+ ///
+ ///
+ public NetworkTask(string PlayerName)
+ {
+ operation = NetworkTaskOperationEnum.ConnectToHost;
+ name = PlayerName;
+ }
+
+ ///
+ /// Получает id игрока на клиенте от хоста
+ ///
+ ///
+ public NetworkTask(int PlayerId)
+ {
+ operation = NetworkTaskOperationEnum.GetClientPlayerId;
+ objId = PlayerId;
+ }
}
}
diff --git a/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs b/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs
index 49fee15..86cb112 100644
--- a/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs
+++ b/DangerousD/GameCore/Network/NetworkTaskOperationEnum.cs
@@ -9,6 +9,6 @@ namespace DangerousD.GameCore.Network
[Serializable]
public enum NetworkTaskOperationEnum
{
- TakeDamage, SendSound, CreateEntity, SendPosition, ChangeState
+ TakeDamage, SendSound, CreateEntity, SendPosition, ChangeState, ConnectToHost, GetClientPlayerId
}
}