feat(hs): import LoL map (server 92 / World93) + real base & statue coords

- Embed Terrain93.att (server map No 92 -> loads Terrain93); map Number 90->92.
- Real walkable coords from the LoL arena diamond (center lane x=42):
  Red base (42,10) top tip, Blue base (42,92) bottom tip; 7 statues per team along x=42.
- Client World93 + Object93 deployed to PC client separately.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Acentech Dev
2026-07-21 01:18:54 +03:00
parent 790d944757
commit 917831e198
5 changed files with 23 additions and 21 deletions

View File

@@ -33,25 +33,25 @@ public class HeykelSavasiContext : MiniGameContext
/// The X1/Y1 anchor of the red team's base spawn gate.
/// Must match Gates.cs targetGates 600 (RedBase).
/// </summary>
private const byte RedBaseAnchorX1 = 20;
private const byte RedBaseAnchorX1 = 42;
/// <summary>
/// The X1/Y1 anchor of the red team's base spawn gate.
/// Must match Gates.cs targetGates 600 (RedBase).
/// </summary>
private const byte RedBaseAnchorY1 = 20;
private const byte RedBaseAnchorY1 = 10;
/// <summary>
/// The X1/Y1 anchor of the blue team's base spawn gate.
/// Must match Gates.cs targetGates 601 (BlueBase).
/// </summary>
private const byte BlueBaseAnchorX1 = 220;
private const byte BlueBaseAnchorX1 = 42;
/// <summary>
/// The X1/Y1 anchor of the blue team's base spawn gate.
/// Must match Gates.cs targetGates 601 (BlueBase).
/// </summary>
private const byte BlueBaseAnchorY1 = 220;
private const byte BlueBaseAnchorY1 = 92;
/// <summary>
/// The number of statues (per team) which need to be broken by the opposing team to win the event.
@@ -112,13 +112,13 @@ public class HeykelSavasiContext : MiniGameContext
/// </summary>
private static readonly Point[] RedStatuePositions =
{
new(100, 100),
new(88, 88),
new(77, 77),
new(65, 65),
new(53, 53),
new(42, 42),
new(30, 30),
new(42, 51),
new(42, 45),
new(42, 38),
new(42, 31),
new(42, 25),
new(42, 15),
new(42, 8),
};
/// <summary>
@@ -129,13 +129,13 @@ public class HeykelSavasiContext : MiniGameContext
/// </summary>
private static readonly Point[] BlueStatuePositions =
{
new(140, 140),
new(152, 152),
new(163, 163),
new(175, 175),
new(187, 187),
new(198, 198),
new(210, 210),
new(42, 53),
new(42, 59),
new(42, 66),
new(42, 73),
new(42, 79),
new(42, 87),
new(42, 94),
};
private readonly IGameContext _gameContext;

View File

@@ -25,6 +25,7 @@
<None Remove="Resources\075_Terrain8.att" />
<None Remove="Resources\Terrain1.att" />
<None Remove="Resources\Terrain83.att" />
<None Remove="Resources\Terrain93.att" />
<None Remove="Resources\Terrain84.att" />
<None Remove="Resources\Terrain85.att" />
<None Remove="Resources\Terrain86.att" />
@@ -109,6 +110,7 @@
<EmbeddedResource Include="Resources\075_Terrain8.att" />
<EmbeddedResource Include="Resources\Terrain1.att" />
<EmbeddedResource Include="Resources\Terrain83.att" />
<EmbeddedResource Include="Resources\Terrain93.att" />
<EmbeddedResource Include="Resources\Terrain84.att" />
<EmbeddedResource Include="Resources\Terrain85.att" />
<EmbeddedResource Include="Resources\Terrain86.att" />

Binary file not shown.

View File

@@ -442,8 +442,8 @@ public class Gates : InitializerBase
targetGates.Add(341, this.CreateExitGate(maps[81], 162, 12, 164, 14, 5));
// Heykel Savasi (event map, base spawn gates)
targetGates.Add(600, this.CreateExitGate(maps[HeykelSavasiMap.Number], 20, 20, 24, 24, 3, true)); // RedBase
targetGates.Add(601, this.CreateExitGate(maps[HeykelSavasiMap.Number], 220, 220, 224, 224, 7, true)); // BlueBase
targetGates.Add(600, this.CreateExitGate(maps[HeykelSavasiMap.Number], 42, 10, 42, 10, 3, true)); // RedBase (top tip of the LoL arena diamond)
targetGates.Add(601, this.CreateExitGate(maps[HeykelSavasiMap.Number], 42, 92, 42, 92, 7, true)); // BlueBase (bottom tip of the LoL arena diamond)
return targetGates;
}

View File

@@ -22,7 +22,7 @@ internal class HeykelSavasiMap : BaseMapInitializer
/// <summary>
/// The Number of the Map.
/// </summary>
internal const byte Number = 90;
internal const byte Number = 92;
/// <summary>
/// The Name of the Map.