adventure: let a player back out from the web, not only in Matrix
Three verbs to match gogobee's: call off an expedition, turn back out of somebody else's party, send the pet sitter home. Which one this page offers is derived here rather than pushed — leadership is already legible in the party seats and the sitter's standing is already in the babysit offer, so nothing new crosses the wire. Two things running it turned up that no test would have. An applied abandon left "Pull out of the run" sitting under a verdict saying the expedition was over, so an applied verb now also hides the other verbs it just made untrue. And a party member was being offered that same button in the first place, beside the one that actually works — Pete knows from the seat it just read that gogobee would refuse it, so it is withheld. Also: heal the Matrix handle onto push rows stored before the column existed, on its own endpoint rather than through the subscribe upsert, which resets both watermarks and would have silenced the digest for anybody who reads the site regularly. And stack the board row below sm — four flex columns that wrapped to six lines on a phone, pre-existing.
This commit is contained in:
@@ -72,12 +72,29 @@ type AdvOrderParams struct {
|
||||
// verdict tells people to type !resume, and this is the door.
|
||||
// babysit engage the pet sitter for a week or a month — `!adventure
|
||||
// babysit week|month`.
|
||||
//
|
||||
// W9 adds the three that undo the ones above. Each was already named inside a
|
||||
// refusal or a confirm this page shows — "`!expedition abandon` first",
|
||||
// "`!expedition leave` to walk out alone", "no refund if you cancel early" — so
|
||||
// until now the web told people to go and type a command it could have offered.
|
||||
// None takes an argument and none spends a euro:
|
||||
//
|
||||
// expedition_abandon end the expedition outright, for the whole party. Leader
|
||||
// only, which gogobee enforces. Also the way to close an
|
||||
// extracted run without paying to walk back into it first.
|
||||
// expedition_leave walk out of somebody else's party alone, supplies left in
|
||||
// the pool. Member only — the leader's row IS the expedition.
|
||||
// babysit_cancel dismiss the sitter early. No refund, by the game's design.
|
||||
const (
|
||||
AdvActionExtract = "extract"
|
||||
AdvActionSiegeJoin = "siege_join"
|
||||
AdvActionExpedition = "expedition_start"
|
||||
AdvActionResume = "expedition_resume"
|
||||
AdvActionBabysit = "babysit"
|
||||
|
||||
AdvActionAbandon = "expedition_abandon"
|
||||
AdvActionLeave = "expedition_leave"
|
||||
AdvActionBabysitCancel = "babysit_cancel"
|
||||
)
|
||||
|
||||
// Order states. Terminal states are enumerated rather than free-text so the page
|
||||
@@ -98,12 +115,20 @@ const (
|
||||
AdvRejectedInsufficientFunds = "rejected_insufficient_funds" // could not cover the cost
|
||||
AdvRejectedZoneLocked = "rejected_zone_locked" // that zone is not open at this level
|
||||
AdvRejectedNothingToResume = "rejected_nothing_to_resume" // nothing extracted, or its window closed
|
||||
|
||||
// W9's two. rejected_is_leader is deliberately not rejected_not_leader read
|
||||
// backwards: they are opposite facts about the same person, and collapsing
|
||||
// them would answer a leader who tried to walk out by telling them they are
|
||||
// not the leader.
|
||||
AdvRejectedIsLeader = "rejected_is_leader" // expedition_leave: the leader's row is the expedition
|
||||
AdvRejectedNothingToCancel = "rejected_nothing_to_cancel" // babysit_cancel: no sitter is engaged
|
||||
)
|
||||
|
||||
func validAdvAction(action string) bool {
|
||||
switch action {
|
||||
case AdvActionExtract, AdvActionSiegeJoin,
|
||||
AdvActionExpedition, AdvActionResume, AdvActionBabysit:
|
||||
AdvActionExpedition, AdvActionResume, AdvActionBabysit,
|
||||
AdvActionAbandon, AdvActionLeave, AdvActionBabysitCancel:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -115,7 +140,7 @@ func validAdvVerdict(status string) bool {
|
||||
case AdvOrderApplied, AdvRejectedNotRunning, AdvRejectedNotLeader,
|
||||
AdvRejectedNoSiege, AdvRejectedAlreadyFought, AdvRejectedUnavailable,
|
||||
AdvRejectedBusy, AdvRejectedInsufficientFunds, AdvRejectedZoneLocked,
|
||||
AdvRejectedNothingToResume:
|
||||
AdvRejectedNothingToResume, AdvRejectedIsLeader, AdvRejectedNothingToCancel:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user