Updated chat. Also added +-tur to ++by.

This commit is contained in:
pcmonk 2014-06-09 18:45:19 -07:00
parent 8a15ab7685
commit 79b4512479
5 changed files with 191 additions and 258 deletions

View File

@ -1163,15 +1163,15 @@
::
++ rlyd |= red=@rd ^- [s=? h=@ f=@] !:
~& [%rlyd `@ux`red]
[s=(sig:rd red) h=(hol:rd red) f=0]
[s=(sig:rd red) h=(exp:rd red) f=(fac:rd red)]
++ rlyh |=(reh=@rh ~|(%real-nyet ^-([s=? h=@ f=@] !!)))
++ rlyq |=(req=@rq ~|(%real-nyet ^-([s=? h=@ f=@] !!)))
++ rlys |=(res=@rs ~|(%real-nyet ^-([s=? h=@ f=@] !!)))
++ ryld |= v=[syn=? hol=@ zer=@ fac=@] ^- @rd !:
(bit:rd (cof:fl 52 1.023 v))
++ rylh |=([syn=? hol=@ zer=@ fac=@] ~|(%real-nyet ^-(@rh !!)))
++ rylq |=([syn=? hol=@ zer=@ fac=@] ~|(%real-nyet ^-(@rq !!)))
++ ryls |=([syn=? hol=@ zer=@ fac=@] ~|(%real-nyet ^-(@rs !!)))
++ ryld |= v=[syn=? hol=@ fac=@] ^- @rd !:
(bit:rd (cof:fl 52 v))
++ rylh |=([syn=? hol=@ fac=@] ~|(%real-nyet ^-(@rh !!)))
++ rylq |=([syn=? hol=@ fac=@] ~|(%real-nyet ^-(@rq !!)))
++ ryls |=([syn=? hol=@ fac=@] ~|(%real-nyet ^-(@rs !!)))
:: Floating point operations for general floating points.
:: Not really needed, since the actual floating point operations
@ -1201,18 +1201,12 @@
$(c (^mul c a), b (^add b 1))
:: convert from sign/whole/frac -> sign/exp/ari w/ precision p, bias b
++ cof |= [p=@u b=@u s=? h=@u z=@ f=@u] ^- [s=? e=@s a=@u]
?: &(=(0 h) =(0 f))
[s=s e=`@s`(dec (^mul 2 b)) a=(ari p 0)]
?: &(=(0 h))
=+ a=(fra (^add p b) z f) ::p+b bits
=+ e=(dif:si (sun:si (met 0 a)) (sun:si +((^add p b))))
[s=s e=e a=(lia p a)]
=+ c=(fra p z f) :: p-bits
=+ a=(mix c (lsh 0 p h))
=+ e=(dif:si (sun:si (met 0 a)) (sun:si +(p)))
[s=s e=e a=(lia p a)]
++ cof |= [p=@u s=? h=@u f=@u] ^- [s=? e=@s a=@u]
=+ b=(fra p f)
=+ e=(dif:si (sun:si (xeb h)) (sun:si 1))
=+ a=(lia p (mix (lsh 0 p h) b))
[s=s e=e a=a]
:: convert from sign/exp/ari -> sign/whole/frac w/ precision q
++ cog |= [q=@u s=? e=@s a=@u] ^- [s=? h=@u f=@u]
::?: =(e -0)
@ -1223,31 +1217,25 @@
::=+ (^mul ari (bex e))
!!
:: Decimal length of number, for use in ++den
++ dcl |= [f=@u] ^- @u
?: =(f 0)
0
(^add 1 $(f (^div f 10)))
:: Denominator of fraction, f is base 10
++ den |= [f=@u z=@u] ^- @u
(bey 10 (^add z (dcl f)) 0 1)
++ den |= f=@u ^- @u
(bey 10 (dcl f) 0 1)
:: Binary fraction of precision p (ex, for doubles, p=52)
++ fra |= [p=@u z=@u f=@u] ^- @u
(^div (lsh 0 p f) (den f z))
++ fra |= [p=@u f=@u] ^- @u
=+ d=(den f)
(^div (lsh 0 p f) d)
:: Decimal fraction of precision q [for printing only]
++ fre |= [q=@u a=@u] ^- @u
=+ d=(bex (^sub (met 0 a) 1))
(^div (^mul a (bey 10 q 0 1)) d)
++ hol |= [p=@u n=[s=? e=@s a=@u]] ^- @u
?: =((mod `@`e.n 2) 0)
?: (^gte (abs:si e.n) p)
(lsh 0 (^sub (abs:si e.n) p) a.n)
(rsh 0 (^sub p (abs:si e.n)) a.n)
0
:: Decimal length of number, for use in ++den
++ dcl |= [f=@u] ^- @u
?: =(f 0)
0
(^add 1 $(f (^div f 10)))
:: reverse ari, ari -> mantissa
++ ira |= a=@u ^- @u
@ -1317,11 +1305,11 @@
:: =+ a4=(rnd p (rsh 0 e2 a3))
=+ a4=(rnd p (rsh 0 e2 a2))
=+ s2=|(s.n s.m)
[s=s2 e=:(sum:si e.n e.m (sun:si e2)) a=a4]
[s=s2 e=:(sum:si e.n e.m e2) a=a4]
++ div |= [p=@u n=[s=? e=@s a=@u] m=[s=? e=@s a=@u]] ^- [s=? e=@ a=@]
=+ b=(rnd p (^div (lsh 0 (^mul p 2) a.n) a.m))
?: (^gte a.n a.m)
?: (^gte e.n e.m)
[s=|(s.n s.m) e=(dif:si e.n e.m) a=b]
[s=|(s.n s.m) e=(dif:si (dif:si e.n e.m) (sun:si 1)) a=b]
@ -1354,8 +1342,8 @@
++ bit |= a=[s=? e=@s a=@u]
=+ a2=(lia:fl 52 a.a)
=+ b=(ira:fl a2)
::=+ c=(lsh 0 (^sub 52 (met 0 b)) b)
(can 0 [[52 b] [[11 (abs:si (sum:si (sun:si 1.023) e.a))] [[1 `@`s.a] ~]]])
=+ c=(lsh 0 (^sub 52 (dec (met 0 a2))) b)
(can 0 [[52 c] [[11 (abs:si (sum:si (sun:si 1.023) e.a))] [[1 `@`s.a] ~]]])
:: Sign of an @rd
++ sig |= [a=@rd] ^- ?
=(0 (rsh 0 63 a))
@ -1364,19 +1352,12 @@
(dif:si (sun:si (rsh 0 52 (end 0 63 a))) (sun:si 1.023))
:: Fraction of an @rd (binary)
++ fac |= [a=@rd] ^- @u
(fre:fl 14 (ari:fl 52 (end 0 52 a)))
:: Whole
++ hol |= [a=@rd] ^- @u
(hol:fl 52 (sea a))
(end 0 52 a)
:: Convert to sign/exp/ari form
++ sea |= a=@rd ^- [s=? e=@s a=@u]
[s=(sig a) e=(exp a) a=(ari:fl 52 (end 0 52 a))]
[s=(sig a) e=(exp a) a=(ari:fl 52 (fac a))]
::::::::::::
++ sun ~/ %sun
|= a=@u ^- @rd
(bit (cof:fl 52 1.023 %.y a 0 0))
++ add ~/ %add
|= [a=@rd b=@rd] ^- @rd
(bit (add:fl 52 (sea a) (sea b)))
@ -1408,19 +1389,6 @@
++ gth ~/ %gth
|= [a=@rd b=@rd] ^- ?
(gth:fl (sea a) (sea b))
++ max |= [a=@rd b=@rd] ^- @rd
?: (gth a b)
a
b
++ min |= [a=@rd b=@rd] ^- @rd
?: (lth a b)
a
b
++ bex |= a=@s ^- @rd
(bit [s=%.y e=a a=(ari:fl 52 0)])
--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: section 2cH, urbit time ::
@ -1852,6 +1820,12 @@
b
$(a r.a, b [n.a $(a l.a)])
::
+- tur :: turn
|* b=$+([* *] *)
|-
?~ a ~
[n=[p=p.n.a q=(b p.n.a q.n.a)] l=$(a l.a) r=$(a r.a)]
::
+- uni :: union, merge
~/ %uni
|= b=_a
@ -3217,13 +3191,11 @@
(stag ~ zust)
(stag %many (ifix [cab ;~(plug cab cab)] (more cab nusk)))
==
++ royl !:
=+ ^= zer
(cook lent (star (just '0')))
++ royl
=+ ^= vox
;~ plug
;~(pose (cold | hep) (easy &))
;~(plug dim:ag ;~(pose ;~(pfix dot ;~(plug zer dim:ag)) (easy [0 0])))
;~(plug dim:ag ;~(pose ;~(pfix dot dim:ag) (easy 0)))
==
;~ pose
(stag %rh (cook rylh ;~(pfix ;~(plug sig sig) vox)))

