2016-04-08 20:08:05 +03:00
|
|
|
:: :: ::
|
|
|
|
:::: /hoon/womb/lib :: ::
|
|
|
|
:: :: ::
|
|
|
|
/? 310 :: version
|
2016-07-25 21:57:03 +03:00
|
|
|
/+ talk, old-phon
|
2016-04-08 20:08:05 +03:00
|
|
|
:: :: ::
|
|
|
|
:::: :: ::
|
|
|
|
:: :: ::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: |%
|
|
|
|
:: ++ foil :: ship allocation map
|
|
|
|
:: |* mold :: entry mold
|
|
|
|
:: $: min/@u :: minimum entry
|
|
|
|
:: ctr/@u :: next allocated
|
|
|
|
:: und/(set @u) :: free under counter
|
|
|
|
:: ove/(set @u) :: alloc over counter
|
|
|
|
:: max/@u :: maximum entry
|
|
|
|
:: box/(map @u +<) :: entries
|
|
|
|
:: == ::
|
|
|
|
:: -- ::
|
2016-04-27 04:49:21 +03:00
|
|
|
:: ::
|
|
|
|
:::: ::
|
|
|
|
:: ::
|
2016-04-08 20:08:05 +03:00
|
|
|
|% ::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ managed :: managed plot
|
|
|
|
:: |* mold ::
|
|
|
|
:: %- unit :: unsplit
|
|
|
|
:: %+ each +< :: subdivided
|
|
|
|
:: mail :: delivered
|
|
|
|
:: :: ::
|
|
|
|
:: ++ divided :: get division state
|
|
|
|
:: |* (managed) ::
|
|
|
|
:: ?- +< ::
|
|
|
|
:: $~ ~ :: unsplit
|
|
|
|
:: {$~ $| *} ~ :: delivered
|
|
|
|
:: {$~ $& *} (some p.u.+<) :: subdivided
|
|
|
|
:: == ::
|
|
|
|
:: :: ::
|
|
|
|
:: ++ moon (managed _!!) :: undivided moon
|
|
|
|
:: ::
|
|
|
|
:: ++ planet :: subdivided planet
|
|
|
|
:: (managed (lone (foil moon))) ::
|
|
|
|
:: :: ::
|
|
|
|
:: ++ star :: subdivided star
|
|
|
|
:: (managed (pair (foil moon) (foil planet))) ::
|
|
|
|
:: :: ::
|
|
|
|
:: ++ galaxy :: subdivided galaxy
|
|
|
|
:: (managed (trel (foil moon) (foil planet) (foil star)))::
|
|
|
|
:: :: ::
|
2016-07-05 22:34:40 +03:00
|
|
|
++ ticket @G :: old 64-bit ticket
|
2016-07-07 00:49:46 +03:00
|
|
|
++ passcode @uvH :: 128-bit passcode
|
|
|
|
++ passhash @uwH :: passocde hash
|
2016-04-30 02:18:59 +03:00
|
|
|
++ mail @t :: email address
|
2016-04-08 20:08:05 +03:00
|
|
|
++ balance :: invitation balance
|
|
|
|
$: planets/@ud :: planet count
|
|
|
|
stars/@ud :: star count
|
|
|
|
owner/mail :: owner's email
|
|
|
|
history/(list mail) :: transfer history
|
|
|
|
== ::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ property :: subdivided plots
|
|
|
|
:: $: galaxies/(map @p galaxy) :: galaxy
|
|
|
|
:: planets/(map @p planet) :: star
|
|
|
|
:: stars/(map @p star) :: planet
|
|
|
|
:: == ::
|
2016-04-08 20:08:05 +03:00
|
|
|
++ invite ::
|
|
|
|
$: who/mail :: who to send to
|
|
|
|
pla/@ud :: planets to send
|
|
|
|
sta/@ud :: stars to send
|
|
|
|
wel/welcome :: welcome message
|
|
|
|
== ::
|
|
|
|
++ welcome :: welcome message
|
|
|
|
$: intro/tape :: in invite email
|
|
|
|
hello/tape :: as talk message
|
|
|
|
== ::
|
2016-04-28 01:19:25 +03:00
|
|
|
++ stat (pair live dist) :: external info
|
|
|
|
++ live ?($cold $seen $live) :: online status
|
|
|
|
++ dist :: allocation
|
2016-04-14 01:03:05 +03:00
|
|
|
$% {$free $~} :: unallocated
|
2016-04-28 01:19:25 +03:00
|
|
|
{$owned p/mail} :: granted, status
|
2016-04-27 00:54:28 +03:00
|
|
|
{$split p/(map ship stat)} :: all given ships
|
2016-04-14 01:03:05 +03:00
|
|
|
== ::
|
2016-04-28 01:19:25 +03:00
|
|
|
:: ::
|
|
|
|
++ ames-tell :: .^ a+/=tell= type
|
|
|
|
|^ {p/(list elem) q/(list elem)} ::
|
|
|
|
++ elem $^ {p/elem q/elem} ::
|
|
|
|
{term p/*} :: somewhat underspecified
|
|
|
|
-- ::
|
2016-04-08 20:08:05 +03:00
|
|
|
-- ::
|
|
|
|
:: :: ::
|
|
|
|
:::: :: ::
|
|
|
|
:: :: ::
|
|
|
|
|%
|
2016-05-04 21:48:16 +03:00
|
|
|
++ part {$womb $1 pith} :: womb state
|
2016-04-13 03:10:53 +03:00
|
|
|
++ pith :: womb content
|
2016-04-30 03:05:05 +03:00
|
|
|
$: boss/(unit ship) :: outside master
|
2016-07-07 00:49:46 +03:00
|
|
|
bureau/(map passhash balance) :: active invitations
|
2016-10-13 02:18:10 +03:00
|
|
|
:: office/property :: properties managed
|
2016-07-06 09:57:25 +03:00
|
|
|
recycling/(map ship @) :: old ticket keys
|
2016-04-08 20:08:05 +03:00
|
|
|
== ::
|
|
|
|
-- ::
|
|
|
|
:: :: ::
|
|
|
|
:::: :: ::
|
|
|
|
:: :: ::
|
|
|
|
|% :: arvo structures
|
2016-10-13 01:46:23 +03:00
|
|
|
++ invite-j {who/mail pla/@ud sta/@ud} :: invite data
|
|
|
|
++ womb-task :: manage ship %fungi
|
|
|
|
$% {$claim aut/passcode her/@p tik/ticket} :: convert to %final
|
|
|
|
{$bonus tid/passcode pla/@ud sta/@ud} :: supplement passcode
|
|
|
|
{$invite tid/passcode inv/invite-j} :: alloc to passcode
|
|
|
|
{$reinvite aut/passcode tid/passcode inv/invite-j}:: move to another
|
|
|
|
==
|
2016-04-08 20:08:05 +03:00
|
|
|
++ card ::
|
|
|
|
$% {$flog wire flog} ::
|
2016-04-19 01:15:35 +03:00
|
|
|
{$info wire @p @tas nori} :: fs write (backup)
|
2016-04-15 00:37:16 +03:00
|
|
|
:: {$wait $~} :: delay acknowledgment
|
2016-04-27 00:29:07 +03:00
|
|
|
{$diff gilt} :: subscription response
|
2016-04-30 02:18:59 +03:00
|
|
|
{$poke wire dock pear} :: app RPC
|
2016-04-15 00:37:16 +03:00
|
|
|
{$next wire p/ring} :: update private key
|
|
|
|
{$tick wire p/@pG q/@p} :: save ticket
|
|
|
|
{$knew wire p/ship q/will} :: learn will (old pki)
|
2016-10-13 01:46:23 +03:00
|
|
|
{$jaelwomb wire womb-task} :: manage rights
|
2016-04-08 20:08:05 +03:00
|
|
|
== ::
|
2016-04-15 04:36:48 +03:00
|
|
|
++ pear ::
|
2016-07-02 01:48:10 +03:00
|
|
|
$% {$email mail tape wall} :: send email
|
2016-04-30 03:05:05 +03:00
|
|
|
{$womb-do-ticket ship} :: request ticket
|
|
|
|
{$womb-do-claim ship @p} :: issue ship
|
2016-07-06 09:57:25 +03:00
|
|
|
{$drum-put path @t} :: log transaction
|
2016-04-15 04:36:48 +03:00
|
|
|
== ::
|
2016-04-27 00:29:07 +03:00
|
|
|
++ gilt :: scry result
|
|
|
|
$% {$ships (list ship)} ::
|
|
|
|
{$womb-balance balance} ::
|
2016-07-07 00:49:46 +03:00
|
|
|
{$womb-balance-all (map passhash mail)} ::
|
2016-04-27 00:29:07 +03:00
|
|
|
{$womb-stat stat} ::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: {$womb-stat-all (map ship stat)} ::
|
2016-05-05 00:40:20 +03:00
|
|
|
{$womb-ticket-info passcode ?($fail $good $used)} ::
|
2016-04-27 00:29:07 +03:00
|
|
|
==
|
2016-04-08 20:08:05 +03:00
|
|
|
++ move (pair bone card) :: user-level move
|
2016-04-30 02:18:59 +03:00
|
|
|
::
|
|
|
|
++ transaction :: logged poke
|
|
|
|
$% {$report her/@p wyl/will}
|
2016-10-13 02:16:47 +03:00
|
|
|
:: {$release gal/@ud sta/@ud}
|
|
|
|
:: {$release-ships (list ship)}
|
2016-04-30 02:18:59 +03:00
|
|
|
{$claim aut/passcode her/@p}
|
2016-05-05 00:40:20 +03:00
|
|
|
{$recycle who/mail him/knot tik/knot}
|
2016-08-12 02:16:05 +03:00
|
|
|
{$bonus tid/cord pla/@ud sta/@ud}
|
2016-10-13 00:53:55 +03:00
|
|
|
{$invite tid/cord inv/invite}
|
2016-04-30 02:18:59 +03:00
|
|
|
{$reinvite aut/passcode inv/invite}
|
|
|
|
==
|
2016-04-08 20:08:05 +03:00
|
|
|
--
|
2016-04-12 22:02:59 +03:00
|
|
|
|%
|
2016-04-28 01:19:25 +03:00
|
|
|
++ ames-grab :: XX better ames scry
|
|
|
|
|= {a/term b/ames-tell} ^- *
|
|
|
|
=; all (~(got by all) a)
|
|
|
|
%- ~(gas by *(map term *))
|
|
|
|
%- zing
|
|
|
|
%+ turn (weld p.b q.b)
|
|
|
|
|= b/elem:ames-tell ^- (list {term *})
|
|
|
|
?@ -.b [b]~
|
|
|
|
(weld $(b p.b) $(b q.b))
|
|
|
|
::
|
2016-04-12 22:02:59 +03:00
|
|
|
++ murn-by
|
|
|
|
|* {a/(map) b/$-(* (unit))}
|
|
|
|
^- ?~(a !! (map _p.n.a _(need (b q.n.a))))
|
|
|
|
%- malt
|
|
|
|
%+ murn (~(tap by a))
|
|
|
|
?~ a $~
|
|
|
|
|= _c=n.a ^- (unit _[p.n.a (need (b q.n.a))])
|
|
|
|
=+ d=(b q.c)
|
|
|
|
?~(d ~ (some [p.c u.d]))
|
|
|
|
::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ unsplit
|
|
|
|
:: |= a/(map ship (managed)) ^- (list {ship *})
|
|
|
|
:: %+ skim (~(tap by a))
|
|
|
|
:: |=({@ a/(managed)} ?=($~ a))
|
|
|
|
:: ::
|
|
|
|
:: ++ issuing
|
|
|
|
:: |* a/(map ship (managed))
|
|
|
|
:: ^- (list {ship _(need (divided *~(got by a)))})
|
|
|
|
:: (sort (~(tap by (murn-by a divided))) lor)
|
|
|
|
:: ::
|
|
|
|
:: ++ issuing-under
|
|
|
|
:: |* {a/bloq b/ship c/(map @u (managed))}
|
|
|
|
:: ^- (list {ship _(need (divided *~(got by c)))})
|
|
|
|
:: %+ turn (sort (~(tap by (murn-by c divided))) lor)
|
|
|
|
:: |*(d/{@u *} [(rep a b -.d ~) +.d])
|
|
|
|
:: ++ cursor (pair (unit ship) @u)
|
2016-04-15 04:38:31 +03:00
|
|
|
++ neis |=(a/ship ^-(@u (rsh (dec (xeb (dec (xeb a)))) 1 a))) :: postfix
|
2016-04-13 01:59:26 +03:00
|
|
|
::
|
|
|
|
:: Create new foil of size
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ fo-init
|
|
|
|
:: |= a/bloq :: ^- (foil *)
|
|
|
|
:: [min=1 ctr=1 und=~ ove=~ max=(dec (bex (bex a))) box=~]
|
|
|
|
::
|
|
|
|
:: ++ fo
|
|
|
|
:: |_ (foil $@($~ *))
|
|
|
|
:: ++ nth :: index
|
|
|
|
:: |= a/@u ^- (pair (unit @u) @u)
|
|
|
|
:: ?: (lth a ~(wyt in und))
|
|
|
|
:: =+ out=(snag a (sort (~(tap in und)) lth))
|
|
|
|
:: [(some out) 0]
|
|
|
|
:: =. a (sub a ~(wyt in und))
|
|
|
|
:: |- ^- {(unit @u) @u}
|
|
|
|
:: ?: =(ctr +(max)) [~ a]
|
|
|
|
:: ?: =(0 a) [(some ctr) a]
|
|
|
|
:: $(a (dec a), +<.nth new)
|
|
|
|
:: ::
|
|
|
|
:: +- fin +< :: abet
|
|
|
|
:: ++ new :: alloc
|
|
|
|
:: ?: =(ctr +(max)) +<
|
|
|
|
:: =. ctr +(ctr)
|
|
|
|
:: ?. (~(has in ove) ctr) +<
|
|
|
|
:: new(ove (~(del in ove) ctr))
|
|
|
|
:: ::
|
|
|
|
:: +- get :: nullable
|
|
|
|
:: |= a/@p ^+ ?~(box ~ q.n.box)
|
|
|
|
:: (fall (~(get by box) (neis a)) ~)
|
|
|
|
:: ::
|
|
|
|
:: +- put
|
|
|
|
:: |* {a/@u b/*} ^+ fin :: b/_(~(got by box))
|
|
|
|
:: ~| put+[a fin]
|
|
|
|
:: ?> (fit a)
|
|
|
|
:: =; adj adj(box (~(put by box) a b))
|
|
|
|
:: ?: (~(has in box) a) fin
|
|
|
|
:: ?: =(ctr a) new
|
|
|
|
:: ?: (lth a ctr)
|
|
|
|
:: ?. (~(has in und) a) fin
|
|
|
|
:: fin(und (~(del in und) a))
|
|
|
|
:: ?. =(a ctr:new) :: heuristic
|
|
|
|
:: fin(ove (~(put in ove) a))
|
|
|
|
:: =+ n=new(+< new)
|
|
|
|
:: n(und (~(put in und.n) ctr))
|
|
|
|
:: ::
|
|
|
|
:: ++ fit |=(a/@u &((lte min a) (lte a max))) :: in range
|
|
|
|
:: ++ gud :: invariant
|
|
|
|
:: ?& (fit(max +(max)) ctr)
|
|
|
|
:: (~(all in und) fit(max ctr))
|
|
|
|
:: (~(all in ove) fit(min ctr))
|
|
|
|
:: (~(all in box) |=({a/@u *} (fit a)))
|
|
|
|
:: |- ^- ?
|
|
|
|
:: ?: =(min max) &
|
|
|
|
:: =- &(- $(min +(min)))
|
|
|
|
:: %+ gte 1 :: at most one of
|
|
|
|
:: ;: add
|
|
|
|
:: ?:(=(min ctr) 1 0)
|
|
|
|
:: ?:((~(has in und) min) 1 0)
|
|
|
|
:: ?:((~(has in ove) min) 1 0)
|
|
|
|
:: ?:((~(has by box) min) 1 0)
|
|
|
|
:: ==
|
|
|
|
:: ==
|
|
|
|
:: --
|
2016-04-12 22:02:59 +03:00
|
|
|
--
|
2016-04-08 20:08:05 +03:00
|
|
|
:: :: ::
|
|
|
|
:::: :: ::
|
|
|
|
!: :: ::
|
2016-08-18 20:36:07 +03:00
|
|
|
=+ cfg=[can-claim=& can-recycle=&] :: temporarily disabled
|
2016-04-30 03:05:05 +03:00
|
|
|
=+ [replay=| stat-no-email=|] :: XX globals
|
2016-04-13 03:10:53 +03:00
|
|
|
|= {bowl part} :: main womb work
|
2016-04-08 20:08:05 +03:00
|
|
|
|_ moz/(list move)
|
|
|
|
++ abet :: resolve
|
2016-04-13 03:10:53 +03:00
|
|
|
^- (quip move *part)
|
2016-04-13 00:07:02 +03:00
|
|
|
[(flop moz) +>+<+]
|
2016-04-08 20:08:05 +03:00
|
|
|
::
|
2016-04-30 02:18:59 +03:00
|
|
|
++ teba :: install resolved
|
|
|
|
|= a/(quip move *part) ^+ +>
|
|
|
|
+>(moz (flop -.a), +>+<+ +.a)
|
|
|
|
::
|
2016-04-08 20:08:05 +03:00
|
|
|
++ emit |=(card %_(+> moz [[ost +<] moz])) :: return card
|
|
|
|
++ emil :: return cards
|
2016-07-06 09:57:25 +03:00
|
|
|
|= (list card)
|
2016-04-08 20:08:05 +03:00
|
|
|
^+ +>
|
|
|
|
?~(+< +> $(+< t.+<, +> (emit i.+<)))
|
|
|
|
::
|
2016-04-12 22:02:59 +03:00
|
|
|
::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ take-n :: compute range
|
|
|
|
:: |= {{index/@u count/@u} get/$-(@u cursor)}
|
|
|
|
:: ^- (list ship)
|
|
|
|
:: ?~ count ~
|
|
|
|
:: %+ biff p:(get index)
|
|
|
|
:: |= a/ship ^- (list ship)
|
|
|
|
:: [a ^$(index +(index), count (dec count))]
|
|
|
|
:: ::
|
|
|
|
:: ++ available :: enumerate free ships
|
|
|
|
:: |= all/(map ship (managed)) ^- $-(@u cursor)
|
|
|
|
:: =+ pur=(sort (turn (unsplit all) head) lth)
|
|
|
|
:: =+ len=(lent pur)
|
|
|
|
:: |=(a/@u ?:((gte a len) [~ (sub a len)] [(some (snag a pur)) a]))
|
2016-04-12 22:02:59 +03:00
|
|
|
::
|
2016-04-14 00:06:58 +03:00
|
|
|
:: foil cursor to ship cursor, using sized parent
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ prefix
|
|
|
|
:: |= {a/bloq b/@p {c/(unit @u) d/@u}} ^- cursor
|
|
|
|
:: ?~ c [c d]
|
|
|
|
:: [(some (rep a b u.c ~)) d]
|
|
|
|
::
|
|
|
|
:: ++ in-list :: distribute among options
|
|
|
|
:: |* {a/(list) b/@u} ^+ [(snag *@ a) b]
|
|
|
|
:: =+ c=(lent a)
|
|
|
|
:: [(snag (mod b c) a) (div b c)]
|
|
|
|
:: ::
|
2016-04-28 01:19:25 +03:00
|
|
|
++ ames-last-seen :: last succesful ping
|
|
|
|
|= a/ship ~+ ^- (unit time)
|
2016-04-28 01:44:10 +03:00
|
|
|
?: =(a our) (some now)
|
2016-04-28 01:19:25 +03:00
|
|
|
%- (hard (unit time))
|
|
|
|
~| ames-look+/(scot %p our)/tell/(scot %da now)/(scot %p a)
|
|
|
|
%+ ames-grab %rue
|
|
|
|
.^(ames-tell %a /(scot %p our)/tell/(scot %da now)/(scot %p a))
|
2016-04-14 00:06:58 +03:00
|
|
|
::
|
2016-08-09 21:46:45 +03:00
|
|
|
++ neighboured :: filter for connectivity
|
2016-04-28 01:44:10 +03:00
|
|
|
|* a/(list {ship *}) ^+ a
|
|
|
|
%+ skim a
|
|
|
|
|= {b/ship *}
|
2016-08-09 21:46:45 +03:00
|
|
|
?=(^ (ames-last-seen b))
|
2016-04-28 01:44:10 +03:00
|
|
|
::
|
2016-04-12 22:02:59 +03:00
|
|
|
::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ shop-galaxies (available galaxies.office) :: unassigned %czar
|
|
|
|
:: ::
|
|
|
|
:: :: Stars can be either whole or children of galaxies
|
|
|
|
:: ++ shop-stars :: unassigned %king
|
|
|
|
:: |= nth/@u ^- cursor
|
|
|
|
:: =^ out nth %.(nth (available stars.office))
|
|
|
|
:: ?^ out [out nth]
|
|
|
|
:: %+ shop-star nth
|
|
|
|
:: (neighboured (issuing galaxies.office))
|
|
|
|
:: ::
|
|
|
|
:: ++ shop-star :: star from galaxies
|
|
|
|
:: |= {nth/@u lax/(list {who/@p * * r/(foil star)})} ^- cursor
|
|
|
|
:: ?: =(~ lax) [~ nth]
|
|
|
|
:: =^ sel nth (in-list lax nth)
|
|
|
|
:: (prefix 3 who.sel (~(nth fo r.sel) nth))
|
|
|
|
:: ::
|
|
|
|
:: ++ shop-planets :: unassigned %duke
|
|
|
|
:: |= nth/@u ^- cursor
|
|
|
|
:: =^ out nth %.(nth (available planets.office))
|
|
|
|
:: ?^ out [out nth]
|
|
|
|
:: =^ out nth
|
|
|
|
:: %+ shop-planet nth
|
|
|
|
:: (neighboured (issuing stars.office))
|
|
|
|
:: ?^ out [out nth]
|
|
|
|
:: (shop-planet-gal nth (issuing galaxies.office))
|
|
|
|
:: ::
|
|
|
|
:: ++ shop-planet :: planet from stars
|
|
|
|
:: |= {nth/@u sta/(list {who/@p * q/(foil planet)})} ^- cursor
|
|
|
|
:: ?: =(~ sta) [~ nth]
|
|
|
|
:: =^ sel nth (in-list sta nth)
|
|
|
|
:: (prefix 4 who.sel (~(nth fo q.sel) nth))
|
|
|
|
:: ::
|
|
|
|
:: ++ shop-planet-gal :: planet from galaxies
|
|
|
|
:: |= {nth/@u lax/(list {who/@p * * r/(foil star)})} ^- cursor
|
|
|
|
:: ?: =(~ lax) [~ nth]
|
|
|
|
:: =^ sel nth (in-list lax nth)
|
|
|
|
:: %+ shop-planet nth
|
|
|
|
:: (neighboured (issuing-under 3 who.sel box.r.sel))
|
|
|
|
:: ::
|
2016-04-14 00:06:58 +03:00
|
|
|
++ peek-x-shop :: available ships
|
2016-04-12 22:02:59 +03:00
|
|
|
|= tyl/path ^- (unit (unit {$ships (list @p)}))
|
2016-04-13 03:10:53 +03:00
|
|
|
=; a ~& peek-x-shop+[tyl a] a
|
2016-10-13 02:18:10 +03:00
|
|
|
=; res/(list ship) (some (some [%ships res]))
|
2016-04-13 03:10:53 +03:00
|
|
|
=+ [typ nth]=~|(bad-path+tyl (raid tyl typ=%tas nth=%ud ~))
|
2016-04-13 00:07:50 +03:00
|
|
|
:: =. nth (mul 3 nth)
|
2016-10-13 02:18:10 +03:00
|
|
|
!! :: XX scry jael
|
|
|
|
:: ?+ typ ~|(bad-type+typ !!)
|
|
|
|
:: $galaxies (take-n [nth 3] shop-galaxies)
|
|
|
|
:: $planets (take-n [nth 3] shop-planets)
|
|
|
|
:: $stars (take-n [nth 3] shop-stars)
|
|
|
|
:: ==
|
|
|
|
::
|
|
|
|
:: ++ get-managed-galaxy ~(got by galaxies.office) :: office read
|
|
|
|
:: ++ mod-managed-galaxy :: office write
|
|
|
|
:: |= {who/@p mod/$-(galaxy galaxy)} ^+ +>
|
|
|
|
:: =+ gal=(mod (get-managed-galaxy who))
|
|
|
|
:: +>.$(galaxies.office (~(put by galaxies.office) who gal))
|
|
|
|
:: ::
|
|
|
|
:: ++ get-managed-star :: office read
|
|
|
|
:: |= who/@p ^- star
|
|
|
|
:: =+ (~(get by stars.office) who)
|
|
|
|
:: ?^ - u
|
|
|
|
:: =+ gal=(get-managed-galaxy (sein who))
|
|
|
|
:: ?. ?=({$~ $& *} gal) ~|(unavailable-star+(sein who) !!)
|
|
|
|
:: (fall (~(get by box.r.p.u.gal) (neis who)) ~)
|
|
|
|
:: ::
|
|
|
|
:: ++ mod-managed-star :: office write
|
|
|
|
:: |= {who/@p mod/$-(star star)} ^+ +>
|
|
|
|
:: =+ sta=(mod (get-managed-star who)) :: XX double traverse
|
|
|
|
:: ?: (~(has by stars.office) who)
|
|
|
|
:: +>.$(stars.office (~(put by stars.office) who sta))
|
|
|
|
:: %+ mod-managed-galaxy (sein who)
|
|
|
|
:: |= gal/galaxy ^- galaxy
|
|
|
|
:: ?> ?=({$~ $& *} gal)
|
|
|
|
:: gal(r.p.u (~(put fo r.p.u.gal) (neis who) sta))
|
|
|
|
:: ::
|
|
|
|
:: ++ get-managed-planet :: office read
|
|
|
|
:: |= who/@p ^- planet
|
|
|
|
:: =+ (~(get by planets.office) who)
|
|
|
|
:: ?^ - u
|
|
|
|
:: ?: (~(has by galaxies.office) (sein who))
|
|
|
|
:: =+ gal=(get-managed-galaxy (sein who))
|
|
|
|
:: ?. ?=({$~ $& *} gal) ~|(unavailable-galaxy+(sein who) !!)
|
|
|
|
:: (~(get fo q.p.u.gal) who)
|
|
|
|
:: =+ sta=(get-managed-star (sein who))
|
|
|
|
:: ?. ?=({$~ $& *} sta) ~|(unavailable-star+(sein who) !!)
|
|
|
|
:: (~(get fo q.p.u.sta) who)
|
|
|
|
:: ::
|
|
|
|
:: ++ mod-managed-planet :: office write
|
|
|
|
:: |= {who/@p mod/$-(planet planet)} ^+ +>
|
|
|
|
:: =+ pla=(mod (get-managed-planet who)) :: XX double traverse
|
|
|
|
:: ?: (~(has by planets.office) who)
|
|
|
|
:: +>.$(planets.office (~(put by planets.office) who pla))
|
|
|
|
:: ?: (~(has by galaxies.office) (sein who))
|
|
|
|
:: %+ mod-managed-galaxy (sein who)
|
|
|
|
:: |= gal/galaxy ^- galaxy
|
|
|
|
:: ?> ?=({$~ $& *} gal)
|
|
|
|
:: gal(q.p.u (~(put fo q.p.u.gal) (neis who) pla))
|
|
|
|
:: %+ mod-managed-star (sein who)
|
|
|
|
:: |= sta/star ^- star
|
|
|
|
:: ?> ?=({$~ $& *} sta)
|
|
|
|
:: sta(q.p.u (~(put fo q.p.u.sta) (neis who) pla))
|
2016-04-13 23:32:45 +03:00
|
|
|
::
|
2016-04-28 01:38:01 +03:00
|
|
|
++ get-live :: last-heard time ++live
|
2016-04-28 01:19:25 +03:00
|
|
|
|= a/ship ^- live
|
|
|
|
=+ rue=(ames-last-seen a)
|
2016-07-06 09:57:25 +03:00
|
|
|
?~ rue %cold
|
2016-04-28 01:19:25 +03:00
|
|
|
?:((gth (sub now u.rue) ~m5) %seen %live)
|
|
|
|
::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ stat-any :: unsplit status
|
|
|
|
:: |= {who/@p man/(managed _!!)} ^- stat
|
|
|
|
:: :- (get-live who)
|
|
|
|
:: ?~ man [%free ~]
|
|
|
|
:: ?: stat-no-email [%owned '']
|
|
|
|
:: [%owned p.u.man]
|
|
|
|
:: ::
|
|
|
|
:: ++ stat-planet :: stat of planet
|
|
|
|
:: |= {who/@p man/planet} ^- stat
|
|
|
|
:: ?. ?=({$~ $& ^} man) (stat-any who man)
|
|
|
|
:: :- (get-live who)
|
|
|
|
:: =+ pla=u:(divided man)
|
|
|
|
:: :- %split
|
|
|
|
:: %- malt
|
|
|
|
:: %+ turn (~(tap by box.p.pla))
|
|
|
|
:: |=({a/@u b/moon} =+((rep 5 who a ~) [- (stat-any - b)]))
|
|
|
|
:: ::
|
|
|
|
:: ++ stat-star :: stat of star
|
|
|
|
:: |= {who/@p man/star} ^- stat
|
|
|
|
:: ?. ?=({$~ $& ^} man) (stat-any who man)
|
|
|
|
:: :- (get-live who)
|
|
|
|
:: =+ sta=u:(divided man)
|
|
|
|
:: :- %split
|
|
|
|
:: %- malt
|
|
|
|
:: %+ welp
|
|
|
|
:: %+ turn (~(tap by box.p.sta))
|
|
|
|
:: |=({a/@u b/moon} =+((rep 5 who a ~) [- (stat-any - b)]))
|
|
|
|
:: %+ turn (~(tap by box.q.sta))
|
|
|
|
:: |=({a/@u b/planet} =+((rep 4 who a ~) [- (stat-planet - b)]))
|
|
|
|
:: ::
|
|
|
|
:: ++ stat-galaxy :: stat of galaxy
|
|
|
|
:: |= {who/@p man/galaxy} ^- stat
|
|
|
|
:: ?. ?=({$~ $& ^} man) (stat-any who man)
|
|
|
|
:: =+ gal=u:(divided man)
|
|
|
|
:: :- (get-live who)
|
|
|
|
:: :- %split
|
|
|
|
:: %- malt
|
|
|
|
:: ;: welp
|
|
|
|
:: %+ turn (~(tap by box.p.gal))
|
|
|
|
:: |=({a/@u b/moon} =+((rep 5 who a ~) [- (stat-any - b)]))
|
|
|
|
:: ::
|
|
|
|
:: %+ turn (~(tap by box.q.gal))
|
|
|
|
:: |=({a/@u b/planet} =+((rep 4 who a ~) [- (stat-planet - b)]))
|
|
|
|
:: ::
|
|
|
|
:: %+ turn (~(tap by box.r.gal))
|
|
|
|
:: |=({a/@u b/star} =+((rep 3 who a ~) [- (stat-star - b)]))
|
|
|
|
:: ==
|
2016-04-14 01:03:05 +03:00
|
|
|
::
|
2016-04-14 00:06:58 +03:00
|
|
|
++ stats-ship :: inspect ship
|
2016-04-30 03:05:05 +03:00
|
|
|
|= who/@p ^- stat
|
2016-10-13 02:18:10 +03:00
|
|
|
:- (get-live who)
|
|
|
|
!! :: XX scry jael
|
|
|
|
:: ?- (clan who)
|
|
|
|
:: $pawn !!
|
|
|
|
:: $earl !!
|
|
|
|
:: $duke (stat-planet who (get-managed-planet who))
|
|
|
|
:: $king (stat-star who (get-managed-star who))
|
|
|
|
:: $czar (stat-galaxy who (get-managed-galaxy who))
|
|
|
|
:: ==
|
2016-04-12 22:02:59 +03:00
|
|
|
::
|
2016-04-14 00:06:58 +03:00
|
|
|
++ peek-x-stats :: inspect ship/system
|
2016-04-12 22:02:59 +03:00
|
|
|
|= tyl/path
|
|
|
|
?^ tyl
|
2016-04-30 03:05:05 +03:00
|
|
|
?> |(=(our src) =([~ src] boss)) :: privileged info
|
|
|
|
``womb-stat+(stats-ship ~|(bad-path+tyl (raid tyl who=%p ~)))
|
2016-10-13 02:18:10 +03:00
|
|
|
!! :: XX meaningful and/or useful in sein-jael model?
|
|
|
|
:: ^- (unit (unit {$womb-stat-all (map ship stat)}))
|
|
|
|
:: =. stat-no-email & :: censor adresses
|
|
|
|
:: :^ ~ ~ %womb-stat-all
|
|
|
|
:: %- ~(uni by (~(urn by planets.office) stat-planet))
|
|
|
|
:: %- ~(uni by (~(urn by stars.office) stat-star))
|
|
|
|
:: (~(urn by galaxies.office) stat-galaxy)
|
2016-04-12 22:02:59 +03:00
|
|
|
::
|
2016-04-27 04:49:21 +03:00
|
|
|
++ peek-x-balance :: inspect invitation
|
2016-04-30 00:22:25 +03:00
|
|
|
|= tyl/path
|
|
|
|
?~ tyl
|
|
|
|
?> |(=(our src) =([~ src] boss)) :: priveledged
|
|
|
|
``[%womb-balance-all (~(run by bureau) |=(balance owner))]
|
|
|
|
^- (unit (unit {$womb-balance balance}))
|
2016-07-05 22:34:40 +03:00
|
|
|
=+ pas=~|(bad-path+tyl (raid tyl pas=%uv ~))
|
2016-04-12 22:02:59 +03:00
|
|
|
%- some
|
2016-07-07 00:49:46 +03:00
|
|
|
%+ bind (~(get by bureau) (shaf %pass pas))
|
2016-04-12 22:02:59 +03:00
|
|
|
|=(bal/balance [%womb-balance bal])
|
|
|
|
::
|
2016-05-04 20:58:35 +03:00
|
|
|
++ parse-ticket
|
|
|
|
|= {a/knot b/knot} ^- {him/@ tik/@}
|
|
|
|
[him=(rash a old-phon) tik=(rash b old-phon)]
|
|
|
|
::
|
2016-05-04 21:48:16 +03:00
|
|
|
++ check-old-ticket
|
|
|
|
|= {a/ship b/@pG} ^- (unit ?)
|
|
|
|
%+ bind (~(get by recycling) (sein a))
|
|
|
|
|= key/@ ^- ?
|
|
|
|
=(b `@p`(end 6 1 (shaf %tick (mix a (shax key)))))
|
2016-05-04 20:58:35 +03:00
|
|
|
::
|
2016-05-05 00:40:20 +03:00
|
|
|
::
|
2016-07-06 09:57:25 +03:00
|
|
|
++ peek-x-ticket
|
2016-05-04 20:58:35 +03:00
|
|
|
|= tyl/path
|
2016-05-05 00:40:20 +03:00
|
|
|
^- (unit (unit {$womb-ticket-info passcode ?($fail $good $used)}))
|
2016-05-04 20:58:35 +03:00
|
|
|
?. ?=({@ @ $~} tyl) ~|(bad-path+tyl !!)
|
|
|
|
=+ [him tik]=(parse-ticket i.tyl i.t.tyl)
|
2016-05-04 21:48:16 +03:00
|
|
|
%+ bind (check-old-ticket him tik)
|
|
|
|
|= gud/?
|
2016-05-05 00:40:20 +03:00
|
|
|
:+ ~ %womb-ticket-info
|
2016-07-06 01:06:11 +03:00
|
|
|
=+ pas=`passcode`(end 7 1 (sham %tick him tik))
|
2016-05-05 00:40:20 +03:00
|
|
|
:- pas
|
|
|
|
?. gud %fail
|
2016-07-07 00:49:46 +03:00
|
|
|
?: (~(has by bureau) (shaf %pass pas)) %used
|
2016-05-05 00:40:20 +03:00
|
|
|
%good
|
2016-05-04 20:58:35 +03:00
|
|
|
::
|
2016-04-28 01:38:01 +03:00
|
|
|
++ peer-scry-x :: subscription like .^
|
2016-04-27 00:29:07 +03:00
|
|
|
|= tyl/path
|
|
|
|
=< abet
|
|
|
|
=+ gil=(peek-x tyl)
|
|
|
|
~| tyl
|
|
|
|
?~ gil ~|(%block-stub !!)
|
|
|
|
?~ u.gil ~|(%bad-path !!)
|
|
|
|
(emit %diff u.u.gil)
|
|
|
|
::
|
2016-04-28 01:38:01 +03:00
|
|
|
++ peek-x :: stateless read
|
2016-04-27 00:29:07 +03:00
|
|
|
|= tyl/path ^- (unit (unit gilt))
|
|
|
|
~| peek+x+tyl
|
2016-04-12 22:02:59 +03:00
|
|
|
?~ tyl ~
|
|
|
|
?+ -.tyl ~
|
2016-04-13 03:10:53 +03:00
|
|
|
:: /shop/planets/@ud (list @p) up to 3 planets
|
|
|
|
:: /shop/stars/@ud (list @p) up to 3 stars
|
2016-07-06 09:57:25 +03:00
|
|
|
:: /shop/galaxies/@ud (list @p) up to 3 galaxies
|
2016-04-12 22:02:59 +03:00
|
|
|
$shop (peek-x-shop +.tyl)
|
2016-04-08 20:08:05 +03:00
|
|
|
:: /stats general stats dump
|
|
|
|
:: /stats/@p what we know about @p
|
2016-04-12 22:02:59 +03:00
|
|
|
$stats (peek-x-stats +.tyl)
|
2016-04-30 00:22:25 +03:00
|
|
|
:: /balance all invitations
|
2016-07-06 09:57:25 +03:00
|
|
|
:: /balance/passcode invitation status
|
2016-04-27 04:49:21 +03:00
|
|
|
$balance (peek-x-balance +.tyl)
|
2016-05-04 20:58:35 +03:00
|
|
|
:: /ticket/ship/ticket check ticket usability
|
|
|
|
$ticket (peek-x-ticket +.tyl)
|
2016-04-12 22:02:59 +03:00
|
|
|
==
|
2016-04-08 20:08:05 +03:00
|
|
|
::
|
2016-05-04 21:48:16 +03:00
|
|
|
++ poke-manage-old-key :: add to recyclable tickets
|
|
|
|
|= {a/ship b/@}
|
|
|
|
=< abet
|
|
|
|
?> |(=(our src) =([~ src] boss)) :: privileged
|
|
|
|
.(recycling (~(put by recycling) a b))
|
|
|
|
::
|
2016-10-13 02:18:10 +03:00
|
|
|
:: ++ poke-manage :: add to property
|
|
|
|
:: |= a/(list ship)
|
|
|
|
:: =< abet
|
|
|
|
:: ?> |(=(our src) =([~ src] boss)) :: privileged
|
|
|
|
:: |-
|
|
|
|
:: ?~ a .
|
|
|
|
:: ?+ (clan i.a) ~|(bad-size+(clan i.a) !!)
|
|
|
|
:: $duke
|
|
|
|
:: ?. (~(has by planets.office) i.a)
|
|
|
|
:: $(a t.a, planets.office (~(put by planets.office) i.a ~))
|
|
|
|
:: ~|(already-managing+i.a !!)
|
|
|
|
:: ::
|
|
|
|
:: $king
|
|
|
|
:: ?. (~(has by stars.office) i.a)
|
|
|
|
:: $(a t.a, stars.office (~(put by stars.office) i.a ~))
|
|
|
|
:: ~|(already-managing+i.a !!)
|
|
|
|
:: ::
|
|
|
|
:: $czar
|
|
|
|
:: ?. (~(has by galaxies.office) i.a)
|
|
|
|
:: $(a t.a, galaxies.office (~(put by galaxies.office) i.a ~))
|
|
|
|
:: ~|(already-managing+i.a !!)
|
|
|
|
:: ==
|
2016-04-15 02:52:37 +03:00
|
|
|
::
|
2016-04-28 01:38:01 +03:00
|
|
|
++ email :: send email
|
2016-04-15 04:36:48 +03:00
|
|
|
|= {wir/wire adr/mail msg/tape} ^+ +>
|
2016-04-30 02:18:59 +03:00
|
|
|
?: replay +> :: dont's send email in replay mode
|
2016-04-30 03:05:05 +03:00
|
|
|
~& do-email+[adr msg]
|
2016-04-15 04:38:31 +03:00
|
|
|
::~&([%email-stub adr msg] +>)
|
2016-08-13 00:56:20 +03:00
|
|
|
(emit %poke womb+[%mail wir] [our %gmail] %email adr "Your Urbit Invitation" [msg]~)
|
2016-04-14 23:49:39 +03:00
|
|
|
::
|
2016-04-30 02:18:59 +03:00
|
|
|
++ log-transaction :: logged poke
|
|
|
|
|= a/transaction ^+ +>
|
|
|
|
?: replay +>
|
2016-08-13 00:56:20 +03:00
|
|
|
(emit %poke /womb/log [our %hood] %drum-put /womb-events/(scot %da now)/hoon (crip <eny a>))
|
2016-04-30 02:18:59 +03:00
|
|
|
::
|
|
|
|
++ poke-replay-log :: rerun transactions
|
2016-08-12 22:25:10 +03:00
|
|
|
|= a/(list {eny/@uvJ pok/transaction})
|
2016-04-30 02:18:59 +03:00
|
|
|
?~ a abet
|
2016-05-02 23:03:33 +03:00
|
|
|
~& womb-replay+-.pok.i.a
|
2016-04-30 02:18:59 +03:00
|
|
|
=. eny eny.i.a
|
2016-05-02 23:03:33 +03:00
|
|
|
=. replay &
|
2016-04-30 02:18:59 +03:00
|
|
|
%_ $
|
|
|
|
a t.a
|
|
|
|
+>
|
|
|
|
?- -.pok.i.a
|
|
|
|
$claim (teba (poke-claim +.pok.i.a))
|
2016-08-12 02:16:05 +03:00
|
|
|
$bonus (teba (poke-bonus +.pok.i.a))
|
2016-04-30 02:18:59 +03:00
|
|
|
$invite (teba (poke-invite +.pok.i.a))
|
|
|
|
$report (teba (poke-report +.pok.i.a))
|
2016-10-13 02:16:47 +03:00
|
|
|
:: $release (teba (poke-release +.pok.i.a))
|
2016-05-05 00:40:20 +03:00
|
|
|
$recycle (teba (poke-recycle +.pok.i.a))
|
2016-04-30 02:18:59 +03:00
|
|
|
$reinvite (teba (poke-reinvite +.pok.i.a))
|
2016-10-13 02:16:47 +03:00
|
|
|
:: $release-ships (teba (poke-release-ships +.pok.i.a))
|
2016-04-30 02:18:59 +03:00
|
|
|
==
|
|
|
|
==
|
|
|
|
::
|
2016-08-12 02:16:05 +03:00
|
|
|
++ poke-bonus :: expand invitation
|
|
|
|
|= {tid/cord pla/@ud sta/@ud}
|
|
|
|
=< abet
|
|
|
|
=. log-transaction (log-transaction %bonus +<)
|
|
|
|
?> |(=(our src) =([~ src] boss)) :: priveledged
|
|
|
|
=/ pas ~|(bad-invite+tid `passcode`(slav %uv tid))
|
2016-10-13 01:46:23 +03:00
|
|
|
(emit %jaelwomb / %bonus pas pla sta)
|
2016-08-12 02:16:05 +03:00
|
|
|
::
|
2016-04-08 20:08:05 +03:00
|
|
|
++ poke-invite :: create invitation
|
2016-10-13 00:53:55 +03:00
|
|
|
|= {tid/cord inv/invite}
|
2016-04-08 20:08:05 +03:00
|
|
|
=< abet
|
2016-04-30 02:18:59 +03:00
|
|
|
=. log-transaction (log-transaction %invite +<)
|
2016-04-15 03:04:19 +03:00
|
|
|
?> |(=(our src) =([~ src] boss)) :: priveledged
|
2016-07-05 23:18:08 +03:00
|
|
|
=+ pas=~|(bad-invite+tid `passcode`(slav %uv tid))
|
2016-10-13 01:46:23 +03:00
|
|
|
=. emit (emit %jaelwomb / %invite pas [who pla sta]:inv)
|
2016-07-07 02:06:29 +03:00
|
|
|
(email /invite who.inv intro.wel.inv)
|
2016-04-14 23:49:39 +03:00
|
|
|
::
|
|
|
|
++ poke-reinvite :: split invitation
|
|
|
|
|= {aut/passcode inv/invite} :: further invite
|
|
|
|
=< abet
|
2016-04-30 02:18:59 +03:00
|
|
|
=. log-transaction (log-transaction %reinvite +<)
|
|
|
|
?> =(src src) :: self-authenticated
|
2016-07-07 00:49:46 +03:00
|
|
|
=+ ~|(%bad-passcode bal=(~(got by bureau) (shaf %pass aut)))
|
2016-10-13 01:25:10 +03:00
|
|
|
=/ pas/@uv (end 7 1 (shaf %pass eny))
|
2016-10-13 01:46:23 +03:00
|
|
|
=. emit (emit %jaelwomb / %reinvite aut pas [who pla sta]:inv)
|
2016-10-13 01:25:10 +03:00
|
|
|
(email /invite who.inv intro.wel.inv)
|
2016-04-08 20:08:05 +03:00
|
|
|
::
|
|
|
|
++ poke-obey :: set/reset boss
|
|
|
|
|= who/(unit @p)
|
|
|
|
=< abet
|
|
|
|
?> =(our src) :: me only
|
2016-04-15 00:37:16 +03:00
|
|
|
.(boss who)
|
2016-04-08 20:08:05 +03:00
|
|
|
::
|
2016-04-19 01:15:35 +03:00
|
|
|
++ poke-save :: write backup
|
|
|
|
|= pax/path
|
|
|
|
=< abet
|
2016-05-07 00:26:13 +03:00
|
|
|
?> =(our src) :: me only
|
2016-07-01 20:44:35 +03:00
|
|
|
=+ pas=`@uw`(shas %back eny)
|
|
|
|
~& [%backing-up pas=pas]
|
|
|
|
=; dif (emit %info /backup [our dif])
|
|
|
|
%+ foal (welp pax /jam-crub)
|
|
|
|
[%jam-crub !>((en:crub pas (jam `part`+:abet)))]
|
2016-04-19 01:15:35 +03:00
|
|
|
::
|
2016-04-08 20:08:05 +03:00
|
|
|
++ poke-rekey :: extend will
|
2016-04-12 22:02:59 +03:00
|
|
|
|= $~
|
2016-04-08 20:08:05 +03:00
|
|
|
=< abet
|
|
|
|
?> |(=(our src) =([~ src] boss)) :: privileged
|
2016-08-12 04:33:31 +03:00
|
|
|
:: (emit /rekey %next sec:ex:(pit:nu:crub 512 (shaz (mix %next (shaz eny)))))
|
|
|
|
~& %rekey-stub .
|
2016-04-08 20:08:05 +03:00
|
|
|
::
|
|
|
|
++ poke-report :: report will
|
|
|
|
|= {her/@p wyl/will} ::
|
|
|
|
=< abet
|
2016-04-30 02:18:59 +03:00
|
|
|
=. log-transaction (log-transaction %report +<)
|
2016-04-08 20:08:05 +03:00
|
|
|
?> =(src src) :: self-authenticated
|
2016-04-15 00:37:16 +03:00
|
|
|
(emit %knew /report her wyl)
|
2016-04-08 20:08:05 +03:00
|
|
|
::
|
2016-05-05 00:40:20 +03:00
|
|
|
++ poke-recycle :: save ticket as balance
|
|
|
|
|= {who/mail him-t/knot tik-t/knot}
|
2016-07-02 00:01:11 +03:00
|
|
|
?. can-recycle.cfg ~|(%ticket-recycling-offline !!)
|
2016-05-04 20:58:35 +03:00
|
|
|
=< abet
|
2016-05-05 00:40:20 +03:00
|
|
|
=. log-transaction (log-transaction %recycle +<)
|
2016-05-04 20:58:35 +03:00
|
|
|
?> =(src src)
|
|
|
|
=+ [him tik]=(parse-ticket him-t tik-t)
|
2016-05-04 21:48:16 +03:00
|
|
|
?> (need (check-old-ticket him tik))
|
2016-07-06 01:06:11 +03:00
|
|
|
=+ pas=`passcode`(end 7 1 (sham %tick him tik))
|
2016-10-13 01:57:22 +03:00
|
|
|
:: ?^ (scry-womb-invite (shaf %pass pas))
|
|
|
|
:: ~|(already-recycled+[him-t tik-t] !!)
|
2016-10-13 01:25:10 +03:00
|
|
|
=/ inv/{pla/@ud sta/@ud}
|
|
|
|
?+((clan him) !! $duke [0 1], $king [1 0])
|
2016-10-13 01:46:23 +03:00
|
|
|
(emit %jaelwomb / %invite pas who inv)
|
2016-10-13 01:25:10 +03:00
|
|
|
::
|
|
|
|
::
|
|
|
|
:: ++ jael-claimed 'Move email here if an ack is necessary'
|
2016-05-04 20:58:35 +03:00
|
|
|
::
|
2016-04-15 03:04:19 +03:00
|
|
|
++ poke-claim :: claim plot, req ticket
|
2016-04-14 23:49:39 +03:00
|
|
|
|= {aut/passcode her/@p}
|
2016-07-02 00:01:11 +03:00
|
|
|
?. can-claim.cfg ~|(%ticketing-offline !!)
|
2016-04-08 20:08:05 +03:00
|
|
|
=< abet
|
2016-04-30 02:18:59 +03:00
|
|
|
=. log-transaction (log-transaction %claim +<)
|
2016-04-12 22:02:59 +03:00
|
|
|
?> =(src src)
|
2016-10-13 01:25:10 +03:00
|
|
|
=/ tik/ticket (end 6 1 (shas %tick eny))
|
2016-10-13 01:46:23 +03:00
|
|
|
=. emit (emit %jaelwomb / %claim aut her tik)
|
2016-10-13 01:25:10 +03:00
|
|
|
:: XX event crashes work properly yes?
|
2016-10-13 01:46:23 +03:00
|
|
|
=/ adr/mail !! :: XX scry jael
|
|
|
|
(email /ticket adr "Ticket for {<her>}: {<`@pG`tik>}")
|
2016-10-13 01:57:22 +03:00
|
|
|
::
|
|
|
|
::
|
2016-10-13 02:16:47 +03:00
|
|
|
:: ++ poke-release-ships :: release specific
|
|
|
|
:: |= a/(list ship)
|
|
|
|
:: =< abet ^+ +>
|
|
|
|
:: =. log-transaction (log-transaction %release-ships +<)
|
|
|
|
:: ?> =(our src) :: privileged
|
|
|
|
:: %+ roll a
|
|
|
|
:: =+ [who=*@p res=+>.$]
|
|
|
|
:: |. ^+ res
|
|
|
|
:: ?+ (clan who) ~|(bad-size+(clan who) !!)
|
|
|
|
:: $king (release-star who res)
|
|
|
|
:: $czar (release-galaxy who res)
|
|
|
|
:: ==
|
|
|
|
:: ::
|
|
|
|
:: ++ poke-release :: release to subdivide
|
|
|
|
:: |= {gal/@ud sta/@ud} ::
|
|
|
|
:: =< abet ^+ +>
|
|
|
|
:: =. log-transaction (log-transaction %release +<)
|
|
|
|
:: ?> =(our src) :: privileged
|
|
|
|
:: =. +>
|
|
|
|
:: ?~ gal +>
|
|
|
|
:: =+ all=(take-n [0 gal] shop-galaxies)
|
|
|
|
:: ?. (gth gal (lent all))
|
|
|
|
:: (roll all release-galaxy)
|
|
|
|
:: ~|(too-few-galaxies+[want=gal has=(lent all)] !!)
|
|
|
|
:: ^+ +>
|
|
|
|
:: ?~ sta +>
|
|
|
|
:: =+ all=(take-n [0 sta] shop-stars)
|
|
|
|
:: ~& got-stars+all
|
|
|
|
:: %- (slog leaf+"For issuing to proceed smoothly, immediately upon boot, ".
|
|
|
|
:: "each should |obey {<our>} to honor ticket requests." ~)
|
|
|
|
:: ?. (gth sta (lent all))
|
|
|
|
:: (roll all release-star)
|
|
|
|
:: ~|(too-few-stars+[want=sta has=(lent all)] !!)
|
|
|
|
:: ::
|
|
|
|
:: ++ release-galaxy :: subdivide %czar
|
|
|
|
:: =+ [who=*@p res=.]
|
|
|
|
:: |. ^+ res
|
|
|
|
:: %+ mod-managed-galaxy:res who
|
|
|
|
:: |= gal/galaxy ^- galaxy
|
|
|
|
:: ~& release+who
|
|
|
|
:: ?^ gal ~|(already-used+who !!)
|
|
|
|
:: (some %& (fo-init 5) (fo-init 4) (fo-init 3))
|
|
|
|
:: ::
|
|
|
|
:: ++ release-star :: subdivide %king
|
|
|
|
:: =+ [who=*@p res=.]
|
|
|
|
:: |. ^+ res
|
|
|
|
:: =. res (emit.res %poke /womb/tick [(sein who) %hood] [%womb-do-ticket who])
|
|
|
|
:: %+ mod-managed-star:res who
|
|
|
|
:: |= sta/star ^- star
|
|
|
|
:: ~& release+who
|
|
|
|
:: ?^ sta ~|(already-used+[who u.sta] !!)
|
|
|
|
:: (some %& (fo-init 5) (fo-init 4))
|
2016-04-08 20:08:05 +03:00
|
|
|
--
|