From 125df1a1157efd51f5c05233af178a402a921e09 Mon Sep 17 00:00:00 2001 From: hhzzff <2070620600@qq.com> Date: Thu, 20 Mar 2025 22:20:35 +0800 Subject: [PATCH 01/34] feat: --- .editorconfig | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..94a3232 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*.cs] +dotnet_code_quality.CA1707.severity = error +dotnet_code_quality.CA1712.severity = error +dotnet_code_quality.CA1715.severity = error + +dotnet_code_quality.CA1801.severity = warning \ No newline at end of file From f937f90ef16696ab046558ae245fe263d395de97 Mon Sep 17 00:00:00 2001 From: hhzzff <2070620600@qq.com> Date: Sat, 22 Mar 2025 20:47:31 +0800 Subject: [PATCH 02/34] test: --- logic/Server/PlaybackServer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/logic/Server/PlaybackServer.cs b/logic/Server/PlaybackServer.cs index 918bd48..ee2b1dd 100644 --- a/logic/Server/PlaybackServer.cs +++ b/logic/Server/PlaybackServer.cs @@ -20,6 +20,7 @@ namespace Server private readonly object spectatorJoinLock = new(); protected object spectatorLock = new(); protected bool isSpectatorJoin = false; + int a_b_c_d = 1; protected bool IsSpectatorJoin { get From fe048e0b009ef4dcb3854ad12449e7701a3d1d63 Mon Sep 17 00:00:00 2001 From: hhzzff <2070620600@qq.com> Date: Sat, 22 Mar 2025 20:58:26 +0800 Subject: [PATCH 03/34] test: --- .editorconfig => logic/.editorconfig | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .editorconfig => logic/.editorconfig (100%) diff --git a/.editorconfig b/logic/.editorconfig similarity index 100% rename from .editorconfig rename to logic/.editorconfig From 1f8b94b3cf6b80d4b433038c35c2ef1309457481 Mon Sep 17 00:00:00 2001 From: hhzzff <2070620600@qq.com> Date: Sat, 22 Mar 2025 21:05:50 +0800 Subject: [PATCH 04/34] test: --- logic/Server/Server.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/logic/Server/Server.csproj b/logic/Server/Server.csproj index 61ee78c..ca06612 100644 --- a/logic/Server/Server.csproj +++ b/logic/Server/Server.csproj @@ -5,6 +5,8 @@ net8.0 enable enable + true + latest From b2b329349838c594e33cd84b5a8594674439c9e2 Mon Sep 17 00:00:00 2001 From: hhzzff <2070620600@qq.com> Date: Sat, 22 Mar 2025 21:52:10 +0800 Subject: [PATCH 05/34] test: --- .editorconfig | 9 +++++++++ logic/.editorconfig | 8 -------- 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 .editorconfig delete mode 100644 logic/.editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..88d9cbf --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*.cs] +dotnet_diagnostic.CA1707.severity = error +dotnet_code_quality.CA1707.api_surface = all +dotnet_diagnostic.CA1712.severity = error +dotnet_diagnostic.CA1715.severity = error + +dotnet_diagnostic.CA1801.severity = warning \ No newline at end of file diff --git a/logic/.editorconfig b/logic/.editorconfig deleted file mode 100644 index 94a3232..0000000 --- a/logic/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*.cs] -dotnet_code_quality.CA1707.severity = error -dotnet_code_quality.CA1712.severity = error -dotnet_code_quality.CA1715.severity = error - -dotnet_code_quality.CA1801.severity = warning \ No newline at end of file From 668bd0c2d025c973cd1e8bb3dc05b44b02cc8f6a Mon Sep 17 00:00:00 2001 From: yihan-wa <1572542354@qq.com> Date: Sat, 29 Mar 2025 19:38:58 +0800 Subject: [PATCH 06/34] =?UTF-8?q?=E6=B7=BB=E5=8A=A0API=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=A6=82=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/CAPI.md | 66 +++++++++++++++++++++ logic/Server/Properties/launchSettings.json | 8 +++ logic/Server/Server.csproj | 2 +- 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 docs/CAPI.md create mode 100644 logic/Server/Properties/launchSettings.json diff --git a/docs/CAPI.md b/docs/CAPI.md new file mode 100644 index 0000000..dccfe10 --- /dev/null +++ b/docs/CAPI.md @@ -0,0 +1,66 @@ +# 接口一览 +``` + //通用接口 + //发送信息、接受信息,注意收消息是无消息则返回-1和空“string” + virtual std::future SendTextMessage(int32_t toPlayerID, std::string) = 0; + virtual std::future SendBinaryMessage(int32_t toPlayerID, std::string) = 0; + [[nodiscard]] virtual bool HaveMessage() = 0; + [[nodiscard]] virtual std::pair GetMessage() = 0; + + //获取游戏目前所进行的帧数 + [[nodiscard]] virtual int32_t GetFrameCount() const = 0; + + //等待下一帧 + virtual bool Wait() = 0; + virtual std::future EndAllAction() = 0; + [[nodiscard]] virtual std::vector> GetCharacters() const = 0; + [[nodiscard]] virtual std::vector> GetEnemyCharacters() const = 0; + [[nodiscard]] virtual std::vector> GetFullMap() const = 0; + [[nodiscard]] virtual std::shared_ptr GetGameInfo() const = 0; + [[nodiscard]] virtual THUAI8::PlaceType GetPlaceType(int32_t cellX, int32_t cellY) const = 0; + [[nodiscard]] virtual std::optional GetEnconomyResourceState(int32_t cellX, int32_t cellY) const = 0; + [[nodiscard]] virtual std::optional GetAdditionResourceState(int32_t cellX, int32_t cellY) const = 0; + [[nodiscard]] virtual std::optional GetConstructionState(int32_t cellX, int32_t cellY) const = 0; + [[nodiscard]] virtual std::vector GetPlayerGUIDs() const = 0; + [[nodiscard]] virtual int32_t GetEnergy() const = 0; + [[nodiscard]] virtual int32_t GetScore() const = 0; + + //控制角色进行移动 + virtual std::future Move(int32_t speed, int64_t timeInMilliseconds, double angleInRadian) = 0; + //向特定方向移动 + virtual std::future MoveRight(int32_t speed, int64_t timeInMilliseconds) = 0; + virtual std::future MoveUp(int32_t speed, int64_t timeInMilliseconds) = 0; + virtual std::future MoveLeft(int32_t speed, int64_t timeInMilliseconds) = 0; + virtual std::future MoveDown(int32_t speed, int64_t timeInMilliseconds) = 0; + virtual std::future Skill_Attack(int64_t attackedPlayerID) = 0; + virtual std::future Common_Attack(int64_t attackedPlayerID) = 0; + virtual std::future Recover(int64_t recover) = 0; + virtual std::future Harvest() = 0; + virtual std::future Rebuild(THUAI8::ConstructionType constructionType) = 0; + virtual std::future Construct(THUAI8::ConstructionType constructionType) = 0; + virtual std::shared_ptr GetSelfInfo() const = 0; + virtual bool HaveView(int32_t targetX, int32_t targetY) const = 0; + + [[nodiscard]] virtual std::shared_ptr GetSelfInfo() const = 0; + virtual std::future InstallEquipment(int32_t playerID, THUAI8::EquipmentType equipmenttype) = 0; + virtual std::future Recycle(int32_t playerID) = 0; + virtual std::future BuildCharacter(THUAI8::CharacterType CharacterType, int32_t birthIndex) = 0; + + // 获取指定格子中心的坐标 + [[nodiscard]] static inline int32_t CellToGrid(int32_t cell) noexcept + { + return cell * numOfGridPerCell + numOfGridPerCell / 2; + } + + // 获取指定坐标点所位于的格子的 X 序号 + [[nodiscard]] static inline int32_t GridToCell(int32_t grid) noexcept + { + return grid / numOfGridPerCell; + } + + // 用于DEBUG的输出函数,选手仅在开启Debug模式的情况下可以使用 + + virtual void Print(std::string str) const = 0; + virtual void PrintCharacter() const = 0; + virtual void PrintTeam() const = 0; + virtual void PrintSelfInfo() const = 0; diff --git a/logic/Server/Properties/launchSettings.json b/logic/Server/Properties/launchSettings.json new file mode 100644 index 0000000..1be99b0 --- /dev/null +++ b/logic/Server/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Server": { + "commandName": "Project", + "commandLineArgs": "--port 8888" + } + } +} \ No newline at end of file diff --git a/logic/Server/Server.csproj b/logic/Server/Server.csproj index 61ee78c..23424cf 100644 --- a/logic/Server/Server.csproj +++ b/logic/Server/Server.csproj @@ -1,7 +1,7 @@  - Library + Exe net8.0 enable enable From 90c8f4d3a50971be052d944dac8165c927c93bd8 Mon Sep 17 00:00:00 2001 From: JackPWY <2351627401@qq.com> Date: Sat, 29 Mar 2025 20:23:47 +0800 Subject: [PATCH 07/34] Debug_interface changed character sign in map --- .../debug_interface/Assets/tangseng2.png | Bin 0 -> 345734 bytes .../ViewModels/CharacterViewModel.cs | 11 +- .../debug_interface/Views/MapView.axaml.cs | 120 +++++++++++++++--- .../debug_interface/debug_interface.csproj | 6 +- 4 files changed, 101 insertions(+), 36 deletions(-) create mode 100644 interface/AvaloniaUI_debug_interface/debug_interface/Assets/tangseng2.png diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/Assets/tangseng2.png b/interface/AvaloniaUI_debug_interface/debug_interface/Assets/tangseng2.png new file mode 100644 index 0000000000000000000000000000000000000000..c93b2e0556efccdee4536b9f3011cfa9579e9363 GIT binary patch literal 345734 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

15$q-tw9 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

pMSNS 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

