The pirate treasure: each player's own mound at their X, dug with a pickaxe; the drowned crew rise at night or when the chest comes up; the ship's compass, a spyglass, a cutlass and pirate gold; online too

This commit is contained in:
Paul Bailey
2026-11-07 09:54:51 +00:00
parent 74bd8f5898
commit 5bcfa23710
18 changed files with 594 additions and 11 deletions

View File

@@ -157,6 +157,26 @@ func _body() -> void:
await _until(func(): return world.wreck.had(world.my_id()), 3.0)
check(world.wreck.chest.interact_prompt(player).contains("empty"), "and her game knows the chest's empty for her now")
check(world.map_marks().any(func(m): return m.kind == "treasure"), "her X is on her map")
print("digging up the treasure, online")
await _sleep(0.8)
var mound: Node3D = world.treasure.mounds.get(world.my_id())
check(mound != null, "her mound shows at her X")
if mound != null:
await _tp(mound.global_position + Vector3(1.4, 0.2, 0))
_hold("antler_pickaxe")
await _sleep(0.3)
for _i in range(12):
if player.inventory.count("ship_compass") > 0:
break
PN.ask("debug_stats", [{"stamina": 100.0}])
if is_instance_valid(mound):
A.harvest_hit(player, mound, mound.global_position)
await _sleep(0.15)
await _until(func(): return player.inventory.count("ship_compass") == 1, 4.0)
check(player.inventory.count("ship_compass") == 1 and player.inventory.count("cutlass") == 1,
"the server digs it up for her: the compass and the cutlass in her bag")
await _until(func(): return world.my_id() in world.treasure.dug, 3.0)
check(world.my_id() in world.treasure.dug and not world.treasure.mounds.has(world.my_id()), "and her mound's gone")
await _across_lands(bob_bed, bob_bed_at)
print("back up to the Valley")