feat(all): add game SDK and harden client login and game rules

- Add costume burst upgrades with durable replay and fix permanent SR equipment gacha.
- Add server game.json rules for optional collaboration UR weapons, with packaging and documentation.
- Add GameNames/GameSdk NuGet tooling, readable types, reobfuscation, complete source/PDB navigation and shared-runtime installation.
- Split plugin responsibilities, prefer typeof/nameof, centralize MSBuild settings and ignore local paths; remove the unused LoginUI test project.
- Fix login recovery and TLS through native platform HTTP and a private game relay; read device region directly from the OS time zone.

Validation: go test ./... -count=1, go vet ./..., plugin Release builds, SDK/runtime self-tests, Roslyn embedded-source navigation, gofmt check and git diff --check.
This commit is contained in:
2026-10-03 23:04:32 +08:00
parent 5600f10b31
commit 992fa47fd5
83 changed files with 8970 additions and 2828 deletions
@@ -6,12 +6,7 @@
<AssemblyName>BD2LocalIdentity</AssemblyName>
<RootNamespace>Bd2LocalIdentity</RootNamespace>
<BD2PluginVersionKey>local_identity</BD2PluginVersionKey>
<BD2ManagedDir Condition="'$(BD2ManagedDir)' == ''">$(GameDir)\BrownDust II_Data\Managed</BD2ManagedDir>
<BD2BepInExDir Condition="'$(BD2BepInExDir)' == ''">$(GameDir)\BepInEx</BD2BepInExDir>
</PropertyGroup>
<Target Name="RequireGameDir" BeforeTargets="ResolveReferences" Condition="'$(GameDir)' == ''">
<Error Text="GameDir is required. Build with -p:GameDir=&lt;local-client-directory&gt;." />
</Target>
<ItemGroup>
<Reference Include="BepInEx">
<HintPath>$(BD2BepInExDir)\core\BepInEx.dll</HintPath>
@@ -34,5 +29,4 @@
<Private>false</Private>
</Reference>
</ItemGroup>
<Import Project="..\VersionSource.targets" />
</Project>