lfXxXbup~60dOVOpV~()re7e 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 literal 0 HcmV?d00001 diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/ViewModels/CharacterViewModel.cs b/interface/AvaloniaUI_debug_interface/debug_interface/ViewModels/CharacterViewModel.cs index 5393022..ec1c2ba 100644 --- a/interface/AvaloniaUI_debug_interface/debug_interface/ViewModels/CharacterViewModel.cs +++ b/interface/AvaloniaUI_debug_interface/debug_interface/ViewModels/CharacterViewModel.cs @@ -24,16 +24,7 @@ namespace debug_interface.ViewModels // 可能值: "空置","开采","攻击","释放技能","建造","移动" [ObservableProperty] private string activeState = "空置"; - //public string ActiveState - //{ - // get => activeState; - // set - // { - // if (value == activeState) return; - // activeState = value; - // OnPropertyChanged(nameof(DisplayStates)); - // } - //} + // 被动状态(可叠加) // 可能值: "致盲","击退","定身","隐身" 等,可由服务器控制增减 public ObservableCollection PassiveStates { get; } = new ObservableCollection(); diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs b/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs index 7765428..8d51e48 100644 --- a/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs +++ b/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs @@ -8,6 +8,9 @@ using debug_interface.ViewModels; using System; using System.Collections.Generic; using System.Collections.Specialized; +using Avalonia.Media.Imaging; +using Avalonia.Platform; + namespace debug_interface.Views { @@ -15,7 +18,8 @@ namespace debug_interface.Views { private Canvas? characterCanvas; private ItemsControl? mapItemsControl; - private Dictionary characterEllipses = new Dictionary(); + //private Dictionary characterEllipses = new Dictionary(); + private Dictionary characterElements = new Dictionary(); private MainWindowViewModel? viewModel; public MapView() @@ -84,7 +88,7 @@ namespace debug_interface.Views // Clear existing characters characterCanvas.Children.Clear(); - characterEllipses.Clear(); + characterElements.Clear(); // ʹµֵ // Re-add all characters InitializeCharacters(viewModel.RedTeamCharacters, Colors.Red); @@ -117,6 +121,7 @@ namespace debug_interface.Views } } + private void InitializeCharacters(System.Collections.ObjectModel.ObservableCollection characters, Color color) where T : CharacterViewModel { if (characterCanvas == null) return; @@ -126,44 +131,117 @@ namespace debug_interface.Views var character = characters[i]; var id = color == Colors.Red ? $"red_{i}" : $"blue_{i}"; - var ellipse = new Ellipse + // һGridΪ߿ı/ͼ + var grid = new Grid { - Width = 12, - Height = 12, - Fill = new SolidColorBrush(color), - Stroke = new SolidColorBrush(Colors.White), - StrokeThickness = 1, + Width = 15, + Height = 15, + }; + + // ɫ߿Բ + var borderellipse = new Ellipse + { + Width = 15, + Height = 15, + Fill = new SolidColorBrush(Colors.White), // ɫ + Stroke = new SolidColorBrush(color), // ɫ߿ + StrokeThickness = 2, Tag = character.Name, }; - // Set tooltip - ToolTip.SetTip(ellipse, character.Name); + grid.Children.Add(borderellipse); - // Set initial position - Canvas.SetLeft(ellipse, character.PosY * 15); - Canvas.SetTop(ellipse, character.PosX * 15); + // ===== ѡ1: ʾֱ ===== + // Ҫֱţע͵δ + //var textBlock = new TextBlock + //{ + // Text = (i + 1).ToString(), // ʹñ(1ʼ) + // HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center, + // VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center, + // FontSize = 8, + // Foreground = new SolidColorBrush(color), // ıɫɫһ + // FontWeight = FontWeight.Bold, + //}; + //grid.Children.Add(textBlock); - characterCanvas.Children.Add(ellipse); - characterEllipses[id] = ellipse; - // Set up property changed handlers + // ===== ѡ2: ʾɫͼ ===== + //Ҫͼ꣬ע͵δ + //ȡɫͻIDѡӦͼ + //string iconKey = character.Type ?? $"Character{i + 1}"; // ҪģType + + //try + //{ + // // ԴURIͼƬ + // var uri = new Uri("avares://debug_interface/Assets/tangseng2.png"); + // using var stream = AssetLoader.Open(uri); + // var originalBitmap = new Bitmap(stream); + + // // ʾͼƬԲ + // var imageEllipse = new Ellipse + // { + // Width = 15, + // Height = 15, + // }; + + // // ʹImageBrushԲ + // var imageBrush = new ImageBrush + // { + // Source = originalBitmap, // ֱʹԭʼBitmap + // Stretch = Stretch.UniformToFill, + // // ͨ"ģ"üЧ + // // 磬ֻʾͼĶ + // SourceRect = new RelativeRect(0, 0, 1, 0.7, RelativeUnit.Relative), // ֻʾ1/3 + // AlignmentX = AlignmentX.Center, + // AlignmentY = AlignmentY.Top + // }; + // imageEllipse.Fill = imageBrush; + + // // ӵGrid + // grid.Children.Add(imageEllipse); + //} + //catch (Exception ex) + //{ + // Console.WriteLine($"ͼƬ쳣: {ex.Message}"); + // Console.WriteLine($"ջ: {ex.StackTrace}"); + // System.Diagnostics.Debug.WriteLine($"ͼƬ쳣: {ex.Message}"); + // System.Diagnostics.Debug.WriteLine($"ջ: {ex.StackTrace}"); + //} + // ===== ѡ2 ===== + + // ʾϢ + ToolTip.SetTip(grid, character.Name); + + // óʼλ + Canvas.SetLeft(grid, character.PosY * 15); + Canvas.SetTop(grid, character.PosX * 15); + + characterCanvas.Children.Add(grid); + + // 洢Gridֵ + characterElements[id] = grid; + + // ԸĴ character.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(CharacterViewModel.PosX) || e.PropertyName == nameof(CharacterViewModel.PosY)) { - UpdateCharacterPosition(ellipse, character.PosX, character.PosY); + // Gridλ + UpdateCharacterPosition(grid, character.PosX, character.PosY); } }; } } - private void UpdateCharacterPosition(Ellipse ellipse, int x, int y) + // ޸λø·κUIElement + private void UpdateCharacterPosition(Control element, int x, int y) { - // Convert grid position to pixels - Canvas.SetLeft(ellipse, y * 15); - Canvas.SetTop(ellipse, x * 15); + // תλΪ + Canvas.SetLeft(element, y * 15); + Canvas.SetTop(element, x * 15); } + private void RedTeamCharacters_CollectionChanged(object? sender, NotifyCollectionChangedEventArgs e) { // When collection changes, refresh all characters for simplicity diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/debug_interface.csproj b/interface/AvaloniaUI_debug_interface/debug_interface/debug_interface.csproj index 356b898..678729f 100644 --- a/interface/AvaloniaUI_debug_interface/debug_interface/debug_interface.csproj +++ b/interface/AvaloniaUI_debug_interface/debug_interface/debug_interface.csproj @@ -6,6 +6,7 @@ true app.manifest true + debug_interface @@ -28,11 +29,6 @@ - - - - - From e1db602f67bca198adaa2a63ee4ee524ce7a9bbf Mon Sep 17 00:00:00 2001 From: yihan-wa <1572542354@qq.com> Date: Sat, 29 Mar 2025 20:24:34 +0800 Subject: [PATCH 08/34] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0AP?= =?UTF-8?q?I.py=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAPI/python/API.py | 245 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 CAPI/python/API.py diff --git a/CAPI/python/API.py b/CAPI/python/API.py new file mode 100644 index 0000000..ff5fb1f --- /dev/null +++ b/CAPI/python/API.py @@ -0,0 +1,245 @@ +from PyAPI.structures import THUAI8 +from PyAPI.Interface import ILogic, IAI, IGameTimer, ICharacterAPI, ITeamAPI +from concurrent.futures import ThreadPoolExecutor, Future +from typing import List, Optional, Tuple, cast, Union +import math + + +class IAPI: + @staticmethod + def CellToGrid(cell: int) -> int: + return cell * 1000 + 500 + + @staticmethod + def GridToCell(grid: int) -> int: + return grid // 1000 + + +class CharacterAPI(ICharacterAPI, IGameTimer): + def __init__(self, logic: ILogic) -> None: + self.__logic = logic + self.__pool = ThreadPoolExecutor(20) + + # region 实现IGameTimer接口 + def StartTimer(self) -> None: + pass + + def EndTimer(self) -> None: + pass + + def Play(self, ai: IAI) -> None: + ai.Play(self) + # endregion + + # region 实现IAPI接口 + def SendTextMessage(self, toPlayerID: int, message: str) -> Future[bool]: + return self.__pool.submit(self.__logic.Send, toPlayerID, message, False) + + def SendBinaryMessage(self, toPlayerID: int, message: str) -> Future[bool]: + return self.__pool.submit(self.__logic.Send, toPlayerID, message, True) + + def HaveMessage(self) -> bool: + return self.__logic.HaveMessage() + + def GetMessage(self) -> Tuple[int, str]: + return self.__logic.GetMessage() + + def GetFrameCount(self) -> int: + return self.__logic.GetCounter() + + def Wait(self) -> bool: + return self.__logic.WaitThread() + + def EndAllAction(self) -> Future[bool]: + return self.__pool.submit(self.__logic.EndAllAction) + + def GetCharacters(self) -> List[THUAI8.Character]: + return self.__logic.GetCharacters() + + def GetEnemyCharacters(self) -> List[THUAI8.Character]: + return self.__logic.GetEnemyCharacters() + + def GetFullMap(self) -> List[List[THUAI8.PlaceType]]: + return self.__logic.GetFullMap() + + def GetGameInfo(self) -> THUAI8.GameInfo: + return self.__logic.GetGameInfo() + + def GetPlaceType(self, cellX: int, cellY: int) -> THUAI8.PlaceType: + return self.__logic.GetPlaceType(cellX, cellY) + + def GetEnconomyResourceState(self, cellX: int, cellY: int) -> Optional[THUAI8.EconomyResourceState]: + return self.__logic.GetEnconomyResourceState(cellX, cellY) + + def GetAdditionResourceState(self, cellX: int, cellY: int) -> Optional[THUAI8.AdditionResourceState]: + return self.__logic.GetAdditionResourceState(cellX, cellY) + + def GetConstructionState(self, cellX: int, cellY: int) -> Optional[THUAI8.ConstructionState]: + return self.__logic.GetConstructionState(cellX, cellY) + + def GetPlayerGUIDs(self) -> List[int]: + return self.__logic.GetPlayerGUIDs() + + def GetEnergy(self) -> int: + return self.__logic.GetEnergy() + + def GetScore(self) -> int: + return self.__logic.GetScore() + + def Print(self, string: str) -> None: + pass + + def PrintCharacter(self) -> None: + pass + + def PrintTeam(self) -> None: + pass + + def PrintSelfInfo(self) -> None: + pass + # endregion + + # region 实现ICharacterAPI接口 + def Move(self, speed: int, timeInMilliseconds: int, angleInRadian: float) -> Future[bool]: + return self.__pool.submit(self.__logic.Move, speed, timeInMilliseconds, angleInRadian) + + def MoveRight(self, speed: int, timeInMilliseconds: int) -> Future[bool]: + return self.Move(speed, timeInMilliseconds, math.pi/2) + + def MoveUp(self, speed: int, timeInMilliseconds: int) -> Future[bool]: + return self.Move(speed, timeInMilliseconds, math.pi) + + def MoveLeft(self, speed: int, timeInMilliseconds: int) -> Future[bool]: + return self.Move(speed, timeInMilliseconds, math.pi*3/2) + + def MoveDown(self, speed: int, timeInMilliseconds: int) -> Future[bool]: + return self.Move(speed, timeInMilliseconds, 0) + + def Skill_Attack(self, attackedPlayerID: int) -> Future[bool]: + return self.__pool.submit(self.__logic.Skill_Attack, attackedPlayerID) + + def Common_Attack(self, attackedPlayerID: int) -> Future[bool]: + return self.__pool.submit(self.__logic.Common_Attack, attackedPlayerID) + + def Recover(self, recover: int) -> Future[bool]: + return self.__pool.submit(self.__logic.Recover, recover) + + def Harvest(self) -> Future[bool]: + return self.__pool.submit(self.__logic.Produce) + + def Rebuild(self, constructionType: THUAI8.ConstructionType) -> Future[bool]: + return self.__pool.submit(self.__logic.Rebuild, constructionType) + + def Construct(self, constructionType: THUAI8.ConstructionType) -> Future[bool]: + return self.__pool.submit(self.__logic.Construct, constructionType) + + def GetSelfInfo(self) -> THUAI8.Character: + return cast(THUAI8.Character, self.__logic.CharacterGetSelfInfo()) + + def HaveView(self, targetX: int, targetY: int) -> bool: + self_info = self.GetSelfInfo() + return self.__logic.HaveView( + self_info.x, self_info.y, + targetX, targetY, + self_info.viewRange + ) + # endregion + + +class TeamAPI(ITeamAPI, IGameTimer): + def __init__(self, logic: ILogic) -> None: + self.__logic = logic + self.__pool = ThreadPoolExecutor(20) + + # region 实现IGameTimer接口 + def StartTimer(self) -> None: + pass + + def EndTimer(self) -> None: + pass + + def Play(self, ai: IAI) -> None: + ai.Play(self) + # endregion + + # region 实现IAPI接口 + def SendTextMessage(self, toPlayerID: int, message: str) -> Future[bool]: + return self.__pool.submit(self.__logic.Send, toPlayerID, message, False) + + def SendBinaryMessage(self, toPlayerID: int, message: str) -> Future[bool]: + return self.__pool.submit(self.__logic.Send, toPlayerID, message, True) + + def HaveMessage(self) -> bool: + return self.__logic.HaveMessage() + + def GetMessage(self) -> Tuple[int, str]: + return self.__logic.GetMessage() + + def GetFrameCount(self) -> int: + return self.__logic.GetCounter() + + def Wait(self) -> bool: + return self.__logic.WaitThread() + + def EndAllAction(self) -> Future[bool]: + return self.__pool.submit(self.__logic.EndAllAction) + + def GetCharacters(self) -> List[THUAI8.Character]: + return self.__logic.GetCharacters() + + def GetEnemyCharacters(self) -> List[THUAI8.Character]: + return self.__logic.GetEnemyCharacters() + + def GetFullMap(self) -> List[List[THUAI8.PlaceType]]: + return self.__logic.GetFullMap() + + def GetGameInfo(self) -> THUAI8.GameInfo: + return self.__logic.GetGameInfo() + + def GetPlaceType(self, cellX: int, cellY: int) -> THUAI8.PlaceType: + return self.__logic.GetPlaceType(cellX, cellY) + + def GetEnconomyResourceState(self, cellX: int, cellY: int) -> Optional[THUAI8.EconomyResourceState]: + return self.__logic.GetEnconomyResourceState(cellX, cellY) + + def GetAdditionResourceState(self, cellX: int, cellY: int) -> Optional[THUAI8.AdditionResourceState]: + return self.__logic.GetAdditionResourceState(cellX, cellY) + + def GetConstructionState(self, cellX: int, cellY: int) -> Optional[THUAI8.ConstructionState]: + return self.__logic.GetConstructionState(cellX, cellY) + + def GetPlayerGUIDs(self) -> List[int]: + return self.__logic.GetPlayerGUIDs() + + def GetEnergy(self) -> int: + return self.__logic.GetEnergy() + + def GetScore(self) -> int: + return self.__logic.GetScore() + + def Print(self, string: str) -> None: + pass + + def PrintCharacter(self) -> None: + pass + + def PrintTeam(self) -> None: + pass + + def PrintSelfInfo(self) -> None: + pass + # endregion + + # region 实现ITeamAPI接口 + def GetSelfInfo(self) -> THUAI8.Team: + return cast(THUAI8.Team, self.__logic.TeamGetSelfInfo()) + + def InstallEquipment(self, playerID: int, equipmentType: THUAI8.EquipmentType) -> Future[bool]: + return self.__pool.submit(self.__logic.InstallEquipment, playerID, equipmentType) + + def Recycle(self, playerID: int) -> Future[bool]: + return self.__pool.submit(self.__logic.Recycle, playerID) + + def BuildCharacter(self, CharacterType: THUAI8.CharacterType, birthIndex: int) -> Future[bool]: + return self.__pool.submit(self.__logic.BuildCharacter, CharacterType, birthIndex) + # endregion \ No newline at end of file From c250292b20bb471e95f9e36075cb0f3f64be9bc0 Mon Sep 17 00:00:00 2001 From: JackPWY <2351627401@qq.com> Date: Sat, 29 Mar 2025 21:43:17 +0800 Subject: [PATCH 09/34] Debug_interface- Fixed Map's display bug --- .../debug_interface/Controls/MapHelper.cs | 262 ++++++++++++++++++ .../debug_interface/Views/MapView.axaml | 34 +-- .../debug_interface/Views/MapView.axaml.cs | 101 +++---- 3 files changed, 306 insertions(+), 91 deletions(-) create mode 100644 interface/AvaloniaUI_debug_interface/debug_interface/Controls/MapHelper.cs diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/Controls/MapHelper.cs b/interface/AvaloniaUI_debug_interface/debug_interface/Controls/MapHelper.cs new file mode 100644 index 0000000..b36cfb6 --- /dev/null +++ b/interface/AvaloniaUI_debug_interface/debug_interface/Controls/MapHelper.cs @@ -0,0 +1,262 @@ +// MapHelper.cs +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.Shapes; +using Avalonia.Media; +using debug_interface.Models; +using debug_interface.ViewModels; +using System; +using System.Collections.Generic; + +namespace debug_interface.Controls +{ + public static class MapHelper + { + private static Dictionary cellRectangles = new Dictionary(); + private static Grid? gridContainer; + + ///

