Repository navigation
fix: stop cut-off guild capitals vouching for themselves, and add land admin commands - #199
Conversation
…in commands A guild capital that lost its land link to the faction capital stayed legal whenever it touched any water, because the sea check started from every owned province, including the cut-off pocket itself. It now has to trace back to the faction capital: over owned land, or by water from land already traced. Sea-mode claims set sail from that same traced land. Adds /faction forceclaim <faction> and /guild forceremovecapital <guild> for staff. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Summary
Merge Risk: ⚪ Minimal · up to
|
Summary
Enclaves no longer keep themselves alive through their own lake. When a guild capital loses its land link to the faction capital, it is supposed to lose its seat, and the land it held drops. But the sea check behind that rule started its flood from every owned province, including the cut-off pocket. Any enclave touching water therefore counted as "reachable by sea".
On Main this is why Sunsora's The Cicatrix (province 306) kept its seat after staff unclaimed the land bridge. 306 and 310 both border water tile 791, a one-tile lake with no link to the rest of Sunsora. So the pocket 306, 310, 333, 334 and 335 stayed claimed.
Guild capitals now have to trace back to the faction capital:
Sea-mode claims (founding a guild capital) now sail from that same traced land, not from the enclave. Realms with no seated faction capital keep the old rule, because they have no capital to trace back to.
I ran the old and new rules against every faction on Main. Only Sunsora changes: Cicatrix loses its seat, and 306, 310, 333, 334 and 335 drop the next time Sunsora's claims are checked.
New staff commands (
simplefactions.admin):/faction forceclaim <faction>: gives the province you stand in to that faction. It skips prestige, the untitled-province cap and the border rules. If another realm owns the province, it goes through the normal steal path: installations transfer, the old owner unclaims it, and the old owner's claims are rechecked. It refuses faction capitals, sea tiles and civil-war-locked realms. If the province isn't connected to the receiving realm, it warns that the land will be dropped at the next recheck./guild forceremovecapital <guild>: unseats a guild's capital, which dissolves its settlement the usual way. It then rechecks the realm's claims and lists the provinces that were cut off. It refuses the faction capital and civil-war-locked realms.Both commands have tab completion.
Test plan
mvn verifylocally. Only the two known local-only failures; jacoco shows no new fully-missed lines.ProvinceHandlerEnclaveTest: a lake enclave loses its seat and land; a sea colony keeps its seat; a colony anchors a second colony; two enclaves on one lake can't vouch for each other; sea claims can't sail from an enclave; a realm without a capital keeps the old rule; an inland guild capital still needs a land link; the preview leaves out an enclave capital.AdminLandServiceTest, plus command and tab-completion coverage./faction unclaim sunsoraon 293 started the recheck. 306 and 310 were then unowned:forceclaimgave them to The Village without taking them from Sunsora, with the "not connected" warning.forceclaimon 241 took it from Sunsora and gave it to The Village, with no warning because it borders their land.forceclaimon Sunsora's capital 226 was refused./guild forceremovecapital Knights_of_Saint_Nordbaumunseated 231. Running it again says the guild has no capital. Running it on the base guild Sunsora was refused.🤖 Generated with Claude Code