blob: ebb78b8e36117e6add9c8f9477b69b7dba91fbad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/- gate=trill-gate
|%
++ mask-lock
|= =lock:gate ^- lock:gate
:* ?: public.rank.lock rank.lock [~ %| %|]
?: public.luk.lock luk.lock [~ %| %|]
?: public.ship.lock ship.lock [~ %| %|]
?: public.tags.lock tags.lock [~ %| %|]
?: public.custom.lock custom.lock [~ %|]
==
++ can-access
|= [=ship =lock:gate =bowl:gall] ^- ?
?^ fn.custom.lock %- u.fn.custom.lock ship
=/ in-luk (~(has in caveats.ship.lock) ship)
=/ fu (sein:title our.bowl now.bowl ship)
=/ ye (sein:title our.bowl now.bowl fu)
=/ ze (sein:title our.bowl now.bowl ye)
=/ in-ship ?|
(~(has in caveats.luk.lock) fu)
(~(has in caveats.luk.lock) ye)
(~(has in caveats.luk.lock) ze)
==
=/ in-rank (~(has in caveats.rank.lock) (clan:title ship))
:: =/ in-tags (~(has in (scry-pals-tags caveats.tags.lock)) ship)
=/ can |= [pit=? has=?] ^- ? ?: pit has !has
=/ as-ship (can locked.ship.lock in-ship)
=/ as-luk (can locked.ship.lock in-luk)
=/ as-rank (can locked.ship.lock in-rank)
::=/ as-tags (can locked.ship.lock in-tags)
?&(as-ship as-luk as-rank)
++ scry-pals-tags
|= tags=(set @t) ^- (set @p)
:: .^()
~
++ apply-change
|= [=lock:gate =change:gate] ^- lock:gate
?- -.change
%set-rank lock(rank +.change)
%set-luk lock(luk +.change)
%set-ship lock(ship +.change)
%set-tags lock(tags +.change)
%set-custom lock ::TODO
==
++ open-all
|= =lock:gate ^- lock:gate
%= lock
rank rank.lock(locked .n)
luk luk.lock(locked .n)
ship ship.lock(locked .n)
tags tags.lock(locked .n)
==
++ lock-all
|= =lock:gate ^- lock:gate
%= lock
rank rank.lock(locked .y)
luk luk.lock(locked .y)
ship ship.lock(locked .y)
tags tags.lock(locked .y)
==
++ toggle-rank
|= [r=rank:title setting=[caveats=(set rank:title) locked=? public=?]]
=/ new-caveats=(set rank:title) ?: locked.setting
(~(put in caveats.setting) r)
(~(del in caveats.setting) r)
setting(caveats new-caveats)
++ toggle-ship
|= [s=ship setting=[caveats=(set ship) locked=? public=?]]
=/ new-caveats=(set ship) ?: locked.setting
(~(put in caveats.setting) s)
(~(del in caveats.setting) s)
setting(caveats new-caveats)
++ toggle-tag
|= [t=@t setting=[caveats=(set @t) locked=? public=?]]
=/ new-caveats=(set @t) ?: locked.setting
(~(put in caveats.setting) t)
(~(del in caveats.setting) t)
setting(caveats new-caveats)
--
|