+ /// 初始化地图网格 + /// + public static Grid CreateMapGrid(MapViewModel mapViewModel) + { + // 清空现有记录 + cellRectangles.Clear(); + + // 创建Grid容器,设置为50x50的网格 + var grid = new Grid(); + gridContainer = grid; + + // 定义列 + for (int i = 0; i < 50; i++) + { + grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); + } + + // 定义行 + for (int i = 0; i < 50; i++) + { + grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); + } + + // 绘制单元格 + for (int i = 0; i < 50; i++) + { + for (int j = 0; j < 50; j++) + { + int index = i * 50 + j; + + if (index < mapViewModel.MapCells.Count) + { + var cell = mapViewModel.MapCells[index]; + + // 创建矩形单元格 + var rectangle = new Rectangle + { + Fill = cell.DisplayColor, + Margin = new Thickness(0), + [Grid.RowProperty] = i, + [Grid.ColumnProperty] = j + }; + + // 为单元格添加文本(如果有) + if (!string.IsNullOrEmpty(cell.DisplayText)) + { + var textBlock = new TextBlock + { + Text = cell.DisplayText, + FontSize = 6, + TextAlignment = TextAlignment.Center, + VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center, + HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center, + [Grid.RowProperty] = i, + [Grid.ColumnProperty] = j, + ZIndex = 1 // 确保文本在矩形上方 + }; + grid.Children.Add(textBlock); + } + + // 存储矩形引用以便后续更新 + cellRectangles[index] = rectangle; + grid.Children.Add(rectangle); + } + } + } + + // 添加网格线(在单元格上方) + AddGridLines(grid); + + return grid; + } + /// + /// 初始化地图网格 + /// + public static void InitializeMapGrid(Grid grid, MapViewModel mapViewModel) + { + // 清空所有现有内容 + grid.Children.Clear(); + grid.RowDefinitions.Clear(); + grid.ColumnDefinitions.Clear(); + cellRectangles.Clear(); + gridContainer = grid; + + // 定义列 + for (int i = 0; i < 50; i++) + { + grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); + } + + // 定义行 + for (int i = 0; i < 50; i++) + { + grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); + } + + // 绘制单元格 + for (int i = 0; i < 50; i++) + { + for (int j = 0; j < 50; j++) + { + int index = i * 50 + j; + + if (index < mapViewModel.MapCells.Count) + { + var cell = mapViewModel.MapCells[index]; + + // 创建矩形单元格 + var rectangle = new Rectangle + { + Fill = cell.DisplayColor, + Margin = new Thickness(0), + [Grid.RowProperty] = i, + [Grid.ColumnProperty] = j + }; + + // 为单元格添加文本(如果有) + if (!string.IsNullOrEmpty(cell.DisplayText)) + { + var textBlock = new TextBlock + { + Text = cell.DisplayText, + FontSize = 6, + TextAlignment = TextAlignment.Center, + VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center, + HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center, + [Grid.RowProperty] = i, + [Grid.ColumnProperty] = j, + ZIndex = 1 // 确保文本在矩形上方 + }; + grid.Children.Add(textBlock); + } + + // 存储矩形引用以便后续更新 + cellRectangles[index] = rectangle; + grid.Children.Add(rectangle); + } + } + } + + // 添加网格线(在单元格上方) + AddGridLines(grid); + } + + /// + /// 添加网格线 + /// + private static void AddGridLines(Grid grid) + { + // 添加水平网格线 + for (int i = 0; i <= 50; i++) + { + var line = new Line + { + StartPoint = new Point(0, 0), + EndPoint = new Point(1, 0), + Stroke = Brushes.Gray, + StrokeThickness = 1, + Stretch = Stretch.Fill, + ZIndex = 2 // 确保网格线在最上层 + }; + + if (i < 50) // 最后一行不需要添加 + { + line.SetValue(Grid.RowProperty, i); + line.SetValue(Grid.ColumnSpanProperty, 50); + line.VerticalAlignment = Avalonia.Layout.VerticalAlignment.Bottom; + grid.Children.Add(line); + } + } + + // 添加垂直网格线 + for (int j = 0; j <= 50; j++) + { + var line = new Line + { + StartPoint = new Point(0, 0), + EndPoint = new Point(0, 1), + Stroke = Brushes.Gray, + StrokeThickness = 1, + Stretch = Stretch.Fill, + ZIndex = 2 // 确保网格线在最上层 + }; + + if (j < 50) // 最后一列不需要添加 + { + line.SetValue(Grid.ColumnProperty, j); + line.SetValue(Grid.RowSpanProperty, 50); + line.HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Right; + grid.Children.Add(line); + } + } + } + + /// + /// 更新单元格颜色 + /// + public static void UpdateCellColor(int x, int y, IBrush color) + { + int index = x * 50 + y; + if (cellRectangles.ContainsKey(index)) + { + cellRectangles[index].Fill = color; + } + } + + /// + /// 更新单元格文本 + /// + public static void UpdateCellText(int x, int y, string text) + { + if (gridContainer == null) return; + + // 查找对应位置的TextBlock并更新 + foreach (var child in gridContainer.Children) + { + if (child is TextBlock textBlock && + Grid.GetRow(textBlock) == x && + Grid.GetColumn(textBlock) == y) + { + textBlock.Text = text; + return; + } + } + + // 如果没有找到现有的TextBlock,创建新的 + if (!string.IsNullOrEmpty(text)) + { + var textBlock = new TextBlock + { + Text = text, + FontSize = 6, + TextAlignment = TextAlignment.Center, + VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center, + HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center, + [Grid.RowProperty] = x, + [Grid.ColumnProperty] = y, + ZIndex = 1 + }; + gridContainer.Children.Add(textBlock); + } + } + } +} \ No newline at end of file diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml b/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml index 4465001..b7ac18f 100644 --- a/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml +++ b/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml @@ -1,4 +1,4 @@ - + - - - - - - - - - - - - - - - - + + + - - - + + + \ No newline at end of file diff --git a/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs b/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs index 8d51e48..2c33bc6 100644 --- a/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs +++ b/interface/AvaloniaUI_debug_interface/debug_interface/Views/MapView.axaml.cs @@ -4,21 +4,21 @@ using Avalonia.Controls; using Avalonia.Controls.Shapes; using Avalonia.Media; using Avalonia.VisualTree; +using debug_interface.Controls; +using debug_interface.Models; using debug_interface.ViewModels; using System; using System.Collections.Generic; using System.Collections.Specialized; -using Avalonia.Media.Imaging; -using Avalonia.Platform; namespace debug_interface.Views { public partial class MapView : UserControl { + private Canvas? characterCanvas; - private ItemsControl? mapItemsControl; - //private Dictionary characterEllipses = new Dictionary(); + private Grid? mapGrid; private Dictionary characterElements = new Dictionary(); private MainWindowViewModel? viewModel; @@ -30,10 +30,9 @@ namespace debug_interface.Views this.DataContextChanged += MapView_DataContextChanged; } + private void MapView_DataContextChanged(object? sender, EventArgs e) { - // When the data context changes, get the parent window's DataContext - // which should be the MainWindowViewModel var mainWindow = this.FindAncestorOfType(); if (mainWindow != null && mainWindow.DataContext is MainWindowViewModel vm) { @@ -44,9 +43,8 @@ namespace debug_interface.Views private void MapView_AttachedToVisualTree(object? sender, VisualTreeAttachmentEventArgs e) { characterCanvas = this.FindControl("CharacterCanvas"); - mapItemsControl = this.FindControl("MapItemsControl"); + mapGrid = this.FindControl("MapGrid"); // ޸ӦXAML - // Get the MainWindowViewModel from the parent MainWindow var mainWindow = this.FindAncestorOfType(); if (mainWindow != null && mainWindow.DataContext is MainWindowViewModel vm) { @@ -54,9 +52,9 @@ namespace debug_interface.Views } } + private void SetupViewModel(MainWindowViewModel vm) { - // Clean up previous handlers if any if (viewModel != null) { viewModel.RedTeamCharacters.CollectionChanged -= RedTeamCharacters_CollectionChanged; @@ -65,32 +63,52 @@ namespace debug_interface.Views viewModel = vm; - // Set the ItemsSource programmatically - if (mapItemsControl != null && viewModel.MapVM != null) + // ʼͼ + if (mapGrid != null && viewModel.MapVM != null) { - mapItemsControl.ItemsSource = viewModel.MapVM.MapCells; + // ֱʹеmapGrid + MapHelper.InitializeMapGrid(mapGrid, viewModel.MapVM); + } - // Listen for changes to character collections + // ɫϱ仯 viewModel.RedTeamCharacters.CollectionChanged += RedTeamCharacters_CollectionChanged; viewModel.BlueTeamCharacters.CollectionChanged += BlueTeamCharacters_CollectionChanged; - // Initialize existing characters + // ʼɫ RefreshCharacters(); - - // Initialize random positions if not set InitializeRandomPositions(); + + // ͼԪ仯ģṩ + if (viewModel.MapVM != null) + { + // MapCellʵINotifyPropertyChangedԱ仯 + foreach (var cell in viewModel.MapVM.MapCells) + { + cell.PropertyChanged += (s, e) => { + if (s is MapCell mapCell) + { + if (e.PropertyName == nameof(MapCell.DisplayColor)) + { + MapHelper.UpdateCellColor(mapCell.CellX, mapCell.CellY, mapCell.DisplayColor); + } + else if (e.PropertyName == nameof(MapCell.DisplayText)) + { + MapHelper.UpdateCellText(mapCell.CellX, mapCell.CellY, mapCell.DisplayText); + } + } + }; + } + } } private void RefreshCharacters() { if (characterCanvas == null || viewModel == null) return; - // Clear existing characters characterCanvas.Children.Clear(); - characterElements.Clear(); // ʹµֵ + characterElements.Clear(); - // Re-add all characters InitializeCharacters(viewModel.RedTeamCharacters, Colors.Red); InitializeCharacters(viewModel.BlueTeamCharacters, Colors.Blue); } @@ -164,51 +182,6 @@ namespace debug_interface.Views //}; //grid.Children.Add(textBlock); - - // ===== ѡ2: ʾɫͼ ===== - //Ҫͼ꣬ע͵δ - //ȡɫͻIDѡӦͼ - //string iconKey = character.Type ?? $"Character{i + 1}"; // ҪģType - - //try - //{ - // // ԴURIͼƬ - // var uri = new Uri("avares://debug_interface/Assets/tangseng2.png"); - // using var stream = AssetLoader.Open(uri); - // var originalBitmap = new Bitmap(stream); - - // // ʾͼƬԲ - // var imageEllipse = new Ellipse - // { - // Width = 15, - // Height = 15, - // }; - - // // ʹImageBrushԲ - // var imageBrush = new ImageBrush - // { - // Source = originalBitmap, // ֱʹԭʼBitmap - // Stretch = Stretch.UniformToFill, - // // ͨ"ģ"üЧ - // // 磬ֻʾͼĶ - // SourceRect = new RelativeRect(0, 0, 1, 0.7, RelativeUnit.Relative), // ֻʾ1/3 - // AlignmentX = AlignmentX.Center, - // AlignmentY = AlignmentY.Top - // }; - // imageEllipse.Fill = imageBrush; - - // // ӵGrid - // grid.Children.Add(imageEllipse); - //} - //catch (Exception ex) - //{ - // Console.WriteLine($"ͼƬ쳣: {ex.Message}"); - // Console.WriteLine($"ջ: {ex.StackTrace}"); - // System.Diagnostics.Debug.WriteLine($"ͼƬ쳣: {ex.Message}"); - // System.Diagnostics.Debug.WriteLine($"ջ: {ex.StackTrace}"); - //} - // ===== ѡ2 ===== - // ʾϢ ToolTip.SetTip(grid, character.Name); From 1f4815f4043cf028d360c72b0b02ac16328c2e1a Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 21:51:57 +0800 Subject: [PATCH 10/34] =?UTF-8?q?feat:=20Character=E6=96=B0=E5=A2=9ENiuShi?= =?UTF-8?q?led=E4=BB=A5=E5=8C=BA=E5=88=86=EF=BC=8C=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9CharacterManager=E7=9B=B8=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/GameClass/GameObj/Character.cs | 9 +++++++++ logic/Gaming/CharacterManager.cs | 18 +++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/logic/GameClass/GameObj/Character.cs b/logic/GameClass/GameObj/Character.cs index 30dbbfb..f126ff7 100644 --- a/logic/GameClass/GameObj/Character.cs +++ b/logic/GameClass/GameObj/Character.cs @@ -20,6 +20,7 @@ public class Character : Movable, ICharacter public InVariableRange AttackPower { get; } public InVariableRange AttackSize { get; } public InVariableRange Shield { get; } + public InVariableRange NiuShield { get; } public InVariableRange Shoes { get; }//移速加成(注意是加成值,实际移速为基础移速+移速加成) public CharacterType CharacterType { get; } public bool trapped { get; set; } = false; @@ -42,6 +43,7 @@ public class Character : Movable, ICharacter public long QuickStepTime = long.MaxValue; public int CrazyManNum = 0; public int EconomyDepletion = 0; + public bool IsShield = false; public void StartSkillCD() { skillCD = Environment.TickCount64; @@ -237,6 +239,7 @@ public class Character : Movable, ICharacter ViewRange = Occupation.ViewRange; Shoes = new(0); Shield = new(0); + NiuShield = new(0); AttackSize = new(Occupation.BaseAttackSize); AttackPower = new(Occupation.AttackPower); MoneyPool = pool; @@ -273,20 +276,26 @@ public class Character : Movable, ICharacter } case EquipmentType.SMALL_SHIELD: { + if(IsShield) return false; Shield.AddPositiveV(GameData.Shield1); SubMoney(EquipmentFactory.FindCost(equiptype)); + IsShield = true; return true; } case EquipmentType.MEDIUM_SHIELD: { + if(IsShield) return false; Shield.AddPositiveV(GameData.Shield2); SubMoney(EquipmentFactory.FindCost(equiptype)); + IsShield = true; return true; } case EquipmentType.LARGE_SHIELD: { + if(IsShield) return false; Shield.AddPositiveV(GameData.Shield3); SubMoney(EquipmentFactory.FindCost(equiptype)); + IsShield = true; return true; } case EquipmentType.SPEEDBOOTS: diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 59678d1..cbebf27 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -44,11 +44,27 @@ namespace Gaming return; } long subHP = (long)(obj.AttackPower * (1 - character.HarmCut)); - if (character.Shield > 0) + /*if (character.Shield > 0) { character.Shield.SubPositiveV(subHP); } else + { + character.HP.SubPositiveV(subHP); + }*/ + if(character.NiuShield>subHP) + { + break; + } + character.NiuShield.SubPositiveV(subHP); + subHP-= character.NiuShield; + else if(character.Shiled>subHP) + { + break; + } + character.Shield.SubPositiveV(subHP); + subHP-= character.Shield; + else { character.HP.SubPositiveV(subHP); } From 5209feebbc48b383a9a549a840213f5a44bb8643 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 21:54:01 +0800 Subject: [PATCH 11/34] =?UTF-8?q?feat:=20=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Gaming/CharacterManager.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index cbebf27..6e3264d 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -68,6 +68,7 @@ namespace Gaming { character.HP.SubPositiveV(subHP); } + if (character.HP == 0) { long score = 0; From 9a89267c0ce6938e92ba3e2c921419ea26d827fc Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:02:43 +0800 Subject: [PATCH 12/34] fix: FormatFIxed --- logic/GameClass/GameObj/Character.cs | 15 ++++++++++++--- logic/Gaming/CharacterManager.cs | 9 ++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/logic/GameClass/GameObj/Character.cs b/logic/GameClass/GameObj/Character.cs index f126ff7..9bc6e71 100644 --- a/logic/GameClass/GameObj/Character.cs +++ b/logic/GameClass/GameObj/Character.cs @@ -276,7 +276,10 @@ public class Character : Movable, ICharacter } case EquipmentType.SMALL_SHIELD: { - if(IsShield) return false; + if(IsShield) + { + return false; + } Shield.AddPositiveV(GameData.Shield1); SubMoney(EquipmentFactory.FindCost(equiptype)); IsShield = true; @@ -284,7 +287,10 @@ public class Character : Movable, ICharacter } case EquipmentType.MEDIUM_SHIELD: { - if(IsShield) return false; + if(IsShield) + { + return false; + } Shield.AddPositiveV(GameData.Shield2); SubMoney(EquipmentFactory.FindCost(equiptype)); IsShield = true; @@ -292,7 +298,10 @@ public class Character : Movable, ICharacter } case EquipmentType.LARGE_SHIELD: { - if(IsShield) return false; + if(IsShield) + { + return false; + } Shield.AddPositiveV(GameData.Shield3); SubMoney(EquipmentFactory.FindCost(equiptype)); IsShield = true; diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 6e3264d..11b1c1f 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -52,23 +52,22 @@ namespace Gaming { character.HP.SubPositiveV(subHP); }*/ - if(character.NiuShield>subHP) + if(character.NiuShield > subHP) { break; } character.NiuShield.SubPositiveV(subHP); - subHP-= character.NiuShield; - else if(character.Shiled>subHP) + subHP -= character.NiuShield; + else if(character.Shiled > subHP) { break; } character.Shield.SubPositiveV(subHP); - subHP-= character.Shield; + subHP -= character.Shield; else { character.HP.SubPositiveV(subHP); } - if (character.HP == 0) { long score = 0; From 28bc4b6cdb509cbe7024f9de6ca2232b1016e3c5 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:03:29 +0800 Subject: [PATCH 13/34] =?UTF-8?q?feat:=20=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Gaming/CharacterManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 11b1c1f..9700e51 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -67,7 +67,7 @@ namespace Gaming else { character.HP.SubPositiveV(subHP); - } + } if (character.HP == 0) { long score = 0; @@ -83,7 +83,6 @@ namespace Gaming Remove(character); } } - public void BeAttacked(Character character, long AP)//此部分适用于中立资源攻击及技能攻击 { long subHP = (long)(AP * (1 - character.HarmCut)); From 18dbc85194ceb2a7899a0062cbd3dc73625e9bc7 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:06:03 +0800 Subject: [PATCH 14/34] =?UTF-8?q?fix:=20=E9=80=BB=E8=BE=91=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Gaming/CharacterManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 9700e51..725bbdb 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -52,17 +52,17 @@ namespace Gaming { character.HP.SubPositiveV(subHP); }*/ + character.NiuShield.SubPositiveV(subHP); if(character.NiuShield > subHP) { break; } - character.NiuShield.SubPositiveV(subHP); subHP -= character.NiuShield; + character.Shield.SubPositiveV(subHP); else if(character.Shiled > subHP) { break; } - character.Shield.SubPositiveV(subHP); subHP -= character.Shield; else { From 17c70e767d2c93555df93abd9c5699c8b1eae21a Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:11:56 +0800 Subject: [PATCH 15/34] fix: format --- logic/GameClass/GameObj/Character.cs | 8 ++++---- logic/Gaming/CharacterManager.cs | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/logic/GameClass/GameObj/Character.cs b/logic/GameClass/GameObj/Character.cs index 9bc6e71..72cbb6a 100644 --- a/logic/GameClass/GameObj/Character.cs +++ b/logic/GameClass/GameObj/Character.cs @@ -276,10 +276,10 @@ public class Character : Movable, ICharacter } case EquipmentType.SMALL_SHIELD: { - if(IsShield) + if (IsShield) { return false; - } + } Shield.AddPositiveV(GameData.Shield1); SubMoney(EquipmentFactory.FindCost(equiptype)); IsShield = true; @@ -287,7 +287,7 @@ public class Character : Movable, ICharacter } case EquipmentType.MEDIUM_SHIELD: { - if(IsShield) + if (IsShield) { return false; } @@ -298,7 +298,7 @@ public class Character : Movable, ICharacter } case EquipmentType.LARGE_SHIELD: { - if(IsShield) + if (IsShield) { return false; } diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 725bbdb..5ea6884 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -53,13 +53,13 @@ namespace Gaming character.HP.SubPositiveV(subHP); }*/ character.NiuShield.SubPositiveV(subHP); - if(character.NiuShield > subHP) + if (character.NiuShield > subHP) { break; } subHP -= character.NiuShield; character.Shield.SubPositiveV(subHP); - else if(character.Shiled > subHP) + else if (character.Shiled > subHP) { break; } @@ -67,7 +67,7 @@ namespace Gaming else { character.HP.SubPositiveV(subHP); - } + } if (character.HP == 0) { long score = 0; From 6f4f8b78b3a6d36c98ef831a2049db07d4060c08 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:22:11 +0800 Subject: [PATCH 16/34] fix: format --- logic/Gaming/CharacterManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 5ea6884..b7f8749 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -67,7 +67,7 @@ namespace Gaming else { character.HP.SubPositiveV(subHP); - } + } if (character.HP == 0) { long score = 0; From 21132175fc5fe3d3298f574aac690ac5e0baed41 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:27:19 +0800 Subject: [PATCH 17/34] =?UTF-8?q?feat:=20=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Gaming/CharacterManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 75eb904..396a476 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -291,4 +291,4 @@ namespace Gaming } } } -} \ No newline at end of file +} From aba04a66beb9cdf5fa9cd9a1bf9bc2116e4b604a Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Sat, 29 Mar 2025 22:31:24 +0800 Subject: [PATCH 18/34] =?UTF-8?q?fix:=20=E6=94=B9=E6=8E=89=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E4=B8=A2=E4=BA=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Gaming/CharacterManager.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 396a476..6362035 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -55,19 +55,16 @@ namespace Gaming character.NiuShield.SubPositiveV(subHP); if (character.NiuShield > subHP) { - break; + return; } subHP -= character.NiuShield; character.Shield.SubPositiveV(subHP); - else if (character.Shiled > subHP) + if (character.Shield > subHP) { - break; + return; } subHP -= character.Shield; - else - { - character.HP.SubPositiveV(subHP); - } + character.HP.SubPositiveV(subHP); if (character.HP == 0) { long score = 0; From e2a3fd43ab168f4011f099022c737382c4d30428 Mon Sep 17 00:00:00 2001 From: SERENCH <3117094826@qq.com> Date: Sun, 30 Mar 2025 23:25:28 +0800 Subject: [PATCH 19/34] =?UTF-8?q?refactor:=20:zap:=20=E5=AF=B9=E6=8E=A5Cha?= =?UTF-8?q?racter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAPI/cpp/API/include/structures.h | 55 ++++++++-------- CAPI/cpp/API/src/logic.cpp | 4 +- dependency/proto/Message2Clients.proto | 86 ++++++++++++++------------ dependency/proto/MessageType.proto | 7 +-- logic/Server/CopyInfo.cs | 68 +++++++++++++------- 5 files changed, 124 insertions(+), 96 deletions(-) diff --git a/CAPI/cpp/API/include/structures.h b/CAPI/cpp/API/include/structures.h index 2446964..ec3ae2a 100644 --- a/CAPI/cpp/API/include/structures.h +++ b/CAPI/cpp/API/include/structures.h @@ -219,23 +219,25 @@ namespace THUAI8 CharacterState characterActiveState; CharacterState blindState; - double blindTime; - CharacterState knockbackState; - double knockbackTime; + long blindTime; + // CharacterState knockbackState; + // double knockbackTime; CharacterState stunnedState; - double stunnedTime; + long stunnedTime; CharacterState invisibleState; - double invisibleTime; - CharacterState healingState; - double healingTime; - CharacterState berserkState; - double berserkTime; + long invisibleTime; + // CharacterState healingState; + // double healingTime; + // CharacterState berserkState; + // double berserkTime; CharacterState burnedState; - double burnedTime; - CharacterState harmCutState; - double harmCutTime; + long burnedTime; + double harmCut; + long harmCutTime; CharacterState deceasedState; + CharacterState characterPassiveState; + int32_t x; int32_t y; @@ -244,29 +246,30 @@ namespace THUAI8 int32_t viewRange; int32_t commonAttack; - double commonAttackCD; + long commonAttackCD; int32_t commonAttackRange; - double skillAttackCD; + long skillAttackCD; int32_t economyDepletion; int32_t killScore; int32_t hp; - EquipmentType shieldEquipment; - int32_t shild; - EquipmentType shoesEquipment; - double shoesTime; + int32_t shieldEquipment; + // int32_t shild; + int32_t shoesEquipment; + long shoesEquipmentTime; + long purificationEquipmentTime; - CharacterBuffType attackBuff; - double attackBuffTime; - CharacterBuffType defenseBuff; - double defenseBuffTime; - CharacterBuffType speedBuff; - double speedBuffTime; - CharacterBuffType visionBuff; - double visionBuffTime; + // CharacterBuffType attackBuff; + long attackBuffTime; + // CharacterBuffType defenseBuff; + // long defenseBuffTime; + // CharacterBuffType speedBuff; + long speedBuffTime; + // CharacterBuffType visionBuff; + long visionBuffTime; }; struct Team diff --git a/CAPI/cpp/API/src/logic.cpp b/CAPI/cpp/API/src/logic.cpp index 9b8887c..4240e45 100644 --- a/CAPI/cpp/API/src/logic.cpp +++ b/CAPI/cpp/API/src/logic.cpp @@ -508,7 +508,7 @@ void Logic::LoadBufferCase(const protobuf::MessageOfObj& item) break; case THUAI8::MessageOfObj::TrapMessage: // 待定 - if (item.trap_message().team_id() == teamID || AssistFunction::HaveView(x, y, item.trap_message().x(), item.trap_message().y(), viewRange, bufferState->gameMap) && currentState->characterSelf->visionBuff == THUAI8::CharacterBuffType::VisionBuff) + if (item.trap_message().team_id() == teamID || AssistFunction::HaveView(x, y, item.trap_message().x(), item.trap_message().y(), viewRange, bufferState->gameMap) && currentState->characterSelf->visionBuffTime > 0) { auto pos = THUAI8::cellxy_t( AssistFunction::GridToCell(item.trap_message().x()), @@ -603,7 +603,7 @@ void Logic::LoadBufferCase(const protobuf::MessageOfObj& item) { for (const auto& character : bufferState->characters) { - if (AssistFunction::HaveView(character->x, character->y, targetX, targetY, character->viewRange, bufferState->gameMap) && character->visionBuff == THUAI8::CharacterBuffType::VisionBuff) + if (AssistFunction::HaveView(character->x, character->y, targetX, targetY, character->viewRange, bufferState->gameMap) && character->visionBuffTime > 0) return true; } return false; diff --git a/dependency/proto/Message2Clients.proto b/dependency/proto/Message2Clients.proto index 087d16b..0105719 100644 --- a/dependency/proto/Message2Clients.proto +++ b/dependency/proto/Message2Clients.proto @@ -25,56 +25,62 @@ message MessageOfCharacter // 被动状态 CharacterState blind_state = 6; - double blind_time = 7; - CharacterState knockback_state = 8; - double knockback_time = 9; - CharacterState stunned_state = 10; - double stunned_time = 11; - CharacterState invisible_state = 12; - double invisible_time = 13; - CharacterState healing_state = 14; - double healing_time = 15; - CharacterState berserk_state = 16; - double berserk_time = 17; - CharacterState burned_state = 18; - double burned_time = 19; - CharacterState harm_cut_state = 20; - double harm_cut_time = 21; - CharacterState deceased_state = 22; // 死亡状态不需要持续时间 + long blind_time = 7; + // CharacterState knockback_state = 8; + // double knockback_time = 9; + CharacterState stunned_state = 8; + long stunned_time = 9; + CharacterState invisible_state = 10; + long invisible_time = 11; + // CharacterState healing_state = 14; + // long healing_time = 15; + // CharacterState berserk_state = 16; + // long berserk_time = 17; + CharacterState burned_state = 12; + long burned_time = 13; + double harm_cut = 14; + long harm_cut_time = 15; + CharacterState deceased_state = 16; // 死亡状态不需要持续时间 - int32 x = 23; - int32 y = 24; + CharacterState character_passive_state = 17; // 最新被动状态状态 - double facing_direction = 25; - int32 speed = 26; - int32 view_range = 27; + int32 x = 18; + int32 y = 19; - int32 common_attack = 28; - double common_attack_cd = 29; - int32 common_attack_range = 30; + double facing_direction = 20; + int32 speed = 21; + int32 view_range = 22; - double skill_attack_cd = 31; + int32 common_attack = 23; + long common_attack_cd = 24; + int32 common_attack_range = 25; - int32 economy_depletion = 32; // 经济资源消耗 - int32 kill_score = 33; // 击杀得分 + long skill_attack_cd = 26; + + int32 economy_depletion = 27; // 经济资源消耗 + int32 kill_score = 28; // 击杀得分 - int32 hp = 34; + int32 hp = 29; // 其它装备都是直接消耗,不需要记录 - EquipmentType shield_equipment = 35; // NULL_EQUIPMENT_TYPE表示没有装备 - int32 shild = 36; // 护盾剩余 - EquipmentType shoes_equipment = 37; - double shoes_time = 38; + int32 shield_equipment = 30; // 护盾剩余值,只含装备 + // EquipmentType shoes_equipment = ; // 鞋子装备 + int32 shoes_equipment = 31; + long shoes_equipment_time = 32; + // EquipmentType purification_equipment = ; + long purification_equipment_time = 33; + // EquipmentType invisibility_equipment = ; + // long invisibility_equipment_time = ; + // EquipmentType berserk_equipment = ; + // long berserk_equipment_time = ; // 加成资源的Buff - CharacterBuffType attack_buff = 39; - double attack_buff_time = 40; - CharacterBuffType defense_buff = 41; - double defense_buff_time = 42; - CharacterBuffType speed_buff = 43; - double speed_buff_time = 44; - CharacterBuffType vision_buff = 45; - double vision_buff_time = 46; + // CharacterBuffType attack_buff = 39; + long attack_buff_time = 34; + // CharacterBuffType speed_buff = 43; + long speed_buff_time = 35; + // CharacterBuffType vision_buff = 45; + long vision_buff_time = 36; } message MessageOfBarracks diff --git a/dependency/proto/MessageType.proto b/dependency/proto/MessageType.proto index 94d5b75..3b57867 100644 --- a/dependency/proto/MessageType.proto +++ b/dependency/proto/MessageType.proto @@ -61,16 +61,15 @@ enum CharacterState // 角色状态 CONSTRUCTING = 5; MOVING = 6; - BLIND = 7; KNOCKED_BACK = 8; STUNNED = 9; INVISIBLE = 10; - HEALING = 11; + // HEALING = 11; BERSERK = 12; BURNED = 13; - HARM_CUT = 14; - DECEASED = 15; + // HARM_CUT = 14; + DECEASED = 14; } enum CharacterBuffType diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 9cd8969..8b29a4b 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -75,26 +75,31 @@ namespace Server CharacterType = Transformation.CharacterTypeToProto(player.CharacterType), - CharacterActiveState = Transformation.CharacterStateToProto(player.CharacterActiveState), + CharacterActiveState = Transformation.CharacterStateToProto(player.CharacterState1), - // 待修改,被动状态用CharacterStateType还是bool - BlindState = (player.blind) ? Protobuf.CharacterState.BLIND : Protobuf.CharacterState.NULL_CHARACTER_STATE, - BlindTime = (double)player.BlindTime, // 待修改,时间是否应该用double + BlindState = (player.blind) ? Protobuf.CharacterState.Blind : Protobuf.CharacterState.NullCharacterState, + BlindTime = player.BlindTime, // 待修改,Character.cs中没有knockedback - KnockbackState = (player.knockedback) ? Protobuf.CharacterState.KNOCKED_BACK : Protobuf.CharacterState.NULL_CHARACTER_STATE, - KnockbackTime = (double)player.KnockedBackTime, - StunnedState = (player.stunned) ? Protobuf.CharacterState.STUNNED : Protobuf.CharacterState.NULL_CHARACTER_STATE, - StunnedTime = (double)player.StunnedTime, - InvisibleState = (player.visible) ? Protobuf.CharacterState.NULL_CHARACTER_STATE : Protobuf.CharacterState.INVISIBLE, + // KnockbackState = (player.knockedback) ? Protobuf.CharacterState.KnockedBack : Protobuf.CharacterState.NullCharacterState, + // KnockbackTime = player.KnockedBackTime, + StunnedState = (player.stunned) ? Protobuf.CharacterState.STUNNED : Protobuf.CharacterState.NullCharacterState, + StunnedTime = player.StunnedTime, + InvisibleState = (player.visible) ? Protobuf.CharacterState.NullCharacterState : Protobuf.CharacterState.Invisible, // 待修改,Character.cs中没有InvisibleTime - InvisibleTime = (double)player.InvisibleTime, - HealingState = (player.healing) ? Protobuf.CharacterState.HEALING : Protobuf.CharacterState.NULL_CHARACTER_STATE, - HealingTime = (double)player.HealingTime, - BerserkState = (player.crazyman) ? Protobuf.CharacterState.BERSERK : Protobuf.CharacterState.NULL_CHARACTER_STATE, - BerserkTime = (double)CrazyManTime, - BurnedState = (player.burned) ? Protobuf.CharacterState.BURNED : Protobuf.CharacterState.NULL_CHARACTER_STATE, - BurnedTime = (double)BurnedTime, - DeceasedState = (player.deceased) ? Protobuf.CharacterState.DECEASED : Protobuf.CharacterState.NULL_CHARACTER_STATE, + // InvisibleTime = (double)player.InvisibleTime, + // 貌似不需要治疗时间 + // HealingState = (player.healing) ? Protobuf.CharacterState.Healing : Protobuf.CharacterState.NullCharacterState, + // HealingTime = (double)player.HealingTime, + // 待修改,crazyman不知道是buff还是药水 + // BerserkState = (player.CrazyManNum == 1) ? Protobuf.CharacterState.Berserk : Protobuf.CharacterState.NullCharacterState, + // BerserkTime = CrazyManTime, + BurnedState = (player.burned) ? Protobuf.CharacterState.Burned : Protobuf.CharacterState.NullCharacterState, + BurnedTime = BurnedTime, + HarmCut = player.HarmCut, + HarmCutTime = player.HarmCutTime, + DeceasedState = (player.deceased) ? Protobuf.CharacterState.Deceased : Protobuf.CharacterState.NullCharacterState, + + CharacterPassiveState = Transformation.CharacterStateToProto(player.CharacterState2), X = player.Position.x, Y = player.Position.y, @@ -105,22 +110,37 @@ namespace Server CommonAttack = (int)player.AttackPower, // 待修改,Character.cs中没有CommonAttackCD - CommonAttackCD = (double)player.AttackCD, + CommonAttackCD = 1 / player.ATKFrequency, CommonAttackRange = (int)player.AttackSize, - SkillAttackCD = (double)player.skillCD, + SkillAttackCD = player.skillCD, EconomyDepletion = player.EconomyDepletion, KillScore = (int)player.GetCost(), HP = (int)player.HP, - // 待修改,Character.cs中没有区分ShieldEquipment\ShoesEquipment类型 - Shield = player.Shield, - Shoes = player.Shoes, + // 待修改,Shield要分两类 + ShieldEquipment = (int)player.Shield, // 加成值,只包含护盾装备 + ShoesEquipment = (int)player.Shoes, // 加成值 + ShoesEquipmentTime = player.QuickStepTime, // 包含所有速度加成的时间 + // 待修改,Transformation缺东西 + // PurificationEquipment = (player.Purified) ? Protobuf.EquipmentType.PurificationPotion : Protobuf.PurificationEquipmentType.NullEquipmentType, + PurificationEquipmentTime = player.PurifiedTime, + // 待修改,Character.cs没有隐身时间,没有狂暴药水 + // InvisibilityEquipment = player.Invisibility, + // InvisibilityEquipmentTime = player.InsvisibilityTime, + // Berserk = player.CrazyManNum, // 数值,1~3表示等级,0表示没有 + // BerserkTime = player.CrazyManTime, - // - //AttackBuff = + // 待修改,Transformation缺东西 + // AttackBuff = (player.CrazyManNum == 1) ? Protobuf.CharacterBuffType.AttackBuff1 : (player.CrazyManNum == 2) ? Protobuf.CharacterBuffType.AttackBuff2 : (player.CrazyManNum == 3) ? Protobuf.CharacterBuffType.AttackBuff3 : Protobuf.CharacterBuffType.NullAttackBuff, + AttackBuffTime = player.CrazyManTime, + // 待修改 + SpeedBuffTime = player.QuickStepTime, + // VisionBuff = (player.CanSeeAll) ? Protobuf.CharacterBuffType.VisionBuff : Protobuf.CharacterBuffType.NullCharacterBuffType, + VisionBuffTime = player.WideViewTime, + } }; return msg; From cbd64032c914eb53ce4224778bbb7acb75798225 Mon Sep 17 00:00:00 2001 From: SERENCH <3117094826@qq.com> Date: Sun, 30 Mar 2025 23:37:46 +0800 Subject: [PATCH 20/34] =?UTF-8?q?fix:=20:ambulance:=20proto=E4=B8=ADlong?= =?UTF-8?q?=E6=8D=A2int64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependency/proto/Message2Clients.proto | 24 ++++++++++++------------ logic/Server/CopyInfo.cs | 1 - 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/dependency/proto/Message2Clients.proto b/dependency/proto/Message2Clients.proto index 0105719..15501b5 100644 --- a/dependency/proto/Message2Clients.proto +++ b/dependency/proto/Message2Clients.proto @@ -25,21 +25,21 @@ message MessageOfCharacter // 被动状态 CharacterState blind_state = 6; - long blind_time = 7; + int64 blind_time = 7; // CharacterState knockback_state = 8; // double knockback_time = 9; CharacterState stunned_state = 8; - long stunned_time = 9; + int64 stunned_time = 9; CharacterState invisible_state = 10; - long invisible_time = 11; + int64 invisible_time = 11; // CharacterState healing_state = 14; // long healing_time = 15; // CharacterState berserk_state = 16; // long berserk_time = 17; CharacterState burned_state = 12; - long burned_time = 13; + int64 burned_time = 13; double harm_cut = 14; - long harm_cut_time = 15; + int64 harm_cut_time = 15; CharacterState deceased_state = 16; // 死亡状态不需要持续时间 CharacterState character_passive_state = 17; // 最新被动状态状态 @@ -52,10 +52,10 @@ message MessageOfCharacter int32 view_range = 22; int32 common_attack = 23; - long common_attack_cd = 24; + int64 common_attack_cd = 24; int32 common_attack_range = 25; - long skill_attack_cd = 26; + int64 skill_attack_cd = 26; int32 economy_depletion = 27; // 经济资源消耗 int32 kill_score = 28; // 击杀得分 @@ -66,9 +66,9 @@ message MessageOfCharacter int32 shield_equipment = 30; // 护盾剩余值,只含装备 // EquipmentType shoes_equipment = ; // 鞋子装备 int32 shoes_equipment = 31; - long shoes_equipment_time = 32; + int64 shoes_equipment_time = 32; // EquipmentType purification_equipment = ; - long purification_equipment_time = 33; + int64 purification_equipment_time = 33; // EquipmentType invisibility_equipment = ; // long invisibility_equipment_time = ; // EquipmentType berserk_equipment = ; @@ -76,11 +76,11 @@ message MessageOfCharacter // 加成资源的Buff // CharacterBuffType attack_buff = 39; - long attack_buff_time = 34; + int64 attack_buff_time = 34; // CharacterBuffType speed_buff = 43; - long speed_buff_time = 35; + int64 speed_buff_time = 35; // CharacterBuffType vision_buff = 45; - long vision_buff_time = 36; + int64 vision_buff_time = 36; } message MessageOfBarracks diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 8b29a4b..120eb48 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -140,7 +140,6 @@ namespace Server SpeedBuffTime = player.QuickStepTime, // VisionBuff = (player.CanSeeAll) ? Protobuf.CharacterBuffType.VisionBuff : Protobuf.CharacterBuffType.NullCharacterBuffType, VisionBuffTime = player.WideViewTime, - } }; return msg; From 6d72fe968e1ec5613fb1368a4aa6b5bad978d89e Mon Sep 17 00:00:00 2001 From: SERENCH <3117094826@qq.com> Date: Sun, 30 Mar 2025 23:44:40 +0800 Subject: [PATCH 21/34] =?UTF-8?q?fix:=20:bug:=20=E5=A4=8D=E5=8E=9FHealing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependency/proto/MessageType.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependency/proto/MessageType.proto b/dependency/proto/MessageType.proto index 3b57867..d2e7bcc 100644 --- a/dependency/proto/MessageType.proto +++ b/dependency/proto/MessageType.proto @@ -65,7 +65,7 @@ enum CharacterState // 角色状态 KNOCKED_BACK = 8; STUNNED = 9; INVISIBLE = 10; - // HEALING = 11; + HEALING = 11; BERSERK = 12; BURNED = 13; // HARM_CUT = 14; From 364cc5f4395403d64c2140ae652327fdb859dab9 Mon Sep 17 00:00:00 2001 From: SERENCH <3117094826@qq.com> Date: Sun, 30 Mar 2025 23:54:43 +0800 Subject: [PATCH 22/34] =?UTF-8?q?fix:=20:bug:=20=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Server/CopyInfo.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 120eb48..59bd278 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -82,7 +82,7 @@ namespace Server // 待修改,Character.cs中没有knockedback // KnockbackState = (player.knockedback) ? Protobuf.CharacterState.KnockedBack : Protobuf.CharacterState.NullCharacterState, // KnockbackTime = player.KnockedBackTime, - StunnedState = (player.stunned) ? Protobuf.CharacterState.STUNNED : Protobuf.CharacterState.NullCharacterState, + StunnedState = (player.stunned) ? Protobuf.CharacterState.Stunned : Protobuf.CharacterState.NullCharacterState, StunnedTime = player.StunnedTime, InvisibleState = (player.visible) ? Protobuf.CharacterState.NullCharacterState : Protobuf.CharacterState.Invisible, // 待修改,Character.cs中没有InvisibleTime @@ -94,10 +94,10 @@ namespace Server // BerserkState = (player.CrazyManNum == 1) ? Protobuf.CharacterState.Berserk : Protobuf.CharacterState.NullCharacterState, // BerserkTime = CrazyManTime, BurnedState = (player.burned) ? Protobuf.CharacterState.Burned : Protobuf.CharacterState.NullCharacterState, - BurnedTime = BurnedTime, + BurnedTime = player.BurnedTime, HarmCut = player.HarmCut, HarmCutTime = player.HarmCutTime, - DeceasedState = (player.deceased) ? Protobuf.CharacterState.Deceased : Protobuf.CharacterState.NullCharacterState, + DeceasedState = (player.characterState2 == CharacterState.DECEASED) ? Protobuf.CharacterState.Deceased : Protobuf.CharacterState.NullCharacterState, CharacterPassiveState = Transformation.CharacterStateToProto(player.CharacterState2), @@ -110,15 +110,15 @@ namespace Server CommonAttack = (int)player.AttackPower, // 待修改,Character.cs中没有CommonAttackCD - CommonAttackCD = 1 / player.ATKFrequency, + CommonAttackCd = 1 / player.ATKFrequency, CommonAttackRange = (int)player.AttackSize, - SkillAttackCD = player.skillCD, + SkillAttackCd = player.skillCD, EconomyDepletion = player.EconomyDepletion, KillScore = (int)player.GetCost(), - HP = (int)player.HP, + Hp = (int)player.HP, // 待修改,Shield要分两类 ShieldEquipment = (int)player.Shield, // 加成值,只包含护盾装备 From 50eab6fdcf3286fbbc5f9ce7ca7d7a24adbba27f Mon Sep 17 00:00:00 2001 From: SERENCH <3117094826@qq.com> Date: Mon, 31 Mar 2025 00:01:48 +0800 Subject: [PATCH 23/34] =?UTF-8?q?fix:=20:bug:=20=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependency/proto/Message2Clients.proto | 2 +- logic/Server/CopyInfo.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dependency/proto/Message2Clients.proto b/dependency/proto/Message2Clients.proto index 15501b5..0571e08 100644 --- a/dependency/proto/Message2Clients.proto +++ b/dependency/proto/Message2Clients.proto @@ -40,7 +40,7 @@ message MessageOfCharacter int64 burned_time = 13; double harm_cut = 14; int64 harm_cut_time = 15; - CharacterState deceased_state = 16; // 死亡状态不需要持续时间 + // CharacterState deceased_state = 16; // 死亡状态不需要持续时间 CharacterState character_passive_state = 17; // 最新被动状态状态 diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 59bd278..ee14cc4 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -97,7 +97,7 @@ namespace Server BurnedTime = player.BurnedTime, HarmCut = player.HarmCut, HarmCutTime = player.HarmCutTime, - DeceasedState = (player.characterState2 == CharacterState.DECEASED) ? Protobuf.CharacterState.Deceased : Protobuf.CharacterState.NullCharacterState, + DeceasedState = (player.CharacterState2 == Preparation.Utility.CharacterState.DECEASED) ? Protobuf.CharacterState.Deceased : Protobuf.CharacterState.NullCharacterState, CharacterPassiveState = Transformation.CharacterStateToProto(player.CharacterState2), @@ -110,7 +110,7 @@ namespace Server CommonAttack = (int)player.AttackPower, // 待修改,Character.cs中没有CommonAttackCD - CommonAttackCd = 1 / player.ATKFrequency, + CommonAttackCd = (int)1 / player.ATKFrequency, CommonAttackRange = (int)player.AttackSize, SkillAttackCd = player.skillCD, From eac8ee47d71d9efb78281dede3efd452f75b3af4 Mon Sep 17 00:00:00 2001 From: SERENCH <3117094826@qq.com> Date: Mon, 31 Mar 2025 00:06:26 +0800 Subject: [PATCH 24/34] fix: :bug: --- dependency/proto/Message2Clients.proto | 2 +- logic/Server/CopyInfo.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dependency/proto/Message2Clients.proto b/dependency/proto/Message2Clients.proto index 0571e08..15501b5 100644 --- a/dependency/proto/Message2Clients.proto +++ b/dependency/proto/Message2Clients.proto @@ -40,7 +40,7 @@ message MessageOfCharacter int64 burned_time = 13; double harm_cut = 14; int64 harm_cut_time = 15; - // CharacterState deceased_state = 16; // 死亡状态不需要持续时间 + CharacterState deceased_state = 16; // 死亡状态不需要持续时间 CharacterState character_passive_state = 17; // 最新被动状态状态 diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index ee14cc4..b32524c 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -110,7 +110,7 @@ namespace Server CommonAttack = (int)player.AttackPower, // 待修改,Character.cs中没有CommonAttackCD - CommonAttackCd = (int)1 / player.ATKFrequency, + CommonAttackCd = (int)(1 / player.ATKFrequency), CommonAttackRange = (int)player.AttackSize, SkillAttackCd = player.skillCD, From 64c6f13de04ce95d718003379e17a2bb1956cd50 Mon Sep 17 00:00:00 2001 From: hhzzff <2070620600@qq.com> Date: Mon, 31 Mar 2025 20:37:26 +0800 Subject: [PATCH 25/34] test: --- .editorconfig | 20 +++++++++++++------- logic/Server/Server.csproj | 2 -- logic/logic.sln | 5 +++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.editorconfig b/.editorconfig index 88d9cbf..c4945ea 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,9 +1,15 @@ -root = true - [*.cs] -dotnet_diagnostic.CA1707.severity = error -dotnet_code_quality.CA1707.api_surface = all -dotnet_diagnostic.CA1712.severity = error -dotnet_diagnostic.CA1715.severity = error +# öٳԱҪʹ PascalCase +dotnet_naming_rule.enum_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.enum_members_should_be_pascal_case.symbols = enum_members +dotnet_naming_rule.enum_members_should_be_pascal_case.style = pascal_caser -dotnet_diagnostic.CA1801.severity = warning \ No newline at end of file +# ţ const ֶΣͨöٳԱᱻʶΪ const ֶΣ +dotnet_naming_symbols.enum_members.applicable_kinds = field +dotnet_naming_symbols.enum_members.required_modifiers = const + +# PascalCase +dotnet_naming_style.pascal_caser.capitalization = pascal_case +dotnet_naming_style.pascal_caser.required_prefix = +dotnet_naming_style.pascal_caser.required_suffix = +dotnet_naming_style.pascal_caser.word_separator = \ No newline at end of file diff --git a/logic/Server/Server.csproj b/logic/Server/Server.csproj index ca06612..61ee78c 100644 --- a/logic/Server/Server.csproj +++ b/logic/Server/Server.csproj @@ -5,8 +5,6 @@ net8.0 enable enable - true - latest
diff --git a/logic/logic.sln b/logic/logic.sln index 58f37f6..5d36585 100644 --- a/logic/logic.sln +++ b/logic/logic.sln @@ -17,6 +17,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Playback", "PlayBack\Playba EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Proto", "..\dependency\proto\Proto.csproj", "{E8E71849-1F1C-422E-B5F2-38483D23F6BD}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决方案项", "{11DF0425-CEB7-43A8-8626-B42A61BDF972}" + ProjectSection(SolutionItems) = preProject + ..\.editorconfig = ..\.editorconfig + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU From 19fcb6961902bbf94e0ce082e9b45835567a7248 Mon Sep 17 00:00:00 2001 From: Henry <2280825018@qq.com> Date: Mon, 31 Mar 2025 20:39:54 +0800 Subject: [PATCH 26/34] feat: CommonAttack --- logic/GameClass/GameObj/Character.cs | 2 ++ logic/Gaming/AttackManager.cs | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/logic/GameClass/GameObj/Character.cs b/logic/GameClass/GameObj/Character.cs index 2b0027b..bf0b7d0 100644 --- a/logic/GameClass/GameObj/Character.cs +++ b/logic/GameClass/GameObj/Character.cs @@ -30,6 +30,7 @@ public class Character : Movable, ICharacter public bool blind { get; set; } = false; public double HarmCut = 0.0;//伤害减免,该值范围为0-1,为比例减伤。 public double ATKFrequency = 1.0;//攻击频率,即每秒攻击次数。 + public long LastAttackTime = long.MaxValue; public long TrapTime = long.MaxValue; public long CageTime = long.MaxValue; public long BurnedTime = long.MaxValue; @@ -305,6 +306,7 @@ public class Character : Movable, ICharacter case EquipmentType.INVISIBILITY_POTION: { SetCharacterState(CharacterState1, CharacterState.INVISIBLE);//此处缺少时间限制 + visible = false; SubMoney(EquipmentFactory.FindCost(equiptype)); return true; } diff --git a/logic/Gaming/AttackManager.cs b/logic/Gaming/AttackManager.cs index 8069f98..42b40b5 100644 --- a/logic/Gaming/AttackManager.cs +++ b/logic/Gaming/AttackManager.cs @@ -58,7 +58,11 @@ namespace Gaming { return false; } + long nowtime = Environment.TickCount64; + if (nowtime - character.LastAttackTime < 1 / (character.ATKFrequency * 1000)) + return false; characterManager.BeAttacked(gameobj, character); + character.LastAttackTime = nowtime; if (character.CharacterState2 == CharacterState.INVISIBLE || character.visible == false) { character.visible = true; @@ -80,7 +84,11 @@ namespace Gaming { return false; } + long nowtime = Environment.TickCount64; + if (nowtime - character.LastAttackTime < 1 / (character.ATKFrequency * 1000)) + return false; ARManager.BeAttacked(gameobj, character); + character.LastAttackTime = nowtime; if (character.CharacterState2 == CharacterState.INVISIBLE) character.SetCharacterState(character.CharacterState1, CharacterState.NULL_CHARACTER_STATE);//破隐 return true; @@ -99,7 +107,11 @@ namespace Gaming { return false; } + long nowtime = Environment.TickCount64; + if (nowtime - character.LastAttackTime < 1 / (character.ATKFrequency * 1000)) + return false; gameobj.BeAttacked(character); + character.LastAttackTime = nowtime; if (character.CharacterState2 == CharacterState.INVISIBLE) character.SetCharacterState(character.CharacterState1, CharacterState.NULL_CHARACTER_STATE);//破隐 return true; From bf6f45e17e14e24e40c046a6a7e2037e434e0690 Mon Sep 17 00:00:00 2001 From: yihan-wa <1572542354@qq.com> Date: Mon, 31 Mar 2025 20:57:58 +0800 Subject: [PATCH 27/34] feat: :sparkles: --- CAPI/python/DebugAPI.py | 324 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 CAPI/python/DebugAPI.py diff --git a/CAPI/python/DebugAPI.py b/CAPI/python/DebugAPI.py new file mode 100644 index 0000000..00d654f --- /dev/null +++ b/CAPI/python/DebugAPI.py @@ -0,0 +1,324 @@ +import logging +import os +import datetime +from concurrent.futures import ThreadPoolExecutor, Future +from typing import List, Tuple, Optional, Dict, Any, Union +import math +from PyAPI.structures import PlaceType, ConstructionType, CharacterType, GameInfo, Character, ConstructionState, EconomyResourceState, AdditionResourceState +from PyAPI.Interface import ILogic, IAI + +PI = math.pi + +class CharacterDebugAPI: + def __init__(self, logic: ILogic, file: bool, print: bool, warnOnly: bool, CharacterID: int): + self.logic = logic + self.playerID = CharacterID + self.startPoint = datetime.datetime.now() + self.__pool = ThreadPoolExecutor(20) + self.logger = logging.getLogger(f"api {self.playerID}") + self.logger.setLevel(logging.DEBUG) + + formatter = logging.Formattter( + f"[api {self.playerID}] [%(asctime)s.%(msecs)03d] [%(levelname)s] %(message)s", + "%H:%M:%S" + ) + + if not os.path.exists("logs"): + os.makedirs("logs") + + fileHandler = logging.FileHandler(f"logs/api-{self.playerID}-log.txt", mode="w+", encoding="utf-8") + printHandler = logging.StreamHandler() + + fileHandler.setFormatter(formatter) + printHandler.setFormatter(formatter) + + fileHandler.setLevel(logging.TRACE if file else logging.OFF) + print_level = logging.WARN if warnOnly else (logging.INFO if print else logging.OFF) + printHandler.setLevel(print_level) + + self.logger.addHandler(fileHandler) + self.logger.addHandler(printHandler) + self.logger.propagate = False + + def StartTimer(self) -> None: + self.startPoint = datetime.datetime.now() + self.logger.info("=== AI.play() ===") + self.logger.info(f"StartTimer: {self.startPoint.strftime('%H:%M:%S')}") + + def EndTimer(self) -> None: + elapsed = (datetime.datetime.now() - self.startPoint).total_seconds() * 1000 + self.logger.info(f"Time elapsed: {elapsed:.2f}ms") + + def GetFrameCount(self) -> int: + return self.logic.GetCounter() + + def SendTextMessage(self, toID: int, message: str) -> Future[bool]: + self.logger.info(f"SendTextMessage: toID={toID}, message={message}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logSend, toID, message, False) + + def SendBinaryMessage(self, toID: int, message: bytes) -> Future[bool]: + self.logger.info(f"SendBinaryMessage: toID={toID}, message={message}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logSend, toID, message, True) + + def __logSend(self, toID: int, message: Union[str, bytes], isBinary: bool) -> bool: + result = self.logic.Send(toID, message, isBinary) + if not result: + self.logger.warning(f"Send failed at {self.__GetTime()}ms") + return result + + def HaveMessage(self) -> bool: + self.logger.info(f"HaveMessage: called at {self.__GetTime()}ms") + result = self.logic.HaveMessage() + if not result: + self.logger.warning(f"HaveMessage failed at {self.__GetTime()}ms") + return result + + def GetMessage(self) -> Tuple[int, str]: + self.logger.info(f"GetMessage: called at {self.__GetTime()}ms") + result = self.logic.GetMessage() + if result[0] == -1: + self.logger.warning(f"GetMessage failed at {self.__GetTime()}ms") + return result + + def Wait(self) -> bool: + self.logger.info(f"Wait: called at {self.__GetTime()}ms") + return False if self.logic.GetCounter() == -1 else self.logic.WaitThread() + + def Move(self, timeInMilliseconds: int, angleInRadian: float) -> Future[bool]: + self.logger.info(f"Move: time={timeInMilliseconds}ms, angle={angleInRadian}rad, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logMove, timeInMilliseconds, angleInRadian) + + def __logMove(self, time: int, angle: float) -> bool: + result = self.logic.Move(time, angle) + if not result: + self.logger.warning(f"Move failed at {self.__GetTime()}ms") + return result + + def MoveDown(self, time: int) -> Future[bool]: + return self.Move(time, 0) + + def MoveRight(self, time: int) -> Future[bool]: + return self.Move(time, PI * 0.5) + + def MoveUp(self, time: int) -> Future[bool]: + return self.Move(time, PI) + + def MoveLeft(self, time: int) -> Future[bool]: + return self.Move(time, PI * 1.5) + + def Skill_Attack(self, angleInRadian: float) -> Future[bool]: + self.logger.info(f"Skill_Attack: angle={angleInRadian}rad, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logSkillAttack, angleInRadian) + + def __logSkillAttack(self, angle: float) -> bool: + result = self.logic.SkillAttack(angle) + if not result: + self.logger.warning(f"Skill_Attack failed at {self.__GetTime()}ms") + return result + + def Common_Attack(self, angleInRadian: float) -> Future[bool]: + self.logger.info(f"Common_Attack: angle={angleInRadian}rad, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logCommonAttack, angleInRadian) + + def __logCommonAttack(self, angle: float) -> bool: + result = self.logic.CommonAttack(angle) + if not result: + self.logger.warning(f"Common_Attack failed at {self.__GetTime()}ms") + return result + + def Recover(self, recover: int) -> Future[bool]: + self.logger.info(f"Recover: {recover}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logRecover, recover) + + def __logRecover(self, recover: int) -> bool: + result = self.logic.Recover(recover) + if not result: + self.logger.warning(f"Recover failed at {self.__GetTime()}ms") + return result + + def Harvest(self) -> Future[bool]: + self.logger.info(f"Harvest: called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logHarvest) + + def __logHarvest(self) -> bool: + result = self.logic.Harvest() + if not result: + self.logger.warning(f"Harvest failed at {self.__GetTime()}ms") + return result + + def Rebuild(self, constructionType: ConstructionType) -> Future[bool]: + self.logger.info(f"Rebuild: {constructionType}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logRebuild, constructionType) + + def __logRebuild(self, ct: ConstructionType) -> bool: + result = self.logic.Rebuild(ct) + if not result: + self.logger.warning(f"Rebuild failed at {self.__GetTime()}ms") + return result + + def Construct(self, constructionType: ConstructionType) -> Future[bool]: + self.logger.info(f"Construct: {constructionType}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logConstruct, constructionType) + + def __logConstruct(self, ct: ConstructionType) -> bool: + result = self.logic.Construct(ct) + if not result: + self.logger.warning(f"Construct failed at {self.__GetTime()}ms") + return result + + def GetCharacters(self) -> List[Character]: + self.logger.info(f"GetCharacters: called at {self.__GetTime()}ms") + result = self.logic.GetCharacters() + if not result: + self.logger.warning(f"GetCharacters failed at {self.__GetTime()}ms") + return result + + def GetEnemyCharacters(self) -> List[Character]: + self.logger.info(f"GetEnemyCharacters: called at {self.__GetTime()}ms") + result = self.logic.GetEnemyCharacters() + if not result: + self.logger.warning(f"GetEnemyCharacters failed at {self.__GetTime()}ms") + return result + + def GetFullMap(self) -> List[List[PlaceType]]: + self.logger.info(f"GetFullMap: called at {self.__GetTime()}ms") + result = self.logic.GetFullMap() + if not result: + self.logger.warning(f"GetFullMap failed at {self.__GetTime()}ms") + return result + + def GetGameInfo(self) -> GameInfo: + self.logger.info(f"GetGameInfo: called at {self.__GetTime()}ms") + result = self.logic.GetGameInfo() + if not result: + self.logger.warning(f"GetGameInfo failed at {self.__GetTime()}ms") + return result + + def GetPlaceType(self, cellX: int, cellY: int) -> Optional[PlaceType]: + self.logger.info(f"GetPlaceType: cellX={cellX}, cellY={cellY}, called at {self.__GetTime()}ms") + result = self.logic.GetPlaceType(cellX, cellY) + if not result: + self.logger.warning(f"GetPlaceType failed at {self.__GetTime()}ms") + return result + + def GetEnconomyResourceState(self, cellX: int, cellY: int) -> Optional[EconomyResourceState]: + self.logger.info(f"GetEnconomyResourceState: cellX={cellX}, cellY={cellY}, called at {self.__GetTime()}ms") + result = self.logic.GetEnconomyResourceState(cellX, cellY) + if not result: + self.logger.warning(f"GetEnconomyResourceState failed at {self.__GetTime()}ms") + return result + + def GetAdditionResourceState(self, cellX: int, cellY: int) -> Optional[AdditionResourceState]: + self.logger.info(f"GetAdditionResourceState: cellX={cellX}, cellY={cellY}, called at {self.__GetTime()}ms") + result = self.logic.GetAdditionResourceState(cellX, cellY) + if not result: + self.logger.warning(f"GetAdditionResourceState failed at {self.__GetTime()}ms") + return result + + def GetConstructionState(self, cellX: int, cellY: int) -> Optional[ConstructionState]: + self.logger.info(f"GetConstructionState: cellX={cellX}, cellY={cellY}, called at {self.__GetTime()}ms") + result = self.logic.GetConstructionState(cellX, cellY) + if not result: + self.logger.warning(f"GetConstructionState failed at {self.__GetTime()}ms") + return result + + def GetPlayerGUIDs(self) -> List[int]: + self.logger.info(f"GetPlayerGUIDs: called at {self.__GetTime()}ms") + result = self.logic.GetPlayerGUIDs() + if not result: + self.logger.warning(f"GetPlayerGUIDs failed at {self.__GetTime()}ms") + return result + + def GetEnergy(self) -> int: + self.logger.info(f"GetEnergy: called at {self.__GetTime()}ms") + result = self.logic.GetEnergy() + if result == -1: + self.logger.warning(f"GetEnergy failed at {self.__GetTime()}ms") + return result + + def GetScore(self) -> int: + self.logger.info(f"GetScore: called at {self.__GetTime()}ms") + result = self.logic.GetScore() + if result == -1: + self.logger.warning(f"GetScore failed at {self.__GetTime()}ms") + return result + + def GetSelfInfo(self) -> Character: + self.logger.info(f"GetSelfInfo: called at {self.__GetTime()}ms") + result = self.logic.GetSelfInfo() + if not result: + self.logger.warning(f"GetSelfInfo failed at {self.__GetTime()}ms") + return result + + def Print(self, string: str) -> None: + self.logger.info(string) + + def PrintCharacter(self) -> None: + for char in self.logic.GetCharacters(): + self.logger.info("******Character Info******") + self.logger.info(f"type={char.characterType}, ID={char.characterID}, GUID={char.guid}, x={char.x}, y={char.y}") + self.logger.info(f"state={char.characterState}, speed={char.speed}, view={char.viewRange}, facing={char.facingDirection}") + self.logger.info("**************************") + + def PrintSelfInfo(self) -> None: + selfInfo = self.GetSelfInfo() + self.logger.info("******Self Info******") + self.logger.info(f"type={selfInfo.characterType}, ID={selfInfo.characterID}, GUID={selfInfo.guid}") + self.logger.info(f"x={selfInfo.x}, y={selfInfo.y}, state={selfInfo.characterState}") + self.logger.info("*********************") + + def EndAllAction(self) -> Future[bool]: + self.logger.info(f"EndAllAction: called at {self.__GetTime()}ms") + return self.__pool.submit(self.logic.EndAllAction) + + def __GetTime(self) -> float: + return (datetime.datetime.now() - self.startPoint).total_seconds() * 1000 + + def Play(self, ai: IAI) -> None: + ai.play(self) + +class TeamDebugAPI(CharacterDebugAPI): + def __init__(self, logic: ILogic, file: bool, print: bool, warnOnly: bool, playerID: int): + super().__init__(logic, file, print, warnOnly, playerID) + # 覆盖父类logger配置 + self.logger.handlers.clear() + formatter = logging.Formatter( + f"[api{self.playerID}] [%(asctime)s.%(msecs)03d] [%(levelname)s] %(message)s", + "%H:%M:%S" + ) + fileHandler = logging.FileHandler(f"logs/api-{self.playerID}-log.txt", mode="w+", encoding="utf-8") + printHandler = logging.StreamHandler() + fileHandler.setFormatter(formatter) + printHandler.setFormatter(formatter) + fileHandler.setLevel(logging.TRACE if file else logging.OFF) + print_level = logging.WARN if warnOnly else (logging.INFO if print else logging.OFF) + printHandler.setLevel(print_level) + self.logger.addHandler(fileHandler) + self.logger.addHandler(printHandler) + + def InstallEquipment(self, playerID: int, equipmentType: Any) -> Future[bool]: + self.logger.info(f"InstallEquipment: playerID={playerID}, type={equipmentType}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logInstall, playerID, equipmentType) + + def __logInstall(self, pid: int, et: Any) -> bool: + result = self.logic.InstallEquipment(pid, et) + if not result: + self.logger.warning(f"InstallEquipment failed at {self.__GetTime()}ms") + return result + + def BuildCharacter(self, characterType: CharacterType, birthIndex: int) -> Future[bool]: + self.logger.info(f"BuildCharacter: type={characterType}, index={birthIndex}, called at {self.__GetTime()}ms") + return self.__pool.submit(self.__logBuild, characterType, birthIndex) + + def __logBuild(self, ct: CharacterType, bi: int) -> bool: + result = self.logic.BuildCharacter(ct, bi) + if not result: + self.logger.warning(f"BuildCharacter failed at {self.__GetTime()}ms") + return result + + def PrintSelfInfo(self) -> None: + selfInfo = self.logic.GetSelfInfo() + self.logger.info("******Team Info******") + self.logger.info(f"teamID={selfInfo.teamID}, playerID={selfInfo.playerID}") + self.logger.info(f"score={selfInfo.score}, energy={selfInfo.energy}") + self.logger.info("*********************") \ No newline at end of file From 8efa30cd38dc81d88df0319d8da7289f2ae40e91 Mon Sep 17 00:00:00 2001 From: Henry <2280825018@qq.com> Date: Mon, 31 Mar 2025 20:58:51 +0800 Subject: [PATCH 28/34] feat: ClientTest --- logic/ClientTest/ClientTest.csproj | 20 ++++++++++++++ logic/ClientTest/Program.cs | 44 ++++++++++++++++++++++++++++++ logic/logic.sln | 6 ++++ 3 files changed, 70 insertions(+) create mode 100644 logic/ClientTest/ClientTest.csproj create mode 100644 logic/ClientTest/Program.cs diff --git a/logic/ClientTest/ClientTest.csproj b/logic/ClientTest/ClientTest.csproj new file mode 100644 index 0000000..ddb4a42 --- /dev/null +++ b/logic/ClientTest/ClientTest.csproj @@ -0,0 +1,20 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + + + + + + + diff --git a/logic/ClientTest/Program.cs b/logic/ClientTest/Program.cs new file mode 100644 index 0000000..c137a10 --- /dev/null +++ b/logic/ClientTest/Program.cs @@ -0,0 +1,44 @@ +using Grpc.Core; +using Protobuf; + +namespace ClientTest +{ + public class Program + { + public static Task Main(string[] args) + { + Thread.Sleep(3000); + Channel channel = new("127.0.0.1:8888", ChannelCredentials.Insecure); + var client = new AvailableService.AvailableServiceClient(channel); + CharacterMsg playerInfo = new() + { + CharacterId = 0, + TeamId = 0, + CharacterType = CharacterType.TangSeng + }; + var call = client.AddCharacter(playerInfo); + MoveMsg moveMsg = new() + { + CharacterId = 0, + TeamId = 0, + TimeInMilliseconds = 100, + Angle = 0 + }; + int tot = 0; + /*while (call.ResponseStream.MoveNext().Result) + { + var currentGameInfo = call.ResponseStream.Current; + if (currentGameInfo.GameState == GameState.GameStart) break; + }*/ + while (true) + { + Thread.Sleep(50); + MoveRes boolRes = client.Move(moveMsg); + //if (boolRes.ActSuccess == false) break; + tot++; + if (tot % 10 == 0) moveMsg.Angle += 1; + } + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/logic/logic.sln b/logic/logic.sln index 58f37f6..8cf9332 100644 --- a/logic/logic.sln +++ b/logic/logic.sln @@ -17,6 +17,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Playback", "PlayBack\Playba EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Proto", "..\dependency\proto\Proto.csproj", "{E8E71849-1F1C-422E-B5F2-38483D23F6BD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientTest", "ClientTest\ClientTest.csproj", "{240D57BD-671E-4A84-9A26-82150229B98E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -51,6 +53,10 @@ Global {E8E71849-1F1C-422E-B5F2-38483D23F6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU {E8E71849-1F1C-422E-B5F2-38483D23F6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU {E8E71849-1F1C-422E-B5F2-38483D23F6BD}.Release|Any CPU.Build.0 = Release|Any CPU + {240D57BD-671E-4A84-9A26-82150229B98E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {240D57BD-671E-4A84-9A26-82150229B98E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {240D57BD-671E-4A84-9A26-82150229B98E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {240D57BD-671E-4A84-9A26-82150229B98E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 8eed881e267c08ff77e32e73d620da99314bc1f0 Mon Sep 17 00:00:00 2001 From: yihan-wa <1572542354@qq.com> Date: Mon, 31 Mar 2025 21:05:45 +0800 Subject: [PATCH 29/34] =?UTF-8?q?=E4=BF=AE=E6=94=B9DebugAPI.py=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAPI/python/DebugAPI.py | 1 + 1 file changed, 1 insertion(+) diff --git a/CAPI/python/DebugAPI.py b/CAPI/python/DebugAPI.py index 00d654f..82f39a9 100644 --- a/CAPI/python/DebugAPI.py +++ b/CAPI/python/DebugAPI.py @@ -1,3 +1,4 @@ +import PyAPI.structures as THUAI8 import logging import os import datetime From 24765bd696803ba19536444b3693a92a324a5429 Mon Sep 17 00:00:00 2001 From: yihan-wa <1572542354@qq.com> Date: Mon, 31 Mar 2025 21:25:03 +0800 Subject: [PATCH 30/34] feat: --- CAPI/python/AI.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 CAPI/python/AI.py diff --git a/CAPI/python/AI.py b/CAPI/python/AI.py new file mode 100644 index 0000000..7e4ed7c --- /dev/null +++ b/CAPI/python/AI.py @@ -0,0 +1,55 @@ +import PyAPI.structures as THUAI8 +from PyAPI.Interface import ICharacterAPI, ITeamAPI, IAI +from PyAPI.utils import AssistFunction +from typing import Union, Final, cast, List +from PyAPI.constants import Constants +import queue +import time + +class Setting: + # 为假则play()期间确保游戏状态不更新,为真则只保证游戏状态在调用相关方法时不更新,大致一帧更新一次 + @staticmethod + def Asynchronous() -> bool: + return False + + @staticmethod + def ShipTypes() -> List[THUAI8.CharacterType]: + return [ + THUAI8.CharacterType.Monk, + THUAI8.CharacterType.MonkeyKing, + THUAI8.CharacterType.Pigsy, + THUAI8.CharacterType.ShaWujing, + THUAI8.CharacterType.Whitedragonhorse, + THUAI8.CharacterType.JiuTouYuanSheng, + THUAI8.CharacterType.Honghaier, + THUAI8.CharacterType.Gyuumao, + THUAI8.CharacterType.Princess_Iron_Fan, + THUAI8.CharacterType.Spider, + ] +numOfGridPerCell: Final[int] = 1000 + +class AI(IAI): + def __init__(self, pID: int): + self.__playerID = pID + + def ShipPlay(self, api: IShipAPI) -> None: + # 公共操作 + if self.__playerID == 1: + # player1的操作 + return + elif self.__playerID == 2: + # player2的操作 + return + elif self.__playerID == 3: + # player3的操作 + return + elif self.__playerID == 4: + # player4的操作 + return + elif self.__playerID == 5: + # player4的操作 + return + + def TeamPlay(self, api: ITeamAPI) -> None: + # player0的操作 + return From b605d0d381fee578d8d50205bab9ef36ecd04ff1 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Mon, 31 Mar 2025 22:25:04 +0800 Subject: [PATCH 31/34] =?UTF-8?q?feat:=20=E5=85=B3=E4=BA=8E=E9=9E=8B?= =?UTF-8?q?=E5=AD=90=E5=92=8C=E7=8B=82=E6=9A=B4=E8=8D=AF=E6=B0=B4=E7=9A=84?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0=E6=A3=80=E6=B5=8B=E5=92=8C=E6=97=B6=E6=95=88?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/THUAI8游戏规则.md | 14 +++++++------- logic/GameClass/GameObj/Character.cs | 16 +++++++++++++++ logic/Gaming/CharacterManager.cs | 28 +++++++++++++++++++++++++++ logic/Preparation/Utility/GameData.cs | 2 ++ 4 files changed, 53 insertions(+), 7 deletions(-) diff --git a/docs/THUAI8游戏规则.md b/docs/THUAI8游戏规则.md index 97b9a43..8e650ff 100644 --- a/docs/THUAI8游戏规则.md +++ b/docs/THUAI8游戏规则.md @@ -1,4 +1,4 @@ -# THUAI8游戏选题(改稿) +# THUAI8 西游真经劫 ## 游戏背景 @@ -198,12 +198,12 @@ 各类型建筑的功能、损耗见下表: -| 名称 | 功能 | 花费/破坏得分 | 血量 | 建造时间 | -| :------: | :----------------------------------------------------------: | :-----------: | :--: | :------: | -| 兵营 | 角色出生点,开局自带一座兵营,至多可再修建两座兵营。同时半径1000范围内的己方角色可持续回血(10点/s) | 1w/6000 | 600 | 15s | -| 农场 | 每座农场每秒产出100经济,至多可再修建4个农场。 | 8000/4000 | 400 | 10s | -| 坑洞陷阱 | 修建后敌方不可见。当敌方角色触碰以陷阱为中心的九宫格时,受到每秒20点的伤害,持续5s,同时会暴露视野 | 1000 | / | 5s | -| 牢笼陷阱 | 修建后敌方不可见。当敌方角色触碰以陷阱为中心的九宫格时,会被定身30s,无法移动,且暴露视野 | 1000 | / | 5s | +| 名称 | 功能 | 花费/破坏得分 | 血量 | 建造时间 | +| :------: | :--------------------------------------------------------------------------------------------------: | :-----------: | :---: | :------: | +| 兵营 | 角色出生点,开局自带一座兵营,至多可再修建两座兵营。同时半径1000范围内的己方角色可持续回血(10点/s) | 1w/6000 | 600 | 15s | +| 农场 | 每座农场每秒产出100经济,至多可再修建4个农场。 | 8000/4000 | 400 | 10s | +| 坑洞陷阱 | 修建后敌方不可见。当敌方角色触碰以陷阱为中心的九宫格时,受到每秒20点的伤害,持续5s,同时会暴露视野 | 1000 | / | 5s | +| 牢笼陷阱 | 修建后敌方不可见。当敌方角色触碰以陷阱为中心的九宫格时,会被定身30s,无法移动,且暴露视野 | 1000 | / | 5s | **建筑的修建**:除”坑洞陷阱“和”牢笼陷阱“外,地图上有特定的建筑点位,角色移动到建筑点位九宫格内时,可以开始修建建筑。”坑洞陷阱“和”牢笼陷阱“可以在地图上任意一处”空地“或”草丛“修建,角色修建完成,会出现在距离角色中心最近的方格处。此两种建筑形同”空地“和”草丛“,在未触发情况下不会阻隔角色移动。 diff --git a/logic/GameClass/GameObj/Character.cs b/logic/GameClass/GameObj/Character.cs index fcda3cf..e98b78f 100644 --- a/logic/GameClass/GameObj/Character.cs +++ b/logic/GameClass/GameObj/Character.cs @@ -48,6 +48,10 @@ public class Character : Movable, ICharacter public long WideViewTime = long.MaxValue;//视野之灵计时器 public bool Purified = false;//净化药水效果,该效果下免疫控制 public long PurifiedTime = long.MaxValue; + public long ShoesTime = long.MaxValue;//鞋子buff计时器 + public bool IsShoes = false; + public long BerserkTime = long.MaxValue;//狂暴buff计时器 + public bool IsBerserk = false; public void StartSkillCD() { skillCD = Environment.TickCount64; @@ -316,6 +320,12 @@ public class Character : Movable, ICharacter } case EquipmentType.SPEEDBOOTS: { + if (IsShoes) + { + return false; + } + IsShoes = true; + ShoesTime = Environment.TickCount64; Shoes.AddPositiveV(GameData.ShoesSpeed); SubMoney(EquipmentFactory.FindCost(equiptype)); return true; @@ -328,6 +338,12 @@ public class Character : Movable, ICharacter } case EquipmentType.BERSERK_POTION: { + if (IsBerserk) + { + return false; + } + IsBerserk = true; + BerserkTime = Environment.TickCount64; SetCharacterState(CharacterState1, CharacterState.BERSERK);//此处缺少时间限制 AttackPower.AddPositiveV((long)(0.2 * AttackPower.GetValue())); ATKFrequency = GameData.CrazyATKFreq; diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 840e7d0..6cf8f6e 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -288,6 +288,34 @@ namespace Gaming } } + public void CheckBerkserk(Character character) + { + long nowtime = Environment.TickCount64; + if (character.IsBerserk) + { + if (nowtime - character.BerserkTime >= GameData.CrazyTime) + { + character.AttackPower.SetRNow(character.Occupation.AttackPower); + character.Shoes.SubPositiveV(GameData.CrazySpeed); + character.ATKFrequency= GameData.ATKFreq; + character.BerserkTime = long.MaxValue; + } + } + } + public void CheckShoes(Character character) + { + long nowtime = Environment.TickCount64; + if (character.IsShoes) + { + if (nowtime - character.ShoesTime >= GameData.ShoesTime) + { + character.Shoes.SubPositiveV(GameData.ShoesSpeed); + character.ShoesTime = long.MaxValue; + character.IsShoes = false; + } + } + + } } } } diff --git a/logic/Preparation/Utility/GameData.cs b/logic/Preparation/Utility/GameData.cs index 949729d..b9253fc 100644 --- a/logic/Preparation/Utility/GameData.cs +++ b/logic/Preparation/Utility/GameData.cs @@ -192,6 +192,7 @@ namespace Preparation.Utility public const int ShoesCost = 1500; public const int ShoesSpeed = 500; + public const int ShoesTime = 60000; public const int PurificationCost = 2000; public const int PurificationTime = 30000; @@ -203,6 +204,7 @@ namespace Preparation.Utility public const int CrazyTime = 30000; public const double CrazyPower = 1.2; public const double CrazyATKFreq = 1.25; + public const double ATKFreq = 1.0; public const int CrazySpeed = 300; public const int ScoreFarmPerSecond = 100; public const int MaxCharacterNum = 1; From b3ffe39cac155cddeafb9e1a94a357d96fda6446 Mon Sep 17 00:00:00 2001 From: Xyberoid <143863451+Xyberoid@users.noreply.github.com> Date: Mon, 31 Mar 2025 22:42:05 +0800 Subject: [PATCH 32/34] feat: It's FORMAT!!!!! --- logic/Gaming/CharacterManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index 6cf8f6e..e42b3a2 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -297,7 +297,7 @@ namespace Gaming { character.AttackPower.SetRNow(character.Occupation.AttackPower); character.Shoes.SubPositiveV(GameData.CrazySpeed); - character.ATKFrequency= GameData.ATKFreq; + character.ATKFrequency = GameData.ATKFreq; character.BerserkTime = long.MaxValue; } } From 2a4f31ab5cd68a2158416dc57f36c1ac9a57c531 Mon Sep 17 00:00:00 2001 From: Henry <2280825018@qq.com> Date: Mon, 31 Mar 2025 22:42:25 +0800 Subject: [PATCH 33/34] feat: KnockedBack/MoveEngineFix/Game.csFix --- logic/GameClass/GameObj/Map/Map.cs | 9 ++++++ .../GameObj/Occupations/BaiLongma.cs | 2 +- .../GameObj/Occupations/HongHaier.cs | 2 +- .../GameClass/GameObj/Occupations/JiuLing.cs | 2 +- logic/GameClass/GameObj/Occupations/Monkid.cs | 2 +- .../GameObj/Occupations/NiuMowang.cs | 2 +- logic/GameClass/GameObj/Occupations/Pawn.cs | 2 +- .../GameObj/Occupations/ShaWujing.cs | 2 +- .../GameObj/Occupations/SunWukong.cs | 2 +- .../GameClass/GameObj/Occupations/TangSeng.cs | 2 +- .../GameClass/GameObj/Occupations/TieShan.cs | 2 +- .../GameObj/Occupations/ZhiZhujing.cs | 2 +- .../GameClass/GameObj/Occupations/ZhuBajie.cs | 2 +- logic/GameEngine/MoveEngine.cs | 5 ++-- logic/Gaming/ActionManager.cs | 30 ++++++++++++++++++- logic/Gaming/Game.cs | 6 ++-- logic/Gaming/SkillCastManager.cs | 15 +++++++++- logic/Preparation/Utility/GameData.cs | 5 +++- logic/Server/RpcServices.cs | 2 +- 19 files changed, 74 insertions(+), 22 deletions(-) diff --git a/logic/GameClass/GameObj/Map/Map.cs b/logic/GameClass/GameObj/Map/Map.cs index 1feda76..50f4d5a 100644 --- a/logic/GameClass/GameObj/Map/Map.cs +++ b/logic/GameClass/GameObj/Map/Map.cs @@ -1,4 +1,5 @@ using GameClass.GameObj.Areas; +using GameClass.GameObj.Equipments; using GameClass.MapGenerator; using Preparation.Interface; using Preparation.Utility; @@ -21,6 +22,7 @@ namespace GameClass.GameObj.Map public PlaceType[,] ProtoGameMap => protoGameMap; private readonly MyTimer timer = new(); + public List Homes { get; } public IMyTimer Timer => timer; private readonly long currentHomeNum = 0; public bool TeamExists(long teamID) @@ -242,9 +244,16 @@ namespace GameClass.GameObj.Map case PlaceType.SPACE: Add(new Space(GameData.GetCellCenterPos(i, j))); break; + case PlaceType.HOME: + if (i < 25) + Add(new Home(GameData.GetCellCenterPos(i, j), currentHomeNum++, 1)); + else + Add(new Home(GameData.GetCellCenterPos(i, j), currentHomeNum++, 0)); + break; } } } + Homes = GameObjDict[GameObjType.HOME].Cast()?.ToNewList()!; } } } \ No newline at end of file diff --git a/logic/GameClass/GameObj/Occupations/BaiLongma.cs b/logic/GameClass/GameObj/Occupations/BaiLongma.cs index d37d744..af8893f 100644 --- a/logic/GameClass/GameObj/Occupations/BaiLongma.cs +++ b/logic/GameClass/GameObj/Occupations/BaiLongma.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class BaiLongma : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.BaiLongmaHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.BaiLongmacost; diff --git a/logic/GameClass/GameObj/Occupations/HongHaier.cs b/logic/GameClass/GameObj/Occupations/HongHaier.cs index a0e66d8..2845623 100644 --- a/logic/GameClass/GameObj/Occupations/HongHaier.cs +++ b/logic/GameClass/GameObj/Occupations/HongHaier.cs @@ -6,7 +6,7 @@ namespace GameClass.GameObj.Occupations { public class HongHaier : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.HongHaierHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.HongHaiercost; diff --git a/logic/GameClass/GameObj/Occupations/JiuLing.cs b/logic/GameClass/GameObj/Occupations/JiuLing.cs index 08ed056..ec20dff 100644 --- a/logic/GameClass/GameObj/Occupations/JiuLing.cs +++ b/logic/GameClass/GameObj/Occupations/JiuLing.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class JiuLing : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.JiuLingHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = 0; diff --git a/logic/GameClass/GameObj/Occupations/Monkid.cs b/logic/GameClass/GameObj/Occupations/Monkid.cs index 5c99543..0bb2481 100644 --- a/logic/GameClass/GameObj/Occupations/Monkid.cs +++ b/logic/GameClass/GameObj/Occupations/Monkid.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class Monkid : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.MonkidHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.Monkidcost; diff --git a/logic/GameClass/GameObj/Occupations/NiuMowang.cs b/logic/GameClass/GameObj/Occupations/NiuMowang.cs index 8ccc339..42e356e 100644 --- a/logic/GameClass/GameObj/Occupations/NiuMowang.cs +++ b/logic/GameClass/GameObj/Occupations/NiuMowang.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class NiuMowang : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.NiuMowangHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.NiuMowangcost; diff --git a/logic/GameClass/GameObj/Occupations/Pawn.cs b/logic/GameClass/GameObj/Occupations/Pawn.cs index e02b33a..00bb8eb 100644 --- a/logic/GameClass/GameObj/Occupations/Pawn.cs +++ b/logic/GameClass/GameObj/Occupations/Pawn.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class Pawn : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.PawnHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.Pawncost; diff --git a/logic/GameClass/GameObj/Occupations/ShaWujing.cs b/logic/GameClass/GameObj/Occupations/ShaWujing.cs index d0aab95..8e639c7 100644 --- a/logic/GameClass/GameObj/Occupations/ShaWujing.cs +++ b/logic/GameClass/GameObj/Occupations/ShaWujing.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class ShaWujing : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.ShaWujingHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.ShaWujingcost; diff --git a/logic/GameClass/GameObj/Occupations/SunWukong.cs b/logic/GameClass/GameObj/Occupations/SunWukong.cs index 89da9c7..b180748 100644 --- a/logic/GameClass/GameObj/Occupations/SunWukong.cs +++ b/logic/GameClass/GameObj/Occupations/SunWukong.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class SunWukong : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.SunWukongHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.SunWukongcost; diff --git a/logic/GameClass/GameObj/Occupations/TangSeng.cs b/logic/GameClass/GameObj/Occupations/TangSeng.cs index ef50ce4..42f8c69 100644 --- a/logic/GameClass/GameObj/Occupations/TangSeng.cs +++ b/logic/GameClass/GameObj/Occupations/TangSeng.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class TangSeng : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.TangSengHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = 0; diff --git a/logic/GameClass/GameObj/Occupations/TieShan.cs b/logic/GameClass/GameObj/Occupations/TieShan.cs index 48d2952..922db33 100644 --- a/logic/GameClass/GameObj/Occupations/TieShan.cs +++ b/logic/GameClass/GameObj/Occupations/TieShan.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class TieShan : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.TieShanHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.TieShancost; diff --git a/logic/GameClass/GameObj/Occupations/ZhiZhujing.cs b/logic/GameClass/GameObj/Occupations/ZhiZhujing.cs index 38a6b3c..a6301ee 100644 --- a/logic/GameClass/GameObj/Occupations/ZhiZhujing.cs +++ b/logic/GameClass/GameObj/Occupations/ZhiZhujing.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class ZhiZhujing : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.ZhiZhujingHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.ZhiZhujingcost; diff --git a/logic/GameClass/GameObj/Occupations/ZhuBajie.cs b/logic/GameClass/GameObj/Occupations/ZhuBajie.cs index 1f62dd8..8e109d9 100644 --- a/logic/GameClass/GameObj/Occupations/ZhuBajie.cs +++ b/logic/GameClass/GameObj/Occupations/ZhuBajie.cs @@ -5,7 +5,7 @@ namespace GameClass.GameObj.Occupations { public class ZhuBajie : IOccupation { - public int MoveSpeed { get; } = GameData.NumOfStepPerSecond; + public int MoveSpeed { get; } = GameData.BaseCharacterSpeed; public int MaxHp { get; } = GameData.ZhuBajieHP; public int ViewRange { get; } = GameData.Viewrange; public int Cost { get; } = GameData.ZhuBajiecost; diff --git a/logic/GameEngine/MoveEngine.cs b/logic/GameEngine/MoveEngine.cs index 44a81ae..6586bc1 100644 --- a/logic/GameEngine/MoveEngine.cs +++ b/logic/GameEngine/MoveEngine.cs @@ -132,7 +132,7 @@ namespace GameEngine return true; } - public void MoveObj(IMovable obj, int moveTime, double direction, long stateNum) + public void MoveObj(IMovable obj, int moveTime, double direction, long stateNum, long Shoes = 0) { GameEngineLogging.logger.ConsoleLogDebug( Logger.ObjInfo(obj) @@ -143,7 +143,6 @@ namespace GameEngine if (!obj.IsAvailableForMove) { EndMove(obj); return; } obj.IsMoving.SetROri(true); } - new Thread ( () => @@ -237,7 +236,7 @@ namespace GameEngine do { flag = false; - moveVecLength = (double)deltaLen + leftTime * obj.MoveSpeed / GameData.NumOfPosGridPerCell; + moveVecLength = (double)deltaLen + leftTime * (obj.MoveSpeed + Shoes) / GameData.NumOfPosGridPerCell; res = new XY(direction, moveVecLength); if ((collisionObj = collisionChecker.CheckCollisionWhenMoving(obj, res)) == null) { diff --git a/logic/Gaming/ActionManager.cs b/logic/Gaming/ActionManager.cs index bb17de8..2076a5f 100644 --- a/logic/Gaming/ActionManager.cs +++ b/logic/Gaming/ActionManager.cs @@ -53,7 +53,7 @@ namespace Gaming characterToMove.ThreadNum.Release(); return; } - moveEngine.MoveObj(characterToMove, moveTimeInMilliseconds, moveDirection, characterToMove.StateNum); + moveEngine.MoveObj(characterToMove, moveTimeInMilliseconds, moveDirection, characterToMove.StateNum, characterToMove.Shoes); Thread.Sleep(moveTimeInMilliseconds); //characterToMove.ResetCharacterState(stateNum); } @@ -61,6 +61,34 @@ namespace Gaming { IsBackground = true }.Start(); return true; } + public bool KnockBackCharacter(Character characterToMove, double moveDirection) + { + long stateNum = characterToMove.SetCharacterState(characterToMove.CharacterState1, CharacterState.KNOCKED_BACK); + CharacterState tempState = characterToMove.CharacterState2; + if (stateNum == -1) + { + ActionManagerLogging.logger.ConsoleLogDebug("Character can not be knocked back"); + return false; + } + new Thread + ( + () => + { + characterToMove.ThreadNum.WaitOne(); + if (!characterToMove.StartThread(stateNum)) + { + characterToMove.ThreadNum.Release(); + return; + } + moveEngine.MoveObj(characterToMove, GameData.KnockedBackTime, moveDirection, characterToMove.StateNum, GameData.KnockedBackSpeed); + Thread.Sleep(GameData.KnockedBackTime); + characterToMove.SetCharacterState(characterToMove.CharacterState1, tempState); + //characterToMove.ResetCharacterState(stateNum); + } + ) + { IsBackground = true }.Start(); + return true; + } public static bool Stop(Character character) { lock (character.ActionLock) diff --git a/logic/Gaming/Game.cs b/logic/Gaming/Game.cs index cb83f2d..8b83c86 100644 --- a/logic/Gaming/Game.cs +++ b/logic/Gaming/Game.cs @@ -28,7 +28,7 @@ namespace Gaming private readonly Map gameMap; public Map GameMap => gameMap; private readonly Random random = new(); - public long AddPlayer(PlayerInitInfo playerInitInfo) + public long AddCharacter(PlayerInitInfo playerInitInfo) { if (teamList[(int)playerInitInfo.teamID].CharacterNum >= GameData.CharacterTotalNumMax) { @@ -341,9 +341,9 @@ namespace Gaming gameMap = new(mapResource); characterManager = new(this, gameMap); ARManager = new(this, gameMap, characterManager); - skillCastManager = new(this, gameMap, characterManager, ARManager); actionManager = new(this, gameMap, characterManager); attackManager = new(this, gameMap, characterManager); + skillCastManager = new(this, gameMap, characterManager, ARManager, actionManager); teamList = []; gameMap.GameObjDict[GameObjType.HOME].Cast()?.ForEach( delegate (GameObj gameObj) @@ -380,7 +380,7 @@ namespace Gaming } return false; } - public bool Attack(long teamID, long characterID, double angle, long ATKteamID, long ATKcharacterID) + public bool Attack(long teamID, long characterID, long ATKteamID, long ATKcharacterID) { if (!gameMap.Timer.IsGaming) return false; diff --git a/logic/Gaming/SkillCastManager.cs b/logic/Gaming/SkillCastManager.cs index 497f981..d74ae14 100644 --- a/logic/Gaming/SkillCastManager.cs +++ b/logic/Gaming/SkillCastManager.cs @@ -22,12 +22,14 @@ namespace Gaming private readonly CharacterManager characterManager; private readonly MoveEngine moveEngine; private readonly A_ResourceManager ARManager; - public SkillCastManager(Game game, Map gameMap, CharacterManager characterManager, A_ResourceManager a_ResourceManager) + private readonly ActionManager actionManager; + public SkillCastManager(Game game, Map gameMap, CharacterManager characterManager, A_ResourceManager a_ResourceManager, ActionManager actionManager) { this.game = game; this.gameMap = gameMap; this.characterManager = characterManager; this.ARManager = a_ResourceManager; + this.actionManager = actionManager; moveEngine = new( gameMap: gameMap, OnCollision: (obj, collisionObj, moveVec) => @@ -202,7 +204,18 @@ namespace Gaming if (ObjBeingShot.Purified == true) continue; else + { ObjBeingShot.SetCharacterState(ObjBeingShot.CharacterState1, CharacterState.KNOCKED_BACK); + double angleToBeKnockedBack; + double tantheta = (ObjBeingShot.Position.y - character.Position.y) / (ObjBeingShot.Position.x - character.Position.x); + if ((ObjBeingShot.Position.x - character.Position.x) > 0) + angleToBeKnockedBack = Math.Atan(tantheta); + else if ((ObjBeingShot.Position.y - character.Position.y) > 0) + angleToBeKnockedBack = Math.PI - Math.Atan(tantheta); + else + angleToBeKnockedBack = -Math.PI - Math.Atan(tantheta); + actionManager.KnockBackCharacter(ObjBeingShot, angleToBeKnockedBack); + } } break; default: break; diff --git a/logic/Preparation/Utility/GameData.cs b/logic/Preparation/Utility/GameData.cs index 949729d..f54d655 100644 --- a/logic/Preparation/Utility/GameData.cs +++ b/logic/Preparation/Utility/GameData.cs @@ -4,12 +4,15 @@ namespace Preparation.Utility { public static class GameData { - public const int NumOfStepPerSecond = 2500; // 每秒行走基础步数.由于移速buff的存在,角色的具体移动速度会发生变化,相应代码需调整 + public const int NumOfStepPerSecond = 100; // 每秒行走步数 + public const int BaseCharacterSpeed = 2500; // 角色基础移动速度 public const int FrameDuration = 50; // 每帧时长 public const int CheckInterval = 10; // 检查间隔 public const uint GameDurationInSecond = 60 * 10; // 游戏时长 public const int LimitOfStopAndMove = 15; // 停止和移动的最大间隔 public const int ProduceSpeedPerSecond = 200; // 每秒生产值 + public const int KnockedBackTime = 50; + public const int KnockedBackSpeed = 1500; // 击退速度(额外速度,需加上基础移速) public const int TolerancesLength = 3; public const int AdjustLength = 3; diff --git a/logic/Server/RpcServices.cs b/logic/Server/RpcServices.cs index f061116..c1cd9b2 100644 --- a/logic/Server/RpcServices.cs +++ b/logic/Server/RpcServices.cs @@ -136,7 +136,7 @@ namespace Server lock (addPlayerLock) { Game.PlayerInitInfo playerInitInfo = new(request.TeamId, request.CharacterId, Transformation.CharacterTypeFromProto(request.CharacterType), request.SideFlag); - long newPlayerID = game.AddPlayer(playerInitInfo); + long newPlayerID = game.AddCharacter(playerInitInfo); if (newPlayerID == GameObj.invalidID) { GameServerLogging.logger.ConsoleLogDebug("FAIL AddPlayer"); From bbe7c01ee32226a9cbddc55c1f5dcecdb10c1e92 Mon Sep 17 00:00:00 2001 From: yihan-wa <1572542354@qq.com> Date: Mon, 31 Mar 2025 23:00:48 +0800 Subject: [PATCH 34/34] =?UTF-8?q?=E4=BF=AE=E6=94=B9RpcServices.cs=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Server/RpcServices.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logic/Server/RpcServices.cs b/logic/Server/RpcServices.cs index f061116..19cff3e 100644 --- a/logic/Server/RpcServices.cs +++ b/logic/Server/RpcServices.cs @@ -385,7 +385,7 @@ namespace Server // var gameID = communicationToGameID[request.TeamId][request.PlayerId]; boolRes.ActSuccess = game.Attack( request.TeamId, request.CharacterId, - request.AttackRange, request.AttackedCharacterId, request.AttackedTeam); + request.AttackedCharacterId, request.AttackedTeam); GameServerLogging.logger.ConsoleLogDebug("END Attack"); return Task.FromResult(boolRes); }