Right-click move command with unreachable feedback #81
Labels
No labels
assets
bug
duplicate
enhancement
help wanted
invalid
question
testing
ui
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
liamjd/UntitledColonyBuilder#81
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of milestone #4. Depends on #78 and #80.
Wires selection and movement together. This is the milestone's proof of navigation; the design docs are explicit that direct move orders are not a shipping feature.
Design:
command_moveon the ground callsmap.find_path()from the pawn's position to the hit position and hands the result to the view'sfollow().find_path()snaps both ends throughnearest_walkable(), so clicking water walks to the shore. Unreachable therefore means a different landmass or beyonddestination_snap_radius, not clicking on water. Keep that behaviour; it is what the snap radius is for.PawnCommandControllernode, or onPawns), not inPawnView, so the view never callsfind_path()itself. Milestone #5's work loop (#75) will issue the samefollow()from the task system.AC:
Not doing this. Superseded by #95.
This issue existed to prove navigation works, not to ship a control scheme — its own body said so: "the design docs are explicit that direct move orders are not a shipping feature", and milestone #4 repeats it. Building input arbitration, a selection highlight and a red-flash tween for a mechanic that gets deleted is the wrong trade, especially when the proof can be had more cheaply.
Two things changed since it was filed:
tools/probe_pawn_terrace.gd) settled the part that was actually in doubt. A pawn rides terraces rather than cutting through them, on the descent as well as the climb, and A* routes over a one-level riser. That was the risk; it is now evidence rather than assumption.PawnView, not inside it —Pawns.move_to(), the real frame loop, generated terrain, several pawns at once. A debug scatter command (#95) covers all of that without a selection system or a fake mechanic.Knock-on effects, recorded so they are not a surprise:
PlacementController. It can land whenever clicking a pawn to see its state becomes useful.Pawns.move_to()already returnsfalseand the empty-path branch has unit coverage; a 2-second red flash is UI for a mechanic that is not shipping. If a real need appears — most likely via #83, where a placed building cuts an in-flight path — it should be designed then, against that case rather than this one.Milestone #4's body has been updated to match.
liamjd referenced this issue2026-09-13 17:53:11 +01:00