Show objectives on minimap
This commit is contained in:
@@ -227,7 +227,12 @@ func _check_minimap_navigation_contract(failures: Array[String]) -> void:
|
||||
"_handle_minimap_mouse_button",
|
||||
"_handle_minimap_mouse_motion",
|
||||
"_is_minimap_visible",
|
||||
"_map_has_scrollable_area"
|
||||
"_map_has_scrollable_area",
|
||||
"_minimap_marker_rect",
|
||||
"_minimap_objective_marker_fill_color",
|
||||
"_minimap_event_marker_fill_color",
|
||||
"_draw_minimap_objective_markers",
|
||||
"_draw_minimap_event_markers"
|
||||
]:
|
||||
if not scene.has_method(method_name):
|
||||
failures.append("missing minimap helper: %s" % method_name)
|
||||
@@ -249,6 +254,30 @@ func _check_minimap_navigation_contract(failures: Array[String]) -> void:
|
||||
var first_cell_rect: Rect2 = scene._minimap_cell_rect(Vector2i(0, 0))
|
||||
if first_cell_rect.size.x <= 0.0 or first_cell_rect.size.y <= 0.0:
|
||||
failures.append("minimap cells should have visible area: %s" % str(first_cell_rect))
|
||||
var objective_cells: Array[Vector2i] = scene.state.get_objective_cells()
|
||||
if objective_cells.is_empty():
|
||||
failures.append("opening map should expose minimap objective markers")
|
||||
else:
|
||||
for objective_cell in objective_cells:
|
||||
var objective_marker_rect: Rect2 = scene._minimap_marker_rect(objective_cell, 1.36, 5.8, 9.0)
|
||||
if not map_rect.encloses(objective_marker_rect):
|
||||
failures.append("minimap objective marker should stay inside map body: %s within %s" % [str(objective_marker_rect), str(map_rect)])
|
||||
if scene._minimap_objective_marker_fill_color().a < 0.85:
|
||||
failures.append("minimap objective marker should be prominent")
|
||||
var has_event_marker := false
|
||||
for marker in scene.state.get_event_markers():
|
||||
var cells = marker.get("cells", [])
|
||||
if typeof(cells) != TYPE_ARRAY or cells.is_empty():
|
||||
continue
|
||||
has_event_marker = true
|
||||
for event_cell in cells:
|
||||
var event_marker_rect: Rect2 = scene._minimap_marker_rect(event_cell, 1.05, 4.8, 7.0)
|
||||
if not map_rect.encloses(event_marker_rect):
|
||||
failures.append("minimap event marker should stay inside map body: %s within %s" % [str(event_marker_rect), str(map_rect)])
|
||||
if scene._minimap_event_marker_fill_color(str(marker.get("kind", "event"))).a < 0.85:
|
||||
failures.append("minimap event marker should be visible")
|
||||
if not has_event_marker:
|
||||
failures.append("opening map should expose minimap side-event markers")
|
||||
|
||||
var min_offset: Vector2 = scene._clamped_board_scroll_offset(Vector2(-9999.0, -9999.0))
|
||||
var top_left_offset: Vector2 = scene._board_scroll_offset_for_minimap_position(map_rect.position)
|
||||
|
||||
Reference in New Issue
Block a user