View File

@ -6,7 +6,16 @@
=> +
=> ^/===/lib/pony
=> ^/===/lib/chat
=+ flag=?(%all %rooms %monitor %never %leet %nub %time [%haus p=@p])
=+ ^= flag
$? %all
%monitor
%never
%leet
%nub
%time
[%haus p=@p]
[%r p=room]
==
=+ flags=*(list flag)
=> |%
++ chk-flag |=(f=@tas (lien flags |=(flag =(f +<))))
@ -17,16 +26,11 @@
(cold [%out ~] zap)
%+ stag %who %+ stag %tcc (teklist ^room tis cen room)
(cold [%who %ttt ~] ;~(plug tis tis tis))
(cold [%who %tts ~] ;~(plug tis tis))
(cold [%who %tis ~] tis)
%+ stag %lus (teklist ^room lus cen room)
%+ stag %hep (teklist ^room hep cen room)
%+ stag %kil (teklist ,@p hep sig fed:ag)
%+ stag %res (teklist ,@p lus sig fed:ag)
;~(pfix pam (stag %all (stag %$ (stag %& mess))))
;~(pfix bar (stag %all (stag %$ (stag %| mess))))
%+ stag %all
;~(plug ;~(pfix cen room) (stag %& ;~(pfix ace mess)))
(stag %say ;~(plug ;~(pfix sig fed:ag) ;~(pfix ace mess)))
(stag %def mess)
==
@ -65,10 +69,18 @@
=+ da=(yell sen)
?- -.dum
%do =+ msg=?:(=(0 p.dum) "remains quietly present" (trip p.dum))
[%leaf "%{(trip roo)} {chr}{nym} {msg}"]
:- %leaf
%+ welp
?. (chk-flag %time) ~
(weld (timestamp sen) " ")
"%{(trip roo)} {chr}{nym} {msg}"
%ex :~ %rose
[" " "" ""]
[%leaf "%{(trip roo)} {chr}{nym} {(trip p.dum)}"]
:- %leaf
%+ welp
?. (chk-flag %time) ~
(weld (timestamp sen) " ")
"%{(trip roo)} {chr}{nym} {(trip p.dum)}"
q.dum
==
%qu
@ -103,7 +115,7 @@
wak=_@da :: next wakeup
dun=| :: done
kills=*(list ,@p)
rooms=*(list ^room)
roo=`^room`coci
==
[who=`@p`-< how=`path`->]
==
@ -112,19 +124,18 @@
=. flags `(list flag)`args
=+ sta=est :: move up to declaration of state
=. wak est
=. bud :: future maintainers: don't add more cell types with changing this
?: (lien args |=(a=flag ?=(^ a)))
(roll args |=([p=flag q=@p] ?:(?=(^ p) p.p q)))
=. bud
?: (lien args |=(a=flag &(?=(^ a) ?=(%haus -.a))))
(roll args |=([p=flag q=@p] ?:(&(?=(^ p) ?=(%haus -.p)) p.p q)))
bud
=. roo
?: (lien args |=(a=flag &(?=(^ a) ?=(%r -.a))))
(roll args |=([p=flag q=^room] ?:(&(?=(^ p) ?=(%r -.p)) p.p q)))
roo
=. kills %- (list ,@p)
%+ fall
(read-wlist /[(scot %p who)]/conf/[(scot %da est)]/chat/killfile/wlist)
~
=. rooms %- (list ^room)
%+ fall
%- read-wlist
/[(scot %p who)]/conf/[(scot %da est)]/chat/[(scot %p bud)]/wlist
~[coci]
|- ^- bowl
=< abet:init
|%
@ -166,14 +177,12 @@
%+ weld
?. ?=(& -.sad)
(scow %p p.sad)
?~ rooms
"deep space "
:(weld "%" (trip i.rooms) ?:(p.sad " &" " |"))
:(weld "%" (trip roo) ?:(p.sad " &" " |"))
?:(wyt "... " " ")
==
--
::
++ init (joke:(joke ~ [%who ~]) ~ [%ego est]) :: initial actions
++ init (joke:(joke ~ [%who roo ~]) ~ [%ego roo est])
++ joke :: send message
|= [hur=(unit ,@p) msg=*]
^+ +>
@ -223,11 +232,20 @@
%= $
duz t.duz
+>
=. giz
?. ?& ?=(%all -.i.duz)
=+ ^= r
%+ rexp (scow %p who)
(trip =>(t.i.duz ?@(+ p p)))
&(!=(~ r) !=([~ ~] r) !=([~ ~ ~] r))
==
~
[[%xy /d [%blit [%bel ~]~]] giz]
%- shew
^- (list tank)
?- -.i.duz
%all
?: (dead p.s.i.duz)
?: |((dead p.s.i.duz) !=(roo q.i.duz))
~
:_ ~
%- rend
@ -238,7 +256,8 @@
t.i.duz
==
%who
%+ ~(rep by q.i.duz) *(list tank)
?. =(q.i.duz roo) ~
%+ ~(rep by r.i.duz) *(list tank)
|= [p=[r=^room u=(list user)] q=(list tank)]
:* [%leaf "%{(trip r.p)}:"]
:+ %rose [", " " " ""]
@ -251,13 +270,12 @@
==
?(%new %out)
?. ?& !(dead p.r.i.duz)
?| (chk-flag %all)
?& (lth sta p.i.duz)
?| (chk-flag %rooms)
?& =(coci q.i.duz)
(chk-flag %monitor)
== == ==
== ==
=(q.i.duz roo)
?| (chk-flag %all)
?& (lth sta p.i.duz)
(chk-flag %monitor)
== ==
==
~
:_ ~ :- %leaf
;: weld
@ -303,47 +321,12 @@
(foal /[(scot %p who)]/conf/[(scot %da est)]/chat/killfile/wlist encoded)
==
::
++ add-room
|= roo=(list ^room)
=+ rs=(weld roo (skip rooms |=(a=^room (lien roo |=(b=^room =(a b))))))
%+ %= joke
sad [%& %&]
rooms rs
giz
=+ encoded=(cat 3 (scot %uw (jam rs)) `@t`10) :: Base-64 encoding
:_ giz
:- %ok
%+ foal
/[(scot %p who)]/conf/[(scot %da est)]/chat/[(scot %p bud)]/wlist
encoded
==
~
`zing`[%lus roo]
::
++ remove-room
|= roo=(list ^room)
=+ rs=(skip rooms |=(a=^room (lien roo |=(b=^room =(a b)))))
%+ %= joke
sad [%& %&]
rooms rs
giz
=+ j=(jam rs)
=+ encoded=(cat 3 (scot %uw j) `@t`10) :: Base-64 encoding
:_ giz
:- %ok
%+ foal
/[(scot %p who)]/conf/[(scot %da est)]/chat/[(scot %p bud)]/wlist
encoded
==
~
`zing`[%hep roo]
::
++ shew |=(tax=(list tank) +>(giz [[%lo tax] giz])) :: print to screen
++ show |=(tan=tank +>(giz [[%la tan] giz])) :: print to screen
++ take :: alarm event
|- ^+ +
=. wak (add ~m1 (max wak est))
?.(=(0 oot) + (joke ~ `zing`[%ego est]))
?.(=(0 oot) + (joke ~ `zing`[%ego roo est]))
::
++ toke :: user action
|= txt=@t
@ -354,34 +337,21 @@
(show %leaf "invalid input")
?- -.u.rey
%all ?~ p.u.rey
?~ rooms
(show [%leaf "in space, no one can hear you scream..."])
(joke(sad [%& q.u.rey]) ~ `zing`[%all i.rooms q.u.rey r.u.rey])
(joke(sad [%& q.u.rey]) ~ `zing`[%all roo q.u.rey r.u.rey])
(joke(sad [%& q.u.rey]) ~ `zing`u.rey)
%def ?~ rooms
(show [%leaf "in space, no one can hear you scream..."])
%def
%- joke
?: ?=(& -.sad)
[~ `zing`[%all i.rooms p.sad p.u.rey]]
[~ `zing`[%all roo p.sad p.u.rey]]
[[~ p.sad] `^mess`p.u.rey]
%how (shew (turn (lore ^:@/===doc%/help/txt) |=(a=@t [%leaf (trip a)])))
%out (show(dun &) %leaf "see you space cowboy...")
%say (joke(sad [%| p.u.rey]) [~ p.u.rey] `^mess`q.u.rey)
%who ?- p.u.rey
%tis ?~ rooms
%+ show %leaf
"you are alone. try again on a habitable world."
%+ joke ~ ^- zing :- %who `~[i.rooms]
%tts %+ joke ~ ^- zing :- %who `rooms
%ttt %+ joke ~ ^- zing :- %who ~
%tcc %+ joke ~ ^- zing :- %who `q.u.rey
%tis %+ joke ~ ^- zing :+ %who roo `~[roo]
%ttt %+ joke ~ ^- zing :+ %who roo ~
%tcc %+ joke ~ ^- zing :+ %who roo `q.u.rey
==
%lus (add-room p.u.rey)
%hep ?~ rooms
%+ show %leaf
"you are at the outer rim, alone. try entering a habitable world."
(remove-room p.u.rey)
%kil (kill p.u.rey)
%res (resurrect p.u.rey)
==
@ -392,12 +362,22 @@
=. est now
=< abet
?+ -.pax +>
%ob ?>(?=(%lq -.nut) (said p.nut ((hard (list zong)) r.nut)))
%ob
?> ?=(%lq -.nut)
=+ n=((soft (list zong)) r.nut)
?~ n
~& %chat-zong-fail +>+
(said p.nut u.n)
%re ?>(?=(%ow -.nut) (nice ~ p.nut))
%ra ?> &(?=(%ow -.nut) ?=(^ t.pax))
(nice [~ (need (slaw %p i.t.pax))] p.nut)
%up ?>(?=(%up -.nut) (toke p.nut))
%wa ?>(?=(%wa -.nut) take)
%ya ?>(?=(%lq -.nut) (priv now p.nut ((hard ^mess) r.nut)))
%ya
?> ?=(%lq -.nut)
=+ n=((soft ^mess) r.nut)
?~ n
~& %chat-zong-fail +>+
(priv now p.nut u.n)
==
--

View File

@ -8,12 +8,9 @@
=> ^/===/lib/chat
=> |%
++ fool
$: num=(map room ,@ud) :: number received
nym=@t :: text name
$: nym=@t :: text name
sec=sect :: banner
liv=? :: officially live
elf=@da :: last ping
roo=(list room) :: room memberships
elf=(map room ,[d=@da n=@ud]) :: ping/mess received
== ::
++ loft :: room log
$: num=@ud :: (lent meg)
@ -33,35 +30,31 @@
++ abet ..of(pod.par (~(put by pod.par) her ful))
++ call [her nym.ful]
++ push
^- [(list zong) _.]
?. liv.ful [~ .]
^- [(list zong) _.]
:-
^- (list zong)
%- flop
%- ^zing
%+ turn roo.ful
|= roo=room
=+ lov=(~(get by lov.par) roo)
=+ lov=?~(lov *loft u.lov)
=+ num=(~(get by num.ful) roo)
=+ num=?~(num 0 u.num)
%+ skim (scag (sub num.lov num) meg.lov)
|= a=zong
?< ?=(%who -.a)
?& (lien roo.ful |=(* =(q.a +<)))
?. ?=(%all -.a) &
&(!=(her p.s.a) |(=(%white r.a) =(sec.ful r.a)))
==
^- (list zong)
%+ ~(rep by elf.ful) *(list zong)
|= [[r=room *] q=(list zong)]
=+ lov=(fall (~(get by lov.par) r) *loft)
=+ num=+:(fall (~(get by elf.ful) r) *[@da @ud])
%+ weld
%+ skim (scag (sub num.lov num) meg.lov)
|= a=zong
?< ?=(%who -.a)
?& (~(has by elf.ful) q.a)
?. ?=(%all -.a) &
&(!=(her p.s.a) |(=(%white r.a) =(sec.ful r.a)))
==
q
^- _.
%= .
num.ful
%- ~(gas by num.ful)
%+ turn roo.ful
|= roo=room
=+ lov=(~(get by lov.par) roo)
=+ lov=?~(lov *loft u.lov)
[roo num.lov]
elf.ful
%- ~(tur by elf.ful)
|= [r=room [d=@da n=@ud]]
=+ lov=(fall (~(get by lov.par) r) *loft)
[d num.lov]
==
--
::
@ -111,10 +104,20 @@
%+ ~(rib by pod.par) *(map room (list zong))
|= [[her=@p ful=fool] fug=(map room (list zong))]
^- [(map room (list zong)) [@p fool]]
?. &(liv.ful (gth now (add ~m2 elf.ful))) [fug her ful]
=+ ^= outs ^- (list ,[room (list zong)])
(turn roo.ful |=(c=room [c ~[[%out now c [her nym.ful]]]]))
[(~(gas by fug) outs) [her ful(liv |)]]
=+ ^= outs ^- (list room)
%+ ~(rep by elf.ful) *(list room)
|= [[r=room [d=@da n=@ud]] q=(list room)]
?. (gth now (add ~m2 d)) q
[r q]
=+ ^= outmes ^- (list ,[room (list zong)])
%+ turn outs
|= r=room
[r [%out now r [her nym.ful]]~]
=+ ^= f
|= [p=room q=(map room ,[@da @ud])] (~(del by q) p)
=+ ^= newelf ^- (map room ,[@da @ud])
%+ roll outs f(q elf.ful)
[(~(gas by fug) outmes) [her ful(elf newelf)]]
(tilt zew)
::
++ yelp
@ -122,28 +125,25 @@
^- [chub part]
?: ?=(%who -.zig)
:_ par
:~ :- her
:~ :+ %who
now
=+ ^= all
^- (map room (list user))
=< -
%+ ~(rib by pod.par) *(map room (list user))
|= [[her=@p ful=fool] fug=(map room (list user))]
^- [(map room (list user)) [@p fool]]
:_ [her ful]
?. liv.ful fug
%- ~(gas by fug)
%+ turn roo.ful
|= r=room
=+ c=(~(get by fug) r)
[r [[her nym.ful] ?~(c ~ u.c)]]
?~ p.zig
all
%- ~(gas by *(map room (list user)))
(turn u.p.zig |=(r=room [r (fall (~(get by all) r) ~)]))
==
==
:_ ~
:- her
^- (list zong)
:_ ~
:^ %who now p.zig
=+ ^= all ^- (map room (list user))
=< -
%+ ~(rib by pod.par) *(map room (list user))
|= [[her=@p ful=fool] fug=(map room (list user))]
^- [(map room (list user)) [@p fool]]
:_ [her ful]
%+ ~(rep by elf.ful) fug
|= [[r=room *] q=(map room (list user))]
%+ ~(put by q) r
[[her nym.ful] (fall (~(get by fug) r) ~)]
?~ q.zig
all
%- ~(gas by *(map room (list user)))
(turn u.q.zig |=(r=room [r (fall (~(get by all) r) ~)]))
=+ pof=(yowl our her)
=+ m=*(map room (list zong))
=^ zew +>.$
@ -151,43 +151,26 @@
%all
:_ abet:pof
%- ~(gas by m)
?. (lien roo.ful:pof |=(* =(p.zig +<))) ~
?. (~(has by elf.ful:pof) p.zig) ~
:_ ~
:- p.zig
~[[%all now p.zig ?:(q.zig %white sec.ful.pof) call:pof r.zig]]
::
%ego
:_ abet:pof(liv.ful &, elf.ful now)
=+ num=n:(fall (~(get by elf.ful.pof) p.zig) [_@ n=_@ud])
:_ abet:pof(elf.ful (~(put by elf.ful.pof) p.zig [now num]))
%- ~(gas by m)
=. elf.ful.pof now
?: liv.ful.pof ~
(turn roo.ful:pof |=(c=room [c ~[[%new now c call:pof]]]))
=+ liv=(~(has by elf.ful.pof) p.zig)
=. elf.ful.pof (~(put by elf.ful.pof) p.zig [now num])
?: liv ~
[p.zig ~[[%new now p.zig call:pof]]]~
::
%out
:_ abet:pof(liv.ful |)
%- ~(gas by m)
?. liv.ful.pof ~
(turn roo.ful:pof |=(c=room [c ~[[%out now c call:pof]]]))
::
%lus
=+ ^= oldroo
%+ skip roo.ful:pof
|=(a=room (lien p.zig |=(a=room =(a ^a))))
:_ abet:pof(roo.ful (weld p.zig oldroo))
%- ~(gas by m)
%+ turn
(skip p.zig |=(a=room (lien roo.ful:pof |=(a=room =(a ^a)))))
|=(r=room [r ~[[%new now r call:pof]]])
::
%hep
=+ ^= oldroo
%+ skip roo.ful:pof
|=(a=room (lien p.zig |=(a=room =(a ^a))))
:_ abet:pof(roo.ful oldroo)
%- ~(gas by m)
%+ turn
(skip p.zig |=(a=room (levy roo.ful:pof |=(a=room !=(a ^a)))))
|=(r=room [r ~[[%out now r call:pof]]])
:- ~ abet:pof
:: :_ abet:pof(elf.ful (~(del by elf.ful.pof) p.zig))
:: %- ~(gas by m)
:: ?. liv.ful.pof ~
:: (turn roo.ful:pof |=(c=room [c ~[[%out now c call:pof]]]))
==
(tilt zew)
::
@ -201,8 +184,7 @@
%- (hard (unit gcos))
.^(%a (scot %p our) %gcos (scot %da now) (scot %p her) ~)
^- fool
:* *(map room ,@ud)
^- @t
:* ^- @t
=+ yow=(scot %p her)
=+ woy=((hard ,@t) .^(%a (scot %p our) %name (scot %da now) (scot %p her) ~))
?: =(%$ woy) yow
@ -212,9 +194,7 @@
?: ?=(?(%lord %lady) -.p.u.gos)
r.p.p.u.gos
?:(?=(%punk -.p.u.gos) p.p.u.gos %white)
|
now
~[coci]
*(map room ,[@da @ud])
==
~(. of her ful)
--
@ -272,7 +252,12 @@
?+ -.pax !!
%re ?>(?=(%ow -.nut) [~ +>])
%wa ?>(?=(%wa -.nut) take(wak (add ~m1 est)))
%bo ?>(?=(%lq -.nut) (talk p.nut ((hard zing) r.nut)))
%bo
?> ?=(%lq -.nut)
=+ n=((soft zing) r.nut)
?~ n
~& %haus-zing-fail [~ +>+]
(talk p.nut u.n)
==
[(cede cub) ~ hope ..$]
--

View File

@ -2,32 +2,32 @@ prompts:
& broadcast message to room
| banner message
~ship private message to ship
%mars talk to room
type the prompt, then the message. ex: to send to %terra, type
"%terra hello earth". type "+%terra" to change the default prompt.
type the prompt, then the message. ex: to send to ~hoclur-bicrel, type
"~hoclur-bicrel hello mars". your prompt will be changed automatically.
actions:
@ send message in third person (irc /me)
# evaluate expression (ex: "#(add 2 2)")
+%mars [%urf ...] join room(s), or return to it(them)
-%mars [%urf ...] leave room(s)
# evaluate expression (ex: "#(add 2 2)")
-~hoclur-bicrel [~bacdyl-soltus ...] add ship(s) to kill list (hides messages)
+~hoclur-bicrel [~bacdyl-soltus ...] remove ship(s) from kill list
! exit
list vessels:
= show ships in current room
== show ships in all my rooms
=== show ships in haus (all rooms)
=%mars [%urf ...] show ships in specified room(s)
command-line parameters:
[%haus ~hoclur-bicrel] select haus server (default: ticketing ship)
[%r %mars] select a room (default: %mars)
%time display timestamps for messages
%monitor always display entrance and exit notices
%all always display entrance and exit notices
%monitor display entrance and exit notices except in backlog
%never never display entrance and exit notices
%leet only display ship names
%nub display ship and textual names
Only one of %monitor and %never may be specfied. Default behavior does not
display entrance and exit notices in :chat backlog.
only one of %all, %monitor, and %never may be specfied. default behavior is
%never. only one of %leet and %nub may be specified. default behavior is %leet.

View File

@ -8,9 +8,7 @@
[%how ~] :: help
[%out ~] :: log out
[%say p=@p q=mess] :: private
[%who p=?(%tis %tts %ttt %tcc) q=(list room)] :: query users
[%lus p=(list room)] :: join room(s)
[%hep p=(list room)] :: leave room(s)
[%who p=?(%tis %ttt %tcc) q=(list room)] :: query users
[%kil p=(list ,@p)] :: kill user(s)
[%res p=(list ,@p)] :: resuscitate(s)
== ::
@ -28,17 +26,15 @@
++ coci %mars :: default room
++ zing :: client to server
$% [%all p=room q=? r=mess] :: broadcast
[%ego p=@da] :: ping / last active
[%ego p=room q=@da] :: ping / last active
[%out ~] :: log out
[%who p=(unit (list room))] :: query users
[%lus p=(list room)] :: join room(s)
[%hep p=(list room)] :: leave room(s)
[%who p=room q=(unit (list room))] :: query users
== ::
++ zong :: server to client
$% [%all p=@da q=room r=sect s=user t=mess] :: broadcast
[%new p=@da q=room r=user] :: user joined
[%out p=@da q=room r=user] :: user left
[%who p=@da q=(map room (list user))] :: users
[%who p=@da q=room r=(map room (list user))] :: users
== ::
--