From afeb9cf6253a088fa78fb28a790471c90a7017ea Mon Sep 17 00:00:00 2001 From: hz Date: Mon, 18 May 2026 13:59:33 -0500 Subject: [PATCH] Updating location schema to tracker user territory and lock visibility --- .../scenes/game/hex_grid_screen.gd | 117 ++++++++- .../scenes/game/hex_grid_view.gd | 117 +++++++-- .../Controllers/LocationsController.cs | 84 +++++++ microservices/LocationsApi/Models/Dto.cs | 44 +++- microservices/LocationsApi/Models/Location.cs | 2 + microservices/LocationsApi/README.md | 10 +- .../LocationsApi/Services/LocationService.cs | 231 +++++++++++++++++- microservices/LocationsApi/appsettings.json | 5 + .../bin/Debug/net8.0/LocationsApi.dll | Bin 29184 -> 54272 bytes .../bin/Debug/net8.0/LocationsApi.exe | Bin 151552 -> 151552 bytes .../bin/Debug/net8.0/LocationsApi.pdb | Bin 26348 -> 31204 bytes .../bin/Debug/net8.0/appsettings.json | 5 + microservices/LocationsApi/k8s/configmap.yaml | 3 + .../Debug/net8.0/LocationsApi.AssemblyInfo.cs | 2 +- .../LocationsApi.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/net8.0/LocationsApi.dll | Bin 29184 -> 54272 bytes .../obj/Debug/net8.0/LocationsApi.pdb | Bin 26348 -> 31204 bytes .../LocationsApi/obj/Debug/net8.0/apphost.exe | Bin 151552 -> 151552 bytes .../obj/Debug/net8.0/ref/LocationsApi.dll | Bin 12800 -> 18944 bytes .../obj/Debug/net8.0/refint/LocationsApi.dll | Bin 12800 -> 18944 bytes .../Debug/net8.0/rjsmcshtml.dswa.cache.json | 2 +- .../Debug/net8.0/rjsmrazor.dswa.cache.json | 2 +- .../obj/Debug/net8.0/rpswa.dswa.cache.json | 2 +- 23 files changed, 590 insertions(+), 38 deletions(-) diff --git a/game/territory-autobattler/scenes/game/hex_grid_screen.gd b/game/territory-autobattler/scenes/game/hex_grid_screen.gd index c8fcc0f..3c1625a 100644 --- a/game/territory-autobattler/scenes/game/hex_grid_screen.gd +++ b/game/territory-autobattler/scenes/game/hex_grid_screen.gd @@ -1,15 +1,21 @@ extends Control const SESSION_PATH := "user://auth_session.json" +const LOCATIONS_BASE_URL := "https://tloc.ranaze.com" const HexGridView := preload("res://scenes/game/hex_grid_view.gd") var coordinate_label: Label var title_font: Font var grid_view +var http_request: HTTPRequest +var visible_request: HTTPRequest +var session: Dictionary = {} func _ready() -> void: + session = _load_session() _build_ui() + _assign_home_location() func _build_ui() -> void: @@ -97,6 +103,14 @@ func _build_ui() -> void: coordinate_label.add_theme_color_override("font_color", Color(0.72, 0.8, 0.78)) bottom_margin.add_child(coordinate_label) + http_request = HTTPRequest.new() + http_request.request_completed.connect(_on_home_request_completed) + add_child(http_request) + + visible_request = HTTPRequest.new() + visible_request.request_completed.connect(_on_visible_request_completed) + add_child(visible_request) + func _on_tile_hovered(q: int, r: int, terrain: String) -> void: if coordinate_label: @@ -109,23 +123,110 @@ func _on_tile_selected(q: int, r: int, terrain: String) -> void: func _session_name() -> String: + if not session.is_empty(): + var session_username: String = str(session.get("username", "Signed in")) + var session_role: String = str(session.get("role", "USER")) + return "%s | %s" % [session_username, session_role] + + return "Signed in" + + +func _load_session() -> Dictionary: if get_tree().has_meta("auth_session"): var current_session = get_tree().get_meta("auth_session") if typeof(current_session) == TYPE_DICTIONARY: - var current_username: String = str(current_session.get("username", "Signed in")) - var current_role: String = str(current_session.get("role", "USER")) - return "%s | %s" % [current_username, current_role] + return current_session var file := FileAccess.open(SESSION_PATH, FileAccess.READ) if not file: - return "Signed in" + return {} var parsed = JSON.parse_string(file.get_as_text()) if typeof(parsed) == TYPE_DICTIONARY: - var username: String = str(parsed.get("username", "Signed in")) - var role: String = str(parsed.get("role", "USER")) - return "%s | %s" % [username, role] - return "Signed in" + return parsed + return {} + + +func _assign_home_location() -> void: + var access_token: String = str(session.get("accessToken", "")) + if access_token.is_empty(): + coordinate_label.text = "No auth token available. Home territory was not assigned." + return + + coordinate_label.text = "Assigning home territory..." + var error: int = http_request.request( + LOCATIONS_BASE_URL + "/api/locations/home", + PackedStringArray([ + "Content-Type: application/json", + "Authorization: Bearer %s" % access_token + ]), + HTTPClient.METHOD_POST, + "" + ) + if error != OK: + coordinate_label.text = "Could not contact the locations service." + + +func _on_home_request_completed(result: int, response_code: int, _headers: PackedStringArray, body: PackedByteArray) -> void: + if result != HTTPRequest.RESULT_SUCCESS: + coordinate_label.text = "Locations service request failed." + return + + var text: String = body.get_string_from_utf8() + if response_code < 200 or response_code >= 300: + coordinate_label.text = "Home assignment failed: %s" % text + return + + var parsed = JSON.parse_string(text) + if typeof(parsed) != TYPE_DICTIONARY: + coordinate_label.text = "Locations service returned invalid home data." + return + + var home: Dictionary = parsed + var q: int = int(home.get("q", 0)) + var r: int = int(home.get("r", 0)) + var terrain: String = str(home.get("terrain", "Command")) + grid_view.set_home_location(q, r) + coordinate_label.text = "Home territory assigned at q:%d r:%d | %s" % [q, r, terrain] + _load_visible_locations() + + +func _load_visible_locations() -> void: + var access_token: String = str(session.get("accessToken", "")) + if access_token.is_empty(): + coordinate_label.text = "No auth token available. Visibility was not loaded." + return + + var error: int = visible_request.request( + LOCATIONS_BASE_URL + "/api/locations/visible", + PackedStringArray([ + "Authorization: Bearer %s" % access_token + ]), + HTTPClient.METHOD_GET + ) + if error != OK: + coordinate_label.text = "Could not request visible territory." + + +func _on_visible_request_completed(result: int, response_code: int, _headers: PackedStringArray, body: PackedByteArray) -> void: + if result != HTTPRequest.RESULT_SUCCESS: + coordinate_label.text = "Visible territory request failed." + return + + var text: String = body.get_string_from_utf8() + if response_code < 200 or response_code >= 300: + coordinate_label.text = "Visible territory failed: %s" % text + return + + var parsed = JSON.parse_string(text) + if typeof(parsed) != TYPE_ARRAY: + coordinate_label.text = "Locations service returned invalid visibility data." + return + + var username: String = str(session.get("username", "")) + var visible_locations: Array = parsed + grid_view.set_visible_locations(visible_locations, username) + coordinate_label.text = "Visible territory loaded. Sight extends 3 hexes beyond controlled land." func _panel_style(color: Color, border_color: Color, border_width: int, radius: int) -> StyleBoxFlat: diff --git a/game/territory-autobattler/scenes/game/hex_grid_view.gd b/game/territory-autobattler/scenes/game/hex_grid_view.gd index 83c81cb..824a386 100644 --- a/game/territory-autobattler/scenes/game/hex_grid_view.gd +++ b/game/territory-autobattler/scenes/game/hex_grid_view.gd @@ -14,7 +14,10 @@ var drag_distance: float = 0.0 var last_mouse_position: Vector2 = Vector2.ZERO var hovered_tile: Vector2i = Vector2i(9999, 9999) var selected_tile: Vector2i = Vector2i(9999, 9999) +var home_tile: Vector2i = Vector2i(9999, 9999) var tiles: Array[Dictionary] = [] +var visible_tiles: Dictionary = {} +var owned_tiles: Dictionary = {} func _ready() -> void: @@ -26,19 +29,34 @@ func _ready() -> void: func _build_tiles() -> void: tiles.clear() - var radius: int = 7 - for q in range(-radius, radius + 1): - var r_min: int = int(max(-radius, -q - radius)) - var r_max: int = int(min(radius, -q + radius)) - for r in range(r_min, r_max + 1): - var height: float = _tile_height(q, r) - tiles.append({ - "q": q, - "r": r, - "height": height, - "terrain": _terrain_name(q, r, height), - "color": _terrain_color(q, r, height) - }) + _build_tiles_around(0, 0, 7) + + +func _build_tiles_around(center_q: int, center_r: int, radius: int) -> void: + tiles.clear() + for dq in range(-radius, radius + 1): + var min_dr: int = int(max(-radius, -dq - radius)) + var max_dr: int = int(min(radius, -dq + radius)) + for dr in range(min_dr, max_dr + 1): + _add_or_update_tile(center_q + dq, center_r + dr) + + +func _add_or_update_tile(q: int, r: int, terrain_override: String = "") -> void: + var height: float = _tile_height(q, r) + var terrain: String = terrain_override if not terrain_override.is_empty() else _terrain_name(q, r, height) + var existing: Dictionary = _tile_data(q, r) + if not existing.is_empty(): + existing["terrain"] = terrain + existing["color"] = _terrain_color_for_name(terrain, q, r, height) + return + + tiles.append({ + "q": q, + "r": r, + "height": height, + "terrain": terrain, + "color": _terrain_color_for_name(terrain, q, r, height) + }) func _gui_input(event: InputEvent) -> void: @@ -106,12 +124,22 @@ func _draw_tile(tile: Dictionary) -> void: var coord: Vector2i = Vector2i(q, r) var is_hovered: bool = coord == hovered_tile var is_selected: bool = coord == selected_tile + var key: String = _tile_key(q, r) + var is_visible: bool = visible_tiles.has(key) + var is_owned: bool = owned_tiles.has(key) var side_points: PackedVector2Array = PackedVector2Array([points[2], points[3], points[4], points[4] + Vector2(0, 14), points[3] + Vector2(0, 14), points[2] + Vector2(0, 14)]) - draw_colored_polygon(side_points, color.darkened(0.28)) + var draw_color: Color = color if is_visible else Color(0.045, 0.065, 0.065) + draw_colored_polygon(side_points, draw_color.darkened(0.28)) - if is_selected: + if not is_visible: + draw_colored_polygon(points, Color(0.055, 0.075, 0.075)) + elif is_selected: draw_colored_polygon(points, color.lightened(0.22)) + elif coord == home_tile: + draw_colored_polygon(points, Color(0.72, 0.58, 0.2)) + elif is_owned: + draw_colored_polygon(points, Color(0.34, 0.52, 0.36)) elif is_hovered: draw_colored_polygon(points, color.lightened(0.13)) else: @@ -119,8 +147,14 @@ func _draw_tile(tile: Dictionary) -> void: draw_polyline(_closed_points(points), Color(0.04, 0.065, 0.06, 0.72), 2.0) - if is_selected: + if not is_visible: + draw_polyline(_closed_points(points), Color(0.11, 0.15, 0.15, 0.75), 1.0) + elif is_selected: draw_polyline(_closed_points(points), Color(0.95, 0.76, 0.28), 4.0) + elif coord == home_tile: + draw_polyline(_closed_points(points), Color(1.0, 0.88, 0.38), 3.0) + elif is_owned: + draw_polyline(_closed_points(points), Color(0.66, 0.9, 0.56), 2.5) func _update_hover(mouse_position: Vector2) -> void: @@ -143,15 +177,20 @@ func _update_hover(mouse_position: Vector2) -> void: hovered_tile = closest if hovered_tile.x != 9999: var data: Dictionary = _tile_data(hovered_tile.x, hovered_tile.y) - tile_hovered.emit(hovered_tile.x, hovered_tile.y, str(data.get("terrain", "Open"))) + var key: String = _tile_key(hovered_tile.x, hovered_tile.y) + var terrain: String = str(data.get("terrain", "Open")) if visible_tiles.has(key) else "Unexplored" + tile_hovered.emit(hovered_tile.x, hovered_tile.y, terrain) queue_redraw() func _tile_center(q: int, r: int) -> Vector2: + return _screen_point(_iso_world_point(q, r)) + + +func _iso_world_point(q: int, r: int) -> Vector2: var world_x: float = HEX_SIZE * SQRT_3 * (q + r * 0.5) var world_y: float = HEX_SIZE * 1.5 * r - var iso: Vector2 = Vector2(world_x - world_y, (world_x + world_y) * ISO_Y_SCALE) - return _screen_point(iso) + return Vector2(world_x - world_y, (world_x + world_y) * ISO_Y_SCALE) func _screen_point(world_point: Vector2) -> Vector2: @@ -182,6 +221,42 @@ func _tile_data(q: int, r: int) -> Dictionary: return {} +func set_home_location(q: int, r: int) -> void: + home_tile = Vector2i(q, r) + selected_tile = home_tile + _build_tiles_around(q, r, 9) + camera_offset = -_iso_world_point(q, r) + queue_redraw() + + +func set_visible_locations(locations: Array, username: String) -> void: + visible_tiles.clear() + owned_tiles.clear() + + for item in locations: + if typeof(item) != TYPE_DICTIONARY: + continue + + var location: Dictionary = item + var q: int = int(location.get("q", 0)) + var r: int = int(location.get("r", 0)) + var terrain: String = str(location.get("terrain", "Field")) + var owner: String = str(location.get("ownerUsername", "")) + var key: String = _tile_key(q, r) + + visible_tiles[key] = location + _add_or_update_tile(q, r, terrain) + + if not owner.is_empty() and owner == username: + owned_tiles[key] = location + + queue_redraw() + + +func _tile_key(q: int, r: int) -> String: + return "%d,%d" % [q, r] + + func _tile_height(q: int, r: int) -> float: var distance: int = max(max(abs(q), abs(r)), abs(-q - r)) if distance <= 1: @@ -207,6 +282,10 @@ func _terrain_name(q: int, r: int, height: float) -> String: func _terrain_color(q: int, r: int, height: float) -> Color: var terrain: String = _terrain_name(q, r, height) + return _terrain_color_for_name(terrain, q, r, height) + + +func _terrain_color_for_name(terrain: String, _q: int, _r: int, _height: float) -> Color: match terrain: "Command": return Color(0.68, 0.58, 0.28) diff --git a/microservices/LocationsApi/Controllers/LocationsController.cs b/microservices/LocationsApi/Controllers/LocationsController.cs index b7d241a..6803d83 100644 --- a/microservices/LocationsApi/Controllers/LocationsController.cs +++ b/microservices/LocationsApi/Controllers/LocationsController.cs @@ -17,6 +17,7 @@ public class LocationsController : ControllerBase _locations = locations; } + [Authorize(Roles = "USER,SUPER")] [HttpGet] public async Task>> GetAll( [FromQuery] int? minQ, @@ -24,6 +25,25 @@ public class LocationsController : ControllerBase [FromQuery] int? minR, [FromQuery] int? maxR) { + if (!User.IsInRole("SUPER")) + { + var username = User.FindFirstValue(ClaimTypes.Name); + if (string.IsNullOrWhiteSpace(username)) + { + return Unauthorized(); + } + + var visible = await _locations.GetVisibleAsync(username); + if (minQ.HasValue && maxQ.HasValue && minR.HasValue && maxR.HasValue) + { + visible = visible + .Where(x => x.Q >= minQ.Value && x.Q <= maxQ.Value && x.R >= minR.Value && x.R <= maxR.Value) + .ToList(); + } + + return Ok(visible); + } + var locations = minQ.HasValue && maxQ.HasValue && minR.HasValue && maxR.HasValue ? await _locations.GetRangeAsync(minQ.Value, maxQ.Value, minR.Value, maxR.Value) : await _locations.GetAllAsync(); @@ -31,9 +51,22 @@ public class LocationsController : ControllerBase return Ok(locations.Select(LocationResponse.FromLocation).ToList()); } + [Authorize(Roles = "USER,SUPER")] [HttpGet("{q:int}/{r:int}")] public async Task> Get(int q, int r) { + if (!User.IsInRole("SUPER")) + { + var username = User.FindFirstValue(ClaimTypes.Name); + if (string.IsNullOrWhiteSpace(username)) + { + return Unauthorized(); + } + + var visibleLocation = await _locations.GetVisibleLocationAsync(username, q, r); + return visibleLocation is null ? NotFound() : Ok(visibleLocation); + } + var location = await _locations.GetAsync(q, r); return location is null ? NotFound() : Ok(LocationResponse.FromLocation(location)); } @@ -48,10 +81,61 @@ public class LocationsController : ControllerBase return Unauthorized(); } + if (!User.IsInRole("SUPER") && !await _locations.CanSeeAsync(username, request.Q, request.R)) + { + return NotFound(); + } + var location = await _locations.ClaimAsync(request.Q, request.R, username); + if (location is null) + { + return Conflict("Location is already controlled by another player."); + } + return Ok(LocationResponse.FromLocation(location)); } + [Authorize(Roles = "USER,SUPER")] + [HttpGet("home")] + public async Task> GetHome() + { + var username = User.FindFirstValue(ClaimTypes.Name); + if (string.IsNullOrWhiteSpace(username)) + { + return Unauthorized(); + } + + var home = await _locations.GetHomeAsync(username); + return home is null ? NotFound() : Ok(LocationResponse.FromLocation(home)); + } + + [Authorize(Roles = "USER,SUPER")] + [HttpPost("home")] + public async Task> AssignHome() + { + var username = User.FindFirstValue(ClaimTypes.Name); + if (string.IsNullOrWhiteSpace(username)) + { + return Unauthorized(); + } + + var home = await _locations.AssignHomeAsync(username); + return Ok(LocationResponse.FromLocation(home)); + } + + [Authorize(Roles = "USER,SUPER")] + [HttpGet("visible")] + public async Task>> GetVisible([FromQuery] int? depth) + { + var username = User.FindFirstValue(ClaimTypes.Name); + if (string.IsNullOrWhiteSpace(username)) + { + return Unauthorized(); + } + + return Ok(await _locations.GetVisibleAsync(username, depth)); + } + [Authorize(Roles = "SUPER")] [HttpPut] public async Task> Upsert([FromBody] UpsertLocationRequest request) diff --git a/microservices/LocationsApi/Models/Dto.cs b/microservices/LocationsApi/Models/Dto.cs index 8566049..879deba 100644 --- a/microservices/LocationsApi/Models/Dto.cs +++ b/microservices/LocationsApi/Models/Dto.cs @@ -21,10 +21,13 @@ public class LocationResponse public int Q { get; set; } public int R { get; set; } public string Terrain { get; set; } = "Field"; + public string Kind { get; set; } = "Open"; public string? OwnerUsername { get; set; } public string? Label { get; set; } public int Level { get; set; } + public DateTime? HomeAssignedAtUtc { get; set; } public DateTime UpdatedAtUtc { get; set; } + public bool IsVisible { get; set; } = true; public static LocationResponse FromLocation(Location location) => new() { @@ -32,9 +35,48 @@ public class LocationResponse Q = location.Q, R = location.R, Terrain = location.Terrain, + Kind = location.Kind, OwnerUsername = location.OwnerUsername, Label = location.Label, Level = location.Level, - UpdatedAtUtc = location.UpdatedAtUtc + HomeAssignedAtUtc = location.HomeAssignedAtUtc, + UpdatedAtUtc = location.UpdatedAtUtc, + IsVisible = true + }; + + public static LocationResponse FromCoordinate(int q, int r) => new() + { + Q = q, + R = r, + Terrain = LocationTerrain.FromCoordinate(q, r), + Kind = "Open", + Level = 1, + UpdatedAtUtc = DateTime.UtcNow, + IsVisible = true }; } + +public static class LocationTerrain +{ + public static string FromCoordinate(int q, int r) + { + var height = Math.Max(Math.Max(Math.Abs(q), Math.Abs(r)), Math.Abs(-q - r)); + if (height <= 1) + { + return "Command"; + } + if ((q * 19 + r * 7) % 5 == 0) + { + return "Highland"; + } + if ((q + r) % 4 == 0) + { + return "Forest"; + } + if ((q * 3 - r) % 6 == 0) + { + return "Ore"; + } + return "Field"; + } +} diff --git a/microservices/LocationsApi/Models/Location.cs b/microservices/LocationsApi/Models/Location.cs index be419a9..da2b09a 100644 --- a/microservices/LocationsApi/Models/Location.cs +++ b/microservices/LocationsApi/Models/Location.cs @@ -12,9 +12,11 @@ public class Location public int Q { get; set; } public int R { get; set; } public string Terrain { get; set; } = "Field"; + public string Kind { get; set; } = "Open"; public string? OwnerUsername { get; set; } public string? Label { get; set; } public int Level { get; set; } = 1; + public DateTime? HomeAssignedAtUtc { get; set; } public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow; public DateTime UpdatedAtUtc { get; set; } = DateTime.UtcNow; } diff --git a/microservices/LocationsApi/README.md b/microservices/LocationsApi/README.md index 16260c4..537eef7 100644 --- a/microservices/LocationsApi/README.md +++ b/microservices/LocationsApi/README.md @@ -4,10 +4,14 @@ Tracks hex locations for the territory map. ## Endpoints -- `GET /api/locations` List all known locations. -- `GET /api/locations?minQ=-7&maxQ=7&minR=-7&maxR=7` List a coordinate range. -- `GET /api/locations/{q}/{r}` Fetch one location. +- `GET /api/locations` List visible locations for USER/SUPER, all known locations for SUPER. +- `GET /api/locations?minQ=-7&maxQ=7&minR=-7&maxR=7` List a coordinate range, constrained by visibility for USER. +- `GET /api/locations/{q}/{r}` Fetch one visible location for USER, any known location for SUPER. - `POST /api/locations/claim` Claim a location for the authenticated user. +- `GET /api/locations/home` Get the authenticated user's home location. +- `POST /api/locations/home` Assign or return the authenticated user's home location. +- `GET /api/locations/visible` Get locations visible to the authenticated user. +- `GET /api/locations/visible?depth=3` Override visibility depth for a request. - `PUT /api/locations` Upsert location data (SUPER only). `claim` and `put` require the same JWT issued by AuthApi. diff --git a/microservices/LocationsApi/Services/LocationService.cs b/microservices/LocationsApi/Services/LocationService.cs index 125dc13..240e5de 100644 --- a/microservices/LocationsApi/Services/LocationService.cs +++ b/microservices/LocationsApi/Services/LocationService.cs @@ -6,6 +6,9 @@ namespace LocationsApi.Services; public class LocationService { private readonly IMongoCollection _locations; + private readonly int _homeMinDistance; + private readonly int _homeSearchRadius; + private readonly int _visibilityDepth; public LocationService(IConfiguration cfg) { @@ -14,6 +17,9 @@ public class LocationService var client = new MongoClient(connectionString); var database = client.GetDatabase(databaseName); _locations = database.GetCollection("Locations"); + _homeMinDistance = int.TryParse(cfg["World:HomeMinDistance"], out var minDistance) ? Math.Max(1, minDistance) : 8; + _homeSearchRadius = int.TryParse(cfg["World:HomeSearchRadius"], out var searchRadius) ? Math.Max(_homeMinDistance, searchRadius) : 80; + _visibilityDepth = int.TryParse(cfg["World:VisibilityDepth"], out var visibilityDepth) ? Math.Max(0, visibilityDepth) : 3; var coordinateIndex = Builders.IndexKeys .Ascending(x => x.Q) @@ -21,6 +27,17 @@ public class LocationService _locations.Indexes.CreateOne(new CreateIndexModel( coordinateIndex, new CreateIndexOptions { Unique = true })); + + var ownerHomeIndex = Builders.IndexKeys + .Ascending(x => x.OwnerUsername) + .Ascending(x => x.Kind); + _locations.Indexes.CreateOne(new CreateIndexModel( + ownerHomeIndex, + new CreateIndexOptions + { + Unique = true, + PartialFilterExpression = Builders.Filter.Eq(x => x.Kind, "Home") + })); } public Task> GetAllAsync() => @@ -44,13 +61,16 @@ public class LocationService var update = Builders.Update .SetOnInsert(x => x.CreatedAtUtc, now) .Set(x => x.Terrain, NormalizeTerrain(request.Terrain)) + .Set(x => x.Kind, "Open") .Set(x => x.Label, request.Label) .Set(x => x.Level, Math.Max(1, request.Level)) .Set(x => x.UpdatedAtUtc, now); if (!string.IsNullOrWhiteSpace(ownerUsername)) { - update = update.Set(x => x.OwnerUsername, ownerUsername); + update = update + .Set(x => x.OwnerUsername, ownerUsername) + .Set(x => x.Kind, "Claimed"); } var options = new FindOneAndUpdateOptions @@ -65,12 +85,22 @@ public class LocationService options); } - public async Task ClaimAsync(int q, int r, string username) + public async Task ClaimAsync(int q, int r, string username) { var existing = await GetAsync(q, r); if (existing is not null) { + if (!string.IsNullOrWhiteSpace(existing.OwnerUsername) && + !string.Equals(existing.OwnerUsername, username, StringComparison.OrdinalIgnoreCase)) + { + return null; + } + existing.OwnerUsername = username; + if (string.IsNullOrWhiteSpace(existing.Kind) || existing.Kind == "Open") + { + existing.Kind = "Claimed"; + } existing.UpdatedAtUtc = DateTime.UtcNow; await _locations.ReplaceOneAsync(x => x.Id == existing.Id, existing); return existing; @@ -79,6 +109,203 @@ public class LocationService return await UpsertAsync(new UpsertLocationRequest { Q = q, R = r, Terrain = "Field" }, username); } + public async Task GetHomeAsync(string username) => + await _locations.Find(x => x.OwnerUsername == username && x.Kind == "Home").FirstOrDefaultAsync(); + + public async Task AssignHomeAsync(string username) + { + var existingHome = await GetHomeAsync(username); + if (existingHome is not null) + { + return existingHome; + } + + var homeLocations = await _locations.Find(x => x.Kind == "Home").ToListAsync(); + + foreach (var candidate in HomeCandidates(username)) + { + if (!IsFarEnoughFromHomes(candidate.q, candidate.r, homeLocations)) + { + continue; + } + + var existingLocation = await GetAsync(candidate.q, candidate.r); + if (existingLocation is not null && !string.IsNullOrWhiteSpace(existingLocation.OwnerUsername)) + { + continue; + } + + var home = await TryCreateHomeAsync(username, candidate.q, candidate.r); + if (home is not null) + { + return home; + } + + homeLocations = await _locations.Find(x => x.Kind == "Home").ToListAsync(); + } + + throw new InvalidOperationException("No valid home location is available in the configured search radius."); + } + + public async Task> GetVisibleAsync(string username, int? visibilityDepth = null) + { + var ownedLocations = await _locations.Find(x => x.OwnerUsername == username).ToListAsync(); + if (ownedLocations.Count == 0) + { + ownedLocations.Add(await AssignHomeAsync(username)); + } + + var depth = Math.Max(0, visibilityDepth ?? _visibilityDepth); + var visibleCoordinates = new HashSet<(int q, int r)>(); + + foreach (var owned in ownedLocations) + { + foreach (var coordinate in HexRange(owned.Q, owned.R, depth)) + { + visibleCoordinates.Add(coordinate); + } + } + + var minQ = visibleCoordinates.Min(x => x.q); + var maxQ = visibleCoordinates.Max(x => x.q); + var minR = visibleCoordinates.Min(x => x.r); + var maxR = visibleCoordinates.Max(x => x.r); + + var existingLocations = await GetRangeAsync(minQ, maxQ, minR, maxR); + var existingByCoordinate = existingLocations.ToDictionary(x => (x.Q, x.R), x => x); + + return visibleCoordinates + .OrderBy(x => x.q) + .ThenBy(x => x.r) + .Select(coordinate => + existingByCoordinate.TryGetValue(coordinate, out var existing) + ? LocationResponse.FromLocation(existing) + : LocationResponse.FromCoordinate(coordinate.q, coordinate.r)) + .ToList(); + } + + public async Task GetVisibleLocationAsync(string username, int q, int r) + { + if (!await CanSeeAsync(username, q, r)) + { + return null; + } + + var existing = await GetAsync(q, r); + return existing is null + ? LocationResponse.FromCoordinate(q, r) + : LocationResponse.FromLocation(existing); + } + + public async Task CanSeeAsync(string username, int q, int r) + { + var ownedLocations = await _locations.Find(x => x.OwnerUsername == username).ToListAsync(); + if (ownedLocations.Count == 0) + { + return false; + } + + return ownedLocations.Any(owned => HexDistance(owned.Q, owned.R, q, r) <= _visibilityDepth); + } + + private async Task TryCreateHomeAsync(string username, int q, int r) + { + var now = DateTime.UtcNow; + var update = Builders.Update + .SetOnInsert(x => x.CreatedAtUtc, now) + .Set(x => x.Terrain, "Command") + .Set(x => x.Kind, "Home") + .Set(x => x.OwnerUsername, username) + .Set(x => x.Label, $"{username}'s Home") + .Set(x => x.Level, 1) + .Set(x => x.HomeAssignedAtUtc, now) + .Set(x => x.UpdatedAtUtc, now); + + try + { + return await _locations.FindOneAndUpdateAsync( + x => x.Q == q && x.R == r && (x.OwnerUsername == null || x.OwnerUsername == username), + update, + new FindOneAndUpdateOptions + { + IsUpsert = true, + ReturnDocument = ReturnDocument.After + }); + } + catch (MongoWriteException) + { + return await GetHomeAsync(username); + } + catch (MongoCommandException) + { + return await GetHomeAsync(username); + } + } + + private IEnumerable<(int q, int r)> HomeCandidates(string username) + { + var preferredDirection = Math.Abs(username.GetHashCode()) % 6; + yield return (0, 0); + + for (var radius = _homeMinDistance; radius <= _homeSearchRadius; radius++) + { + foreach (var candidate in HexRing(radius, preferredDirection)) + { + yield return candidate; + } + } + } + + private static IEnumerable<(int q, int r)> HexRing(int radius, int directionOffset) + { + var directions = new (int q, int r)[] + { + (1, 0), + (1, -1), + (0, -1), + (-1, 0), + (-1, 1), + (0, 1) + }; + + var q = directions[(4 + directionOffset) % 6].q * radius; + var r = directions[(4 + directionOffset) % 6].r * radius; + + for (var side = 0; side < 6; side++) + { + var direction = directions[(side + directionOffset) % 6]; + for (var step = 0; step < radius; step++) + { + yield return (q, r); + q += direction.q; + r += direction.r; + } + } + } + + private static IEnumerable<(int q, int r)> HexRange(int centerQ, int centerR, int radius) + { + for (var dq = -radius; dq <= radius; dq++) + { + var minDr = Math.Max(-radius, -dq - radius); + var maxDr = Math.Min(radius, -dq + radius); + for (var dr = minDr; dr <= maxDr; dr++) + { + yield return (centerQ + dq, centerR + dr); + } + } + } + + private bool IsFarEnoughFromHomes(int q, int r, List homeLocations) => + homeLocations.All(home => HexDistance(q, r, home.Q, home.R) >= _homeMinDistance); + + private static int HexDistance(int q1, int r1, int q2, int r2) + { + var s1 = -q1 - r1; + var s2 = -q2 - r2; + return Math.Max(Math.Max(Math.Abs(q1 - q2), Math.Abs(r1 - r2)), Math.Abs(s1 - s2)); + } + private static string NormalizeTerrain(string terrain) { var trimmed = terrain.Trim(); diff --git a/microservices/LocationsApi/appsettings.json b/microservices/LocationsApi/appsettings.json index ea15e83..db4cbce 100644 --- a/microservices/LocationsApi/appsettings.json +++ b/microservices/LocationsApi/appsettings.json @@ -14,5 +14,10 @@ "Issuer": "territory-autobattler", "Audience": "territory-autobattler-auth-api" }, + "World": { + "HomeMinDistance": 8, + "HomeSearchRadius": 80, + "VisibilityDepth": 3 + }, "AllowedHosts": "*" } diff --git a/microservices/LocationsApi/bin/Debug/net8.0/LocationsApi.dll b/microservices/LocationsApi/bin/Debug/net8.0/LocationsApi.dll index 3773376001bf3e3f0c2654d4ded8f92b6bf0ef04..fc8f215cc06045a78c35edefb5a38462346a69a4 100644 GIT binary patch literal 54272 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 O%T)aTQvY*3@P7e4smAdD diff --git a/microservices/LocationsApi/bin/Debug/net8.0/LocationsApi.exe b/microservices/LocationsApi/bin/Debug/net8.0/LocationsApi.exe index f04bd48733370d650a04451d2511ee933cf5bed4..9a418e464de5e3e3d50b779ddb6d9e838e336cf0 100644 GIT binary patch delta 99 zcmWNH(G7qg6ay=NZi4|uh9J&>fNO|}gE)kV>v_rR>!rE=jGeoO*VwdGRZW^n;b$Gt hqNr6?jc)Q7p1oo?76(V1jK4#bb_zH_c7*ZLG8O#_Gfn+jJB#FTg2u*=(bD&rXP$msX h8UwK*g9(ELkOqk*1LZ*aErDXjK$WK3>wTFTnE=Q=5z7Do diff --git a/microservices/LocationsApi/bin/Debug/net8.0/LocationsApi.pdb b/microservices/LocationsApi/bin/Debug/net8.0/LocationsApi.pdb index 27456465fe5c29aa2ca340dc58dcf41bb2cd3dc1..c46eeaa4b3f77b31f25bd15110b2066c4827f096 100644 GIT binary patch delta 8347 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 O%T)aTQvY*3@P7e4smAdD diff --git a/microservices/LocationsApi/obj/Debug/net8.0/LocationsApi.pdb b/microservices/LocationsApi/obj/Debug/net8.0/LocationsApi.pdb index 27456465fe5c29aa2ca340dc58dcf41bb2cd3dc1..c46eeaa4b3f77b31f25bd15110b2066c4827f096 100644 GIT binary patch delta 8347 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 diff --git a/microservices/LocationsApi/obj/Debug/net8.0/ref/LocationsApi.dll b/microservices/LocationsApi/obj/Debug/net8.0/ref/LocationsApi.dll index f3568be22a2cdb7b6a03bb596bf4bf8b85cad5d7..df9f38a01e89e823e5a543f89500aff11470b6c0 100644 GIT binary patch literal 18944 zcmeHP3v?XSdH!eiq18%S%kl&HA#3&U8?PnHFJW2M(^z2HvLu^;1JZbRByU*l$~!A# zK~q+BOhQObpd=(TkjNP5At`y0QfLlE=20Lg=?N|LBsA%f1Efh$nkVTAfk40ipPk3b zGIq#0J$*3p{pbI`|G)pe_rG`U+_|&k?yGJk4-t8h-hP|t5uEvG5&F&~3w5aSZ$tF; z!f#hSqU`>5RsZ3*5gtvahSS%W zqTPy@(i2yH!76QrvbTZjTKn*iipE;%xCG#-PD+SzTf>TQ{| z5Vb`z`mqdv%q1WIBqn~GT}PN`Fp@UXQDD-BEEu+FLvkH0@DNGsi4+W_O_NX}hIti( z*m71*fbSjuCnNBskzZaj75YufV+STba_jXsE%-m#$oCp`&It7Iyo!V8CY5~D-$L|P zjYJA$q!}{}!1Elz`PWlh-(_uzcrfRgqZ=c2k%qd4diW)jkpN9p5!L)D(RXn!o&&xw zla42c4Yqg%Q$J7PHT(PM$KZL6thsc5R|n3&h5U6)tTk%SG^8YC1$Uqs^hu@Y%D5}RshU;)lGNG(X4kQfI{g-ECxjvp4X%%SKG{G!ND zorO#v^FLEGhe|Px`sppf`wK=2{j{j?iJ+gJEns>==siM50*t)ueSK%7$R>;0G8Xqm(dqW&IA|IuZw#;e)=b|e;)RW>DJ%~Y_3-Ni_QWBcVr)5U(eNo@8C zUFl=werT)d&;6Cf)ui}e2v*a-6;u`n$rE_d8>9sVOjr3|^sb=Vg3qIkHwpeph4BrA zOur(?PlY}K$}zpv!_*urrSxkAy;URyeID|?RK$`8sg(XTbZs$9A(5WTNsC0<;x~26 zXhJEawxB6(5#7O@v{j^F(ZZ6a!R;kaRVjS~rL)f~$b)>m*l5M*e4k4fpesdJA-cJA zl}HCgDx-rU-6Ya{dcR0_iBwKki}Xv8me4gKeNCigG$7J5B309%NZ%K!mNbzHFyvZk zIUN#dsYoj@ez~5_7^1Bh*Fz$0mNwK;T%?ypw;5L$Tk;rgrEQcF=?mgz2c<<)#j=CO zMDmE2%jlR$-xOUpWktGEq`mYJk%mRuM_4tYgn5$h3c8(+LpmbT`{@qR9g)(n&Pk6- zK8-#tx`QIc=r2UtDAHlNTcj7Ho+C6V(k-IP&?%9ACDL_tzevlayc_5N+Dscfr*PRf z&|iX{R=x~crTz`B&1FT8Gxag`&3RlbpMZ8B{XN?&Ous2~jmrE!^+nJL^;OU>3-Ucs zKiw@JOq%xp!baW*;&Py;i;ZKnro9_6Z6+|N{dBv~dxbtM)NT1%r~oz}E-Yf| zXZzm==YX0%O+OZ1ZsTqb`8J%_t)0!!Oq;Vk%$6%`mws#EI`H|qHriTu>88z1(&`6< zURlCzH0h^=|BS>u-h@fAGJL!q~73m;1eFM;q5~275cDHEAK97FDpI( z>PB7*T{SD7Uk7)tYhZt_vd;FOk8s|}TqNB-xo&2=*uJL)7Z}}!`Rll%kSX0%ej2m7 z>XL3&Y>BG8pHMuOj(+61%O&-AA5;o#-Id-)l%OrG^FE~%+tPgRcW|xe$|EnNGFy7h z^O7>pmbQBTLs?);FL_>97FkkY%;Qy;+R_ak1y5HwpMlRnS7A$^gU*rG1Ow_aTemq_ zN{;kUVL+|4b&nO6k|RA+=vBkE?s?qPZAoHQW$UI){B(7PtZOJvWCGk>Y>we}9 zsE+g-Zz)z8R{OYwT3g~09EnRczJ19`8z*w8Pgx>ug=OFQQt~ z9dt#oL5<{ecTm)SiMrmhl<3yGbgil--4x(hH&~Vdj_j7ehVOZPF196e-tDq=Z0SgBX-TH#WqFp4 z#Fmz1T3()K=}2s8Nv7rQJWEGnOG`2>yYnm^i7hS3wA_h0YAY_g{C?`O zr8h&k7A>i8bLd&smXuLE1?{tSpAL07l2Tvvk7}=_Q$AS~qrRMEmS;(46fUpdw&e0` zNy@V&DQ~}JS;*ztl9YGA(n)z&V1$+R5Ivvef3v?S9~%d>POwzMSE@=%_oBeA6=nU>K!OGjeMC{|Spb>hihp*S9) z6s+TTUjVChJd0wrj=c%2)^mr#Yielm1OUs|LZziDebnAZc56LYxjVU-R|H|oxo+jh zH91UN70;fWXSUBrqEfg29vVX%-EGO||M)uGDAArh&iQ4%7UG&rO508THHqYfP^{=@ zITT*$&vKj_zmT%>Z5GnU=^~_Zq(w-Jk(MAWMXJCnjtV@(R^XYk0?)t|bSKudL8J$e z@azg~8L&!VmB1>2RRXI77DoOmq*|oqNGp(5BCSGNjkE@-ka&Kc3yR$-&>%F-*Mss3 zglVhLE}{E`UMW-)8W(y5RH1QDKYbN+0X-`84CrF|iQtTc>2=T*v`Frki{w7JT9Fc! zgP5xufj8j&!^5Et@Sngvpiy}kbMbt7sOT!%r#ytYUK9HxpdX-d;U_>#={Di-6#9V8 zm(o{7`=}tNg_dEJ`8g`X9p!U~%yAl3R?@X}Par}?ROE@!Jem)>gc?9=s0nl}wSqR# zjiB4;Hqdsu3-oe&0JKl=gF>V910Yd)+tW@4@^*^>3tY{}hdtCSv;_ZYWlVUR|_$i_HN)7K5?UW!-3Vm9TY2nWZ|FZC}3h(i7dwm{m zX(4E>KP*U%(B*=!7Q97}Rzcc@?-YJe_^41_kgV{>g`N=Pq|j4>+$a2$@J|YTT99es zUl#hRAmrt`d4z_A)(CA8+AefZXjEuc=!BQsa$NXHp(h17CH$1oCxuQ6JtNweg(n|J zo_sO}eA4^EhXoG{UnO{r@GXM32;VMrP>@04HL=VJKOy|2@KZvkg`N?d{9IyKXqBJK zZ4rJ@=!76Ag--kV>OLbp6-X|jEkauhIPakFS)mhxObUNe_$lE}3qLLVD+OzD)l)!P z9r!F=9qST&-}SeMwnelp!EMUIf>zOXh@Xz&XYsyf5SCR1gJL-- zmV@x46=-6ah4$KltZ1{M&BBjX@FDT=A+ec+&6f%$#b#1$CgI_i1^0?}3fi{{rbIgh z?e@S_@N%^1v}m6aKTkYKytAwPN-#S^Nz| z@1!871vw*>N*J#yVaq|`Cra3UO8C>jMS>aEH*#5L2(}K_(wo&GYz3{Db z*nUv>tk4N)uMSKKe^Rtl!k-p?T6ijDKVhMRLbF0Ag-!{b7D{u)Qs|)2tk6lJQ$nYO zwv@5uq|op@=CeYlg|^HWtx#IP{Gd?Wbn$k`kG}x^=3$+-41Zy)!>X}*yu)(_?0~aW`Vx7y20g6QSn|2>c?# z20m7~CE%C92k-9A0ly4B6hv$;_%M9%-s(K?)$pNE4XBE>>_y<0gQ{51@*BRDpeok1 zOTe!NRk5zE0KXPgrHkQD!D_D(d<6a!S`VsH9sDU+<<@}T0DlTKfU4M!TM51qRK*_K zYVg}YRlNUO3w}GOO3m=6&<;?QTHsH?3VA*FHuzJh9aN{v!Gg_;Pvyd^!Cy_(k**_(k-6@QZ00{9^hc_$Bls@Jr~&;Fr=*!7rtsfv=!n zq2?9z8tPm@|B2dG&~H)C3i=&tSV3>1ZWZ(v>b8tjr5@C)G=Tb*O`ri~3usVj1T9v! zfrgarh)>uP!sqS)C_(lwSixWciQVP4t9ZGMVEnJO?$v&#~S<^>Ic7u4uIc+ zID51Fr072G$5W&GH(5vM%ko6-#;zy4SjT}yft~d@1@QcvpZ9ut6wj>rb|0f2*%!$7 zceB{Ju_H7sm7xx+Z{!$M3mhz46AA9b4Q3rT&;czmruUDHqLv$|BQ7=4(&G?Zes`y$ z8dufv-(dOAG4Kx#{@FRWb}iYbyXv#ijt)2snfM4Bg6~g{x2JV2qvuC+lWh+!Hv%~a zBsPTmSUiSY27~pRZEJ8&=dcdIF8x?9er_a|TWm{k91d$#n_@1GYzlxgYRO?;a&D!j z{iBAScCy$A>mf8Z=9*?Z1<;*}jV1JE>bp)e4j&qeUYpP(t;XmcJ=2~_>k+`i!+Lsu z7qaiAVLdajj|`zB@#H>$4FdyFJ(q8(!-N`2!-Mjwf^ zrxFQW`qYSAsweeyJW8&vAw)o0C^cruJ&-Ug^M*O=?OtL5W68`Y9XiuT-k=e4jy1W0 zD2*{aazT2mHM2hxmByWo4kIf2N4d{kW_bWxm}ALhkq30gqv@298p^o4p!;Z4D$*5` zl5t{3m&cQ)ER5BbK0SRj9@R-3i^cUM7}s@8T|6VE48F!qhej@%re9k^~$hJS$F4j@}dscEr{(%+~4n^)ARPSx@(6^wIvq>D1Wp zVaL8-OQXYg;`j3Ub*c2Vj>5{dD;|sKNe8!TxD)L>pr;L?(2Jt0%N$!nyQTQ+m>vEu$I7=dMg<6qkzww2qD@;^xh$N5fofH-s&FQpQYV z%mr8@fE$G$+BS?~ft(rM13*k0tNmm~BvTsaJyP(|VD5jbCp?D&m zacPh8t(T%h!`4NTGmqpt5!Zr!QP5Go!;6CseKd2JVnVIU%|KttoU>ayq$gw&F*%-K zcI!tiOgIi`B4J;uoHr5!favqL9J$(%OzP*kZ{gaLV*B-U8p}l~*y63aS#ncd^S}TH z$x=`vx2$kYF`dUUdXmSvf$7CHVyP=%oOM#Nu16VOc2M=9+%1s0Q_0~}M_Ysky{k;u z?U+Xq9l;$mGca(-T!lGtaxMmn8wPsXp8c^rvx=MLjvH~^B${&bp|k9=kgjB=VZ+7N zbjd<|Y1IvSZ-Jxi1DU z2|W1d_}0}w_|jnDyWMxbp=|042HG|}ciYN`p6CyJ^3FAVb2?tGk{{fA{AH^O{0quD zm9j2AcPnN4a`JxFAA-6r1UNgP=IRreV~S4)2v@a8^XIxy(}hpAcZwBkjbN+i zh?3@yOAz9agj*}-py`U(hD*aClYE-Nn!<2Soy<$(aUSK&fx zU%cF^FoIwCP+&IN^YlZnSxEYes$p$X>D{*D%p7~ibV=$QeFsOXDG1a zZyoTP8m8M7Dv#{x?B}NlOp+Jp7CqaKZjIEzOK85mPR?yK@tQKgIl{1*t5C6Z`O4x4 zo0a5~n-sn=LP7QT3<-aPpZ!xrgtf6){igcpCT*yGbK}-Jy;0v7+c*@9HZ(R2HEz~6 z9cqkiYS^-IOO&Vzd)Ur>$2Ftx9mVn-OD$S~-RyUMr01m(e(gXT-PN@3w-F1?-C)B%aKCaQzKwInUDK^E!0x=E+4E<=s7^9r#sqUg*y2C^wwAcKA9Ezl!!A z##SG`PsW>?Kg^Reve?KJ^hrlrceZ^> zFX4lD?9}stfdhry&2h6MT7b{vw9)wbgHe0iQ#2X=@-hG5 z?=0O%NABBD#;#$$g}Jj2>l;#2Gl1E<^B6Xi@a#8YL@|}?@+isLx0h2(i)r>A{T~a2$K=Htda|U)PNapbs?_Ic{6x1mLt2prCSv(yRn>xIK zHvcx_*T=XG;%zg(6>o>X5gL^;#?c}T5~dFvyP=7?$~5q1coe1Z(I$DVT6Z9a0b8!a zXkH!P$wwX5WQtwi1MrcC7pHyocz<4JCoYrU)^mh1Vw*(W60RDbtE>pcV3&}3V`T^* zyODoba&zlP@heiU`7j-ZXX5dOH|1Q`-W<-6<+7~yvSdc-LdrDb+yh@J)MN~C%D8I% z&T;-TdE1|#cV?uVIIV^M7}euVdOb?ngjx=P+l;sATMM$h%^Mc z8Md1+E*gPv0=5M;gZqu>`^Sm?-8JZc{*A|* zb{rc?gpZp0#M`T}=&cT84>QGEE!(U2_wQV{wK|Nw^khs+q>}pf>T%tu-qBnVED1Jg zxxMf(TqKR{)nn=8B}VkHKB5`xMywr}bvky*&cb2a zSr<05GuZOXs}rxvtHb=RV|#V?xNCbPqK%GLuQxqp(ql%3H?}XZJ{zhfAIdiL=vW$M z=42qbr+Pisla3$7M*6UBT%gwm%WD{i;|Djq=omlO$i`|o!JDevt2Lu5c{Fvco~{m$ z#ap9M-9Q+Jw1lDO8YNEF&r%z!>g)6B-n8Bh0t}kgTRqe)!{*(QQ7k8rbCmyonfH$W HcMh2)A$V?>g}US>A6M8rlFw)EC9oI6nBC`|BKwc`dQ@$;GHQ8*bK0UA9<6qSGP zTx4w%YJ%T=OwSU%6e#O;`M z5OpQ;`g9(G&(;GVkUk0H>^tH_qY2Y8laNUcvmn^!lPJEU10E8lp3cIMbD}vE6$M@G zKRVE^pZ}Qt-R*%Vul$z>RvZ|+>fT%L`1I!=p7syf-`%7?&dlwB)R;~3+@w;7hB`2X z))6V-Q5MZKw(YsFqWVVa8oaVg5fAn}GqowvlxS^gZQjl`LzD*2#)umJfavEq&y|B7 z%$r7L!eWa*#6-(ec*F1@-4B}Q$cEj+eLXnOfsbRJZsMRh+q<^HA8f5{2_dIJ6vvXe!J+cf&7(uat%9?GWRw zfv=Y>r(eNUn4S>Hs$gw6OeaITpuH!^c%|TkV6DiX2<$4Wpw3Wjd6<4I-X;RD9=P5~iD_m4{$|K2?{!1DkuOEpickk4`{a9$*j8 zi?`n(wlKY{vga=mV@r@F-&XGn*V8qDvPeCJ0@s$+(^rFKkqUY-*ris`zXcdK2sVY7 z{!3!~A!y`_c-GRJfd<6?DbYS8m=^87L(6@1m2{PT-J^5|WS!_u{)>{Kez%OdfN;6; z!3cBZ!d+kFs)f5OVCz;1_v5h5trzazvUek20@Y4|x+p!4_Sj1|1(YaZ7=a5>k53n& zUeR45x^mhjT$^yqXt!_&gj zbu=itCBoGgxnD@VwRE-UUKVaWT_@Z+v23B=qb;;s(J^q#$pF4Yhk$R=3`W?O%Z>nN zRK|zPkBH@MppPk^1>PliTyReCmNJ$i#|)C6C(;UCh-TfX?Ht53g5N zxH=uPlgmlA)vk^s^Ei&o<2bS!*ODW1Iq|a6)m^VPDjqkcMlmX#{J4c$m*W;Zj$1g- z)o}|R$GNX^b)37$-HP_kcXbbpbN4vT-Qzg-xNFI|dmQIp=ju3jkK^3yT^;A{ah!XDtK-}~ zj&on*>Nt0g>t>Nt0gi>s~5T36SM+&zx_uw&kW0OOInqhqEm=msolnTRNO=xuwL?5}Z+M=N zOwXR9KMT&z&XMs~lFI#H%T%g>%wzzSL?bTcqY+XXuX z`veaNUMHvt8iI#_3jDF3KL^&(vx299=VN8Sa+bvD9paJx4)Il16qZ*B)&V!rI-#3^ zQR)=>fFRRR(u6jIJ|y&vV2n1>DCUu)^a@=}qe5%JywD4Rr^KE@+}4`V zX<%oFTkH{fROBh4XN5izI!>1YZvYls6O#v$tTF>A28!VfNV}^k|rK z85LR!OSB@H70D5?oD<2MNFEi*yh!FnvLHxh+)7-qLvU1ZR&b&0Zn`tDfVKM@%0k(z zK#JT=F9s;W5{kS}ZzB+xR`opW<2ZnBYH#{|xl7pb=)dUpua{)-SQ`zaVmd ztrhCmVfo?hH;X;jQZeiDn`H%1#XJ=Py%ea@GQ_J;B~Zo6+Mph_3QR-uc4DprKGpyNOlt2};Ztp}=@87~06 z2B=~dy%6+Tpo+QlV$hcYRm_`ppf>6hMoq!lAZy*68iz`k>$5Q*V12u4$kuP(tqp-m+pAC(%zxs479>zB3Ci^2x5qLId6dktNSmCWKc z8brq9p#o(Ite2uJL#aerjuJ(wLW!ZQKql2FH7F}lYEf{s^=n3^eGRp>Zyy1N*5Zl*R{!fG&L>T0*Jcl2a7RY>dYGCAM zrK@|((-z$Ge4Y9O3Nhz z4zt_TOD#$S{YKKvTG{cuKiB@Lq&V+OiA$XJWRn_S)TZU)csoWppk)vo-g4ozp~59W`<^R zI=x>m=yp@5?rbJ+a{rrMnx(rLVHoDJ83@|in@2{(F|o%!^eHxl#|n9_I+-(2Q7)O? znU1PQA1h2u@EzcpJNJYq>9j0;ax6VFWaRyZXC&&?7|5bwkL@hr7BY<+eImPM-5kv8 zxuJt*wlHzfvmeq-T$x??5UL-}nm2d~r`8olDy3&Uxf9_om&kW$sv^=?eJ;cX= zp4O&?^68yq_M5n;lX||FqHRDN;h;H)z;zZ`D90}*7Wqftm%YlM!`b5P$L`?I>n2|Q}KJAp2F6fjT zpICH5C5l%HA2>*##$?Ncb3swU3N&`c9C9kH&J1eYbe;bY9Q!Ftu=d`vx5K zm9l4@6r9`1cIwPO`gn12rv7YZBHPoI;4$lK)Au;w@qumfw)XtU$e8_P^ZLab%Vby< zt|29o`K;+&mmWi#$Y5+4Nz1E)>yRkUu9jn1yxvIAo_}1ueHY_8;-RHmCE>CYLrWVs zN^S{vpjm_|!9u{BMn>}Zp@h>0rVd?8!Bv7E)r$gR_i4-RezfF1F5a*I6P;sL-qh@e zoX>ty-<6u3`FP~vV?S^A<#?_@ytV)X$B{V0gU2urg5vbJ4f* zf>RV_H8fQ>E3ws}msY@f_60SzI(FVt5rchPiJb>sHA+0{32R~o6kK`sDJ2q;^>K(0 zeWhfgEsax6OjpEgbu=FImPTdXL&l<&OX2}XT!~KNj)FU?nmuNB#<4J= z(b#HfV(B`^D`K?6v4c4im)mU=vx!8O$5DZUlk8&Ei}+~ZQnY<3+P;+Aj^H(y`;{(I z@ZvF~uDr(7a(lCx-sz++wk4Y2 zrLx+6Ko?i+d-1%EaE&-Ds_-7^3^kdisRD1pa_i&EHX3Tihi&{3wc_nfnDyIRnzoMX zty{F#WYbu4^XBAMEwyDl)tYMFv@Mm|lGIw7wr^_Pif__&c%$_0X5W3XFNbvj9tyM; z-ww{b80JZww&S(XAErBtB^+sS+FCCQdtSxbt8{8pXscr*_pmd+omtbj?6ueMbQ#`2 zKV)TZ9nE#O;70%o-ngh;q3tCed{c-Uf#nJ9_?;J%GXwA}t@o|Y0kq=xT=-OX)1e(k zCVz9|O{Sb>v~2tB;*rFPorzDvJfuPcSuB+*h6j5GHVh8$?;YSVljK*UkCL$et%+j( z7DD12-7cDuo!bg|Xb)xP;4GXp$L#`yobNOh(6I5~I zy&67Dc=7UU#tvkYTewZ$0p%Xbi){w6rF{{vki%1ISr@Sv}{NDH+{d}wJpqAEM z+*4jZt;ddQ3;Jv;#*mI3+AWB)740?QiZ|nLGw7|5rJxxHwxTp+4|f~REaR)q^|wRT z3QPW_8sA@hojP%CEO?!SuQYlrj{BkXig|JHbtC%WQKFyu2L0R5J>Pcu^kh0dWp5|! ztj7|iK90BGEWd8-tREiQwQ*a099u4#l$OqB^quuHx>bL9`?88<6>VB^%OnmL8Ea>K z!OZNik_Yuk&DuEWyoGE`W+!)O)?{L;xjsIrWsGsG(w$Y7vUfRg@ciK6mMrjFlDx3T)BLi&vtG0MGE>vRt|G3uw?;iLs@FOzO diff --git a/microservices/LocationsApi/obj/Debug/net8.0/refint/LocationsApi.dll b/microservices/LocationsApi/obj/Debug/net8.0/refint/LocationsApi.dll index f3568be22a2cdb7b6a03bb596bf4bf8b85cad5d7..df9f38a01e89e823e5a543f89500aff11470b6c0 100644 GIT binary patch literal 18944 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 diff --git a/microservices/LocationsApi/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json b/microservices/LocationsApi/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json index 5bf114b..99820e5 100644 --- a/microservices/LocationsApi/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json +++ b/microservices/LocationsApi/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"w7mmSUeJy3EjTBKOw9i7DTiAbSD0tO4IicJPYORYxAc=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["u6f8oDnbzrimiNBDeJHAHevNSr3MAeMqrDg9p7nyxOE=","5iNsYgTJ7UV3yFd6ljv5hsMAG441CEYl/SrWmWfNtXc=","9WHrt72HnJ5zi2iiKthnOFXj64buUk7n8VJpIRqlWUs=","H8SD/zn5odFOCH8IKkG0GxtQdpeP5bXD\u002BPPQyk8g9Tk=","TQpYeFHS2qgMU/ptlMMsuvxql0RCmqmAhUrgJv\u002BHh9A=","AubgranklSc/XcuzOmTCVcnLDHalwHX672pKnqMGGH0=","bRq\u002BCEv/2oksFWboXE/6CRNvoz7a//ybXVNKledXUhc=","aIYHzbHzogvauDRzzlcHDs54OxiLFduH5H6wBtjQMKk="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"w7mmSUeJy3EjTBKOw9i7DTiAbSD0tO4IicJPYORYxAc=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["tA5IfBScz2\u002Bs6UlS6C510zVinusuY1Dx2ibHDM/cVfc=","5iNsYgTJ7UV3yFd6ljv5hsMAG441CEYl/SrWmWfNtXc=","TEE2WzAfi463TJjsb9i\u002BmdcaoLigQZZABaffYxHGL7s=","H8SD/zn5odFOCH8IKkG0GxtQdpeP5bXD\u002BPPQyk8g9Tk=","TQpYeFHS2qgMU/ptlMMsuvxql0RCmqmAhUrgJv\u002BHh9A=","AubgranklSc/XcuzOmTCVcnLDHalwHX672pKnqMGGH0=","vddsqaGugGe8mVuoS05nGn\u002BxiJBwaOAoWwVS4\u002BKYa8A=","yZPWhf5bVqIwacMkpdMp2P17I1egbzHFZlg/l3vFlKk="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/microservices/LocationsApi/obj/Debug/net8.0/rjsmrazor.dswa.cache.json b/microservices/LocationsApi/obj/Debug/net8.0/rjsmrazor.dswa.cache.json index 2cdbd37..d461a5f 100644 --- a/microservices/LocationsApi/obj/Debug/net8.0/rjsmrazor.dswa.cache.json +++ b/microservices/LocationsApi/obj/Debug/net8.0/rjsmrazor.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"GFtoKVzjVKzTL2sykHz39KP6vofGVDcii0x1tMRS6e8=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["u6f8oDnbzrimiNBDeJHAHevNSr3MAeMqrDg9p7nyxOE=","5iNsYgTJ7UV3yFd6ljv5hsMAG441CEYl/SrWmWfNtXc=","9WHrt72HnJ5zi2iiKthnOFXj64buUk7n8VJpIRqlWUs=","H8SD/zn5odFOCH8IKkG0GxtQdpeP5bXD\u002BPPQyk8g9Tk=","TQpYeFHS2qgMU/ptlMMsuvxql0RCmqmAhUrgJv\u002BHh9A=","AubgranklSc/XcuzOmTCVcnLDHalwHX672pKnqMGGH0=","bRq\u002BCEv/2oksFWboXE/6CRNvoz7a//ybXVNKledXUhc=","aIYHzbHzogvauDRzzlcHDs54OxiLFduH5H6wBtjQMKk="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"GFtoKVzjVKzTL2sykHz39KP6vofGVDcii0x1tMRS6e8=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["tA5IfBScz2\u002Bs6UlS6C510zVinusuY1Dx2ibHDM/cVfc=","5iNsYgTJ7UV3yFd6ljv5hsMAG441CEYl/SrWmWfNtXc=","TEE2WzAfi463TJjsb9i\u002BmdcaoLigQZZABaffYxHGL7s=","H8SD/zn5odFOCH8IKkG0GxtQdpeP5bXD\u002BPPQyk8g9Tk=","TQpYeFHS2qgMU/ptlMMsuvxql0RCmqmAhUrgJv\u002BHh9A=","AubgranklSc/XcuzOmTCVcnLDHalwHX672pKnqMGGH0=","vddsqaGugGe8mVuoS05nGn\u002BxiJBwaOAoWwVS4\u002BKYa8A=","yZPWhf5bVqIwacMkpdMp2P17I1egbzHFZlg/l3vFlKk="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file diff --git a/microservices/LocationsApi/obj/Debug/net8.0/rpswa.dswa.cache.json b/microservices/LocationsApi/obj/Debug/net8.0/rpswa.dswa.cache.json index 25e9ae2..10f5105 100644 --- a/microservices/LocationsApi/obj/Debug/net8.0/rpswa.dswa.cache.json +++ b/microservices/LocationsApi/obj/Debug/net8.0/rpswa.dswa.cache.json @@ -1 +1 @@ -{"GlobalPropertiesHash":"igFr7v0EeKBfAjhR7vM0gDd+Q/K60wUiwt+1xe9MQyQ=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["u6f8oDnbzrimiNBDeJHAHevNSr3MAeMqrDg9p7nyxOE="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file +{"GlobalPropertiesHash":"igFr7v0EeKBfAjhR7vM0gDd+Q/K60wUiwt+1xe9MQyQ=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["tA5IfBScz2\u002Bs6UlS6C510zVinusuY1Dx2ibHDM/cVfc="],"CachedAssets":{},"CachedCopyCandidates":{}} \ No newline at end of file