From ca52a79aecdeb11969f2bb0e60d8cd18e1031a5b Mon Sep 17 00:00:00 2001 From: Grange <2634070476@qq.com> Date: Sat, 28 Oct 2023 23:07:42 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=20feat:=20=E2=9C=A8=20finish=20UI=20and=20?= =?UTF-8?q?basic=20front-end=20logic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/Client/App.xaml | 23 + logic/Client/App.xaml.cs | 12 + logic/Client/AppShell.xaml | 14 + logic/Client/AppShell.xaml.cs | 10 + logic/Client/Client.csproj | 130 +++- logic/Client/Client.sln | 70 +- logic/Client/GameStatusBar.xaml | 26 + logic/Client/GameStatusBar.xaml.cs | 59 ++ logic/Client/Logo.png | Bin 56319 -> 0 bytes logic/Client/MainPage.xaml | 153 ++++ logic/Client/MainPage.xaml.cs | 700 ++++++++++++++++++ logic/Client/Map.xaml | 9 + logic/Client/Map.xaml.cs | 43 ++ logic/Client/MauiProgram.cs | 25 + .../Platforms/Android/AndroidManifest.xml | 6 + .../Client/Platforms/Android/MainActivity.cs | 11 + .../Platforms/Android/MainApplication.cs | 16 + .../Android/Resources/values/colors.xml | 6 + .../Platforms/MacCatalyst/AppDelegate.cs | 10 + logic/Client/Platforms/MacCatalyst/Info.plist | 30 + logic/Client/Platforms/MacCatalyst/Program.cs | 16 + logic/Client/Platforms/Tizen/Main.cs | 17 + .../Client/Platforms/Tizen/tizen-manifest.xml | 15 + logic/Client/Platforms/Windows/App.xaml | 8 + logic/Client/Platforms/Windows/App.xaml.cs | 24 + .../Platforms/Windows/Package.appxmanifest | 46 ++ logic/Client/Platforms/Windows/app.manifest | 15 + logic/Client/Platforms/iOS/AppDelegate.cs | 10 + logic/Client/Platforms/iOS/Info.plist | 32 + logic/Client/Platforms/iOS/Program.cs | 16 + logic/Client/PlayerStatusBar.xaml | 82 ++ logic/Client/PlayerStatusBar.xaml.cs | 140 ++++ logic/Client/Properties/PlayerBarGrid_new.xml | 55 ++ logic/Client/Properties/launchSettings.json | 8 + logic/Client/Protos.csproj | 35 + logic/Client/Resources/AppIcon/appicon.svg | 4 + logic/Client/Resources/AppIcon/appiconfg.svg | 8 + .../Resources/Fonts/OpenSans-Regular.ttf | Bin 0 -> 107276 bytes .../Resources/Fonts/OpenSans-Semibold.ttf | Bin 0 -> 111164 bytes logic/Client/Resources/Images/dotnet_bot.svg | 93 +++ .../Resources/Images/eesast_logo_32x32.png | Bin 0 -> 2976 bytes ...eesast_software_trans_enlarged_256x256.png | Bin 0 -> 13456 bytes logic/Client/Resources/Raw/AboutAssets.txt | 15 + logic/Client/Resources/Splash/splash.svg | 8 + logic/Client/Resources/Styles/Colors.xaml | 44 ++ logic/Client/Resources/Styles/Styles.xaml | 405 ++++++++++ 46 files changed, 2379 insertions(+), 70 deletions(-) create mode 100644 logic/Client/App.xaml create mode 100644 logic/Client/App.xaml.cs create mode 100644 logic/Client/AppShell.xaml create mode 100644 logic/Client/AppShell.xaml.cs create mode 100644 logic/Client/GameStatusBar.xaml create mode 100644 logic/Client/GameStatusBar.xaml.cs delete mode 100644 logic/Client/Logo.png create mode 100644 logic/Client/MainPage.xaml create mode 100644 logic/Client/MainPage.xaml.cs create mode 100644 logic/Client/Map.xaml create mode 100644 logic/Client/Map.xaml.cs create mode 100644 logic/Client/MauiProgram.cs create mode 100644 logic/Client/Platforms/Android/AndroidManifest.xml create mode 100644 logic/Client/Platforms/Android/MainActivity.cs create mode 100644 logic/Client/Platforms/Android/MainApplication.cs create mode 100644 logic/Client/Platforms/Android/Resources/values/colors.xml create mode 100644 logic/Client/Platforms/MacCatalyst/AppDelegate.cs create mode 100644 logic/Client/Platforms/MacCatalyst/Info.plist create mode 100644 logic/Client/Platforms/MacCatalyst/Program.cs create mode 100644 logic/Client/Platforms/Tizen/Main.cs create mode 100644 logic/Client/Platforms/Tizen/tizen-manifest.xml create mode 100644 logic/Client/Platforms/Windows/App.xaml create mode 100644 logic/Client/Platforms/Windows/App.xaml.cs create mode 100644 logic/Client/Platforms/Windows/Package.appxmanifest create mode 100644 logic/Client/Platforms/Windows/app.manifest create mode 100644 logic/Client/Platforms/iOS/AppDelegate.cs create mode 100644 logic/Client/Platforms/iOS/Info.plist create mode 100644 logic/Client/Platforms/iOS/Program.cs create mode 100644 logic/Client/PlayerStatusBar.xaml create mode 100644 logic/Client/PlayerStatusBar.xaml.cs create mode 100644 logic/Client/Properties/PlayerBarGrid_new.xml create mode 100644 logic/Client/Properties/launchSettings.json create mode 100644 logic/Client/Protos.csproj create mode 100644 logic/Client/Resources/AppIcon/appicon.svg create mode 100644 logic/Client/Resources/AppIcon/appiconfg.svg create mode 100644 logic/Client/Resources/Fonts/OpenSans-Regular.ttf create mode 100644 logic/Client/Resources/Fonts/OpenSans-Semibold.ttf create mode 100644 logic/Client/Resources/Images/dotnet_bot.svg create mode 100644 logic/Client/Resources/Images/eesast_logo_32x32.png create mode 100644 logic/Client/Resources/Images/eesast_software_trans_enlarged_256x256.png create mode 100644 logic/Client/Resources/Raw/AboutAssets.txt create mode 100644 logic/Client/Resources/Splash/splash.svg create mode 100644 logic/Client/Resources/Styles/Colors.xaml create mode 100644 logic/Client/Resources/Styles/Styles.xaml diff --git a/logic/Client/App.xaml b/logic/Client/App.xaml new file mode 100644 index 00000000..774625af --- /dev/null +++ b/logic/Client/App.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/logic/Client/App.xaml.cs b/logic/Client/App.xaml.cs new file mode 100644 index 00000000..4939cffa --- /dev/null +++ b/logic/Client/App.xaml.cs @@ -0,0 +1,12 @@ +namespace Client +{ + public partial class App : Application + { + public App() + { + InitializeComponent(); + + MainPage = new AppShell(); + } + } +} \ No newline at end of file diff --git a/logic/Client/AppShell.xaml b/logic/Client/AppShell.xaml new file mode 100644 index 00000000..0d2a4a5d --- /dev/null +++ b/logic/Client/AppShell.xaml @@ -0,0 +1,14 @@ + + + + + + diff --git a/logic/Client/AppShell.xaml.cs b/logic/Client/AppShell.xaml.cs new file mode 100644 index 00000000..942d305b --- /dev/null +++ b/logic/Client/AppShell.xaml.cs @@ -0,0 +1,10 @@ +namespace Client +{ + public partial class AppShell : Shell + { + public AppShell() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/logic/Client/Client.csproj b/logic/Client/Client.csproj index 02642032..861a7af4 100644 --- a/logic/Client/Client.csproj +++ b/logic/Client/Client.csproj @@ -1,33 +1,97 @@ - - - - WinExe - net6.0-windows - enable - true - eesast_software_trans_enlarged.ico - - - - - - - - - - - - - - - - - - - - - - - - - + + + + net7.0-android;net7.0-ios;net7.0-maccatalyst + $(TargetFrameworks);net7.0-windows10.0.19041.0 + + + Exe + Client + true + true + enable + + + Client + + + com.companyname.client + 872eca96-e290-4365-952b-f5e5b16e7217 + + + 1.0 + 1 + + 11.0 + 13.1 + 21.0 + 10.0.17763.0 + 10.0.17763.0 + 6.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + MainPage.xaml + + + Map.xaml + + + GameStatusBar.xaml + + + PlayerStatusBar.xaml + + + + + + + MSBuild:Compile + + + MSBuild:Compile + + + MSBuild:Compile + + + + + + + + diff --git a/logic/Client/Client.sln b/logic/Client/Client.sln index aedf36b1..9020b267 100644 --- a/logic/Client/Client.sln +++ b/logic/Client/Client.sln @@ -1,37 +1,33 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32328.378 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client", "Client.csproj", "{5AD8481D-90EF-410C-BD48-355DB97EEAB3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Playback", "..\..\playback\Playback\Playback.csproj", "{662FDB27-FBF3-4D2D-BDA4-B4BF4D35B866}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Protos", "..\..\dependency\proto\Protos.csproj", "{A0F72D3B-9A82-48EB-90AF-B3770151AD83}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5AD8481D-90EF-410C-BD48-355DB97EEAB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5AD8481D-90EF-410C-BD48-355DB97EEAB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5AD8481D-90EF-410C-BD48-355DB97EEAB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5AD8481D-90EF-410C-BD48-355DB97EEAB3}.Release|Any CPU.Build.0 = Release|Any CPU - {662FDB27-FBF3-4D2D-BDA4-B4BF4D35B866}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {662FDB27-FBF3-4D2D-BDA4-B4BF4D35B866}.Debug|Any CPU.Build.0 = Debug|Any CPU - {662FDB27-FBF3-4D2D-BDA4-B4BF4D35B866}.Release|Any CPU.ActiveCfg = Release|Any CPU - {662FDB27-FBF3-4D2D-BDA4-B4BF4D35B866}.Release|Any CPU.Build.0 = Release|Any CPU - {A0F72D3B-9A82-48EB-90AF-B3770151AD83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A0F72D3B-9A82-48EB-90AF-B3770151AD83}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A0F72D3B-9A82-48EB-90AF-B3770151AD83}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A0F72D3B-9A82-48EB-90AF-B3770151AD83}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {89A74B1B-445C-49EB-9C93-506DC243C227} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34202.233 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client", "Client.csproj", "{F75BC602-8C64-4645-9C9A-2DF71085C52C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Protos", "..\..\dependency\proto\Protos.csproj", "{DAE45955-E55C-4E11-80B4-E7EC77E11C89}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F75BC602-8C64-4645-9C9A-2DF71085C52C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F75BC602-8C64-4645-9C9A-2DF71085C52C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F75BC602-8C64-4645-9C9A-2DF71085C52C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {F75BC602-8C64-4645-9C9A-2DF71085C52C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F75BC602-8C64-4645-9C9A-2DF71085C52C}.Release|Any CPU.Build.0 = Release|Any CPU + {F75BC602-8C64-4645-9C9A-2DF71085C52C}.Release|Any CPU.Deploy.0 = Release|Any CPU + {DAE45955-E55C-4E11-80B4-E7EC77E11C89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAE45955-E55C-4E11-80B4-E7EC77E11C89}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAE45955-E55C-4E11-80B4-E7EC77E11C89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAE45955-E55C-4E11-80B4-E7EC77E11C89}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4C1CF739-9F04-4B0F-B148-BCC1629AACE7} + EndGlobalSection +EndGlobal diff --git a/logic/Client/GameStatusBar.xaml b/logic/Client/GameStatusBar.xaml new file mode 100644 index 00000000..1a7b3139 --- /dev/null +++ b/logic/Client/GameStatusBar.xaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/logic/Client/GameStatusBar.xaml.cs b/logic/Client/GameStatusBar.xaml.cs new file mode 100644 index 00000000..57f7d2b4 --- /dev/null +++ b/logic/Client/GameStatusBar.xaml.cs @@ -0,0 +1,59 @@ +using Protobuf; + +namespace Client; + +public partial class GameStatusBar : ContentView +{ + private readonly int lengthOfHp1Slide; + private readonly int lengthOfHp2Slide; + private readonly int lengthOfHp3Slide; + private readonly int WormHoleFullHp = 18000; + public GameStatusBar(Grid parent, int Row, int Column) + { + InitializeComponent(); + parent.Children.Add(this); + parent.SetColumn(this, Column); + parent.SetRow(this, Row); + parent.SetRowSpan(this, 2); + } + + public void SetWormHoleValue(MessageOfBuilding wormholeMsg) + { + if (wormholeMsg.BuildingType != BuildingType.Wormhole) + { + return; + } + switch (wormholeMsg.BuildingId) + { + case 0: + WormHole1HpSlide.WidthRequest = wormholeMsg.Hp / WormHoleFullHp * lengthOfHp1Slide; + break; + case 1: + WormHole2HpSlide.WidthRequest = wormholeMsg.Hp / WormHoleFullHp * lengthOfHp2Slide; + break; + case 2: + WormHole3HpSlide.WidthRequest = wormholeMsg.Hp / WormHoleFullHp * lengthOfHp3Slide; + break; + } + } + + public void SetGameTimeValue(MessageOfAll obj) + { + int min, sec; + sec = obj.GameTime / 1000; + min = sec / 60; + sec = sec % 60; + GameTime.Text = "时间:"; + if (min / 10 == 0) + { + GameTime.Text += "0"; + } + GameTime.Text += min.ToString() + ":"; + if (sec / 10 == 0) + { + GameTime.Text += "0"; + } + GameTime.Text += sec.ToString(); + } + +} \ No newline at end of file diff --git a/logic/Client/Logo.png b/logic/Client/Logo.png deleted file mode 100644 index 6d7d511416087278769370e779613dc11547e983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56319 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 Lo^wyTNWS|o;SVEq diff --git a/logic/Client/MainPage.xaml b/logic/Client/MainPage.xaml new file mode 100644 index 00000000..c2416bfe --- /dev/null +++ b/logic/Client/MainPage.xaml @@ -0,0 +1,153 @@ + + + + + + + + + + + +