The Cove's wreck: driftwood and salt on the beach, the captain's sea chest (a treasure map, nails, salt; once each), each player's own X on the map; online too

This commit is contained in:
Paul Bailey
2026-11-07 02:00:31 +00:00
parent ec8caa9ef4
commit 419c71e638
17 changed files with 470 additions and 7 deletions

View File

@@ -23,6 +23,8 @@ const MARKS := {
"build": [Color(0.62, 0.45, 0.28), "Your buildings"],
"camp": [Color(1.00, 0.80, 0.35), "Camp"],
"grave": [Color(0.85, 0.85, 0.85), "Your things"],
"wreck": [Color(0.55, 0.38, 0.22), "The wreck"],
"treasure": [Color(0.9, 0.12, 0.1), "X: your treasure"],
}
var world: Node3D
@@ -132,10 +134,16 @@ func _draw_marks() -> void:
for m in world.map_marks():
var at := _to_map(m.pos)
var col: Color = MARKS.get(m.kind, [Color.WHITE])[0]
if m.kind == "treasure":
# An inked X, as on the old chart.
for d in [Vector2(1, 1), Vector2(1, -1)]:
_marks.draw_line(at - d * 8.0, at + d * 8.0, Color(0, 0, 0, 0.8), 5.0)
_marks.draw_line(at - d * 8.0, at + d * 8.0, col, 3.0)
continue
var r := 3.0 if m.kind == "build" else 6.0
_marks.draw_rect(Rect2(at - Vector2(r, r), Vector2(r, r) * 2.0), col)
_marks.draw_rect(Rect2(at - Vector2(r, r), Vector2(r, r) * 2.0), Color(0, 0, 0, 0.7), false, 1.0)
if m.kind in ["den", "barrow", "stones", "seam", "pier", "cave"]:
if m.kind in ["den", "barrow", "stones", "seam", "pier", "cave", "wreck"]:
_marks.draw_string(font, at + Vector2(9, 5), String(m.label), HORIZONTAL_ALIGNMENT_LEFT, -1, 13, col)
# Other players in this land: only on a co-op server (with PvP on, the
# map never gives anyone away). Green dots with their names.