PvP, and the wilderness it happens in #143
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/pvp"
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?
PvP, and the wilderness it happens in. Seven commits, built 2026-08-04 and
sat with in front of a real client the same night; rebased onto current main
(28 commits, five shared files — the object-action dispatch was restructured
into
skilled/3+screen/3on main, so the ditch check now rides in frontof that chain rather than in its own copy of the old cond).
The wilderness is the client's own statement. Clientscript 384's three
rectangles, applied in order, all four planes — surface, God Wars Dungeon,
caves.
level/1stays faithful to the script because the bracket is computedfrom it;
in?/1is the different question — may I be attacked here — andbegins where the ditch ends, at y=3523. The two are pinned to each other by a
test. The overlay draws itself: interface 90's
on_timerruns the scriptclient-side, so the server's whole part is the
IF_OPENSUB.Who may attack whom is
Contract.Pvp: the bracket from the lower of thetwo tiles' levels (symmetric by construction, guarded by test), the claim
window for single-way, and every swing re-asks — which buys the era's escape
mechanics for free in both directions.
A swing crosses two seats with no new machinery: the same
World.Combat.swing/0a creature sends, the samedefend/4resolving it,sent as a
send/2to the other session per the standard. The defender caststhe landed number back so the attacker can pay its own experience. Specials
cross as a hit pattern the defender expands, because every hit in a cascade
turns on a roll only the defender can make.
A death has a killer: the pile goes to the top damager on the ordinary
drop clock, a skull takes the kept three to zero, and
rest/1clears tally,claim, stamp and skull in one call.
The ditch is real: loc 23271, its 325 placements read for axis, the
20-cycle slide and animation 6132 (confirmed by eye in the sitting).
Bots need no privileged path:
Bot.Goals.PkisHuntNpcswith thequarry changed, clicking the option a person clicks and refused by the same
gates. A pker rises at the bank nearest the wilderness and walks in;
confirmed in play — three bots crossed on their own, fought at depth 10, one
died and came back.
Merge note: the rebase resolved
Bot.Kindsagainst the fisher/trader/runecrafter kinds and config-aware seed levels from main (pker keeps
fighting_levels/0shared with the fighter), and dropped a duplicateBot.Act.player_action/3both lines had added independently.Two commits ride on top of the seven. The drop entry has carried its owner
since the pile learned to belong to a killer, so the nest and pack-light
tests written on main against the three-element shape now state the fourth.
And the third fight pairing gets its world test: bot against bot and player
against player each had one, bot against person had only a live sitting —
now a pker claims a seated person at the kind's own seed levels and blood
crosses, with retaliation left to the engine.
Gates: suite green both before and after the additions (4956+ tests, the
only reds being the two #131 machine-local ones —
login_packet.exformatand the two Dialyzer
guard_fails — left untouched per that issue).