View difference between Paste ID: 9GSf41h0 and ghCQe6n8
SHOW: | | - or go back to the newest paste.
1
--term.redirect(peripheral.wrap('right'))
2
-- bee you, citrons.
3
4
local adjs = {
5
    "beeoidal","apiaristic","critical","automatic",
6
    "nuclear","evil","safety","unsafety","grammatical",
7
    "good","bad","rotational","rotating","autogravitational",
8
    "systemic","invisibile","invisibility","apiary",
9
    "apiaristic","fake","real","decoy","communistic",
10
    "capitalistic","monetary","altruistic",
11
    "inevitable","insatiable","disagreeable",
12
    "mind controlling","destruction","diagnostic",
13
    "impossible","anomalous","levitating",
14
    "transparent","unknowable","antimemetic",
15
    "propaganda","memetic","hazardous","status",
16
    "cognitohazardous","cryogenic","meta",
17
    "sentient", "invertible", "isomorphic", "pyroclastic",
18
    "differential", "nonlinear", "optical", "javascriptoidal",
19
    "intelligent", "unfathomable", "indefatigable",
20
    "mind controlled", "commutative", "triangular",
21
    "nanoscale", "web-controlled", "solar", "relativistic",
22
    "construction", "deconstruction", "set-theoretic",
23
    "legal", "characteristic", "probabilistic", "convolutional",
24
    "photonic", "optronic", "silicon", "emulated",
25
    "metallic", "microwave", "microelectromechanical",
26
    "geomagnetic", "magnetic", "apionic", "projectional",
27
    "combinatoric", "reversible", "ominous", "hexagonal",
28
    "lunar", "spatial", "whole", "half",
29
    "impartial", "immovable", "unstoppable",
30
    "subsonic", "supersonic", "blue (insentient)",
31
    "blue (sentient)", "colourless blue",
32
    "colourless red", "colorless yellow",
33
    "furious", "ultrasonic", "sleeping",
34
    "concurrent", "memory-safe", "self-aware",
35
    "inflammable", "flammable", "stellar",
36
    "integrated", "gollarious", "heretic",
37
    "dangerous", "nonmetallic", "monadic",
38
    "comonadic", "malleable", "javascript",
39
    "javascriptoidal", "carcinogenic",
40
    "crabulous", "crab deployment", "galactic",
41-
    "procedual", "derivation"
41+
    "procedual", "derivation", "destabilized"
42
}
43
local nouns = {
44
    "systems","apioids","bees","apioforms",
45
    "circles","polygons","fluids","dynamics",
46
    "servers","apiaries","lemons","lemonsystems",
47
    "apiosystems","dodecahedra","ideologies",
48
    "political systems","blockchains","algorithms",
49
    "cuboids","timelike curves","devices",
50
    "computers","clusters","nodes",
51
    "clients","proxies","uplinks",
52
    "satelites","orbital satelites","lasers",
53
    "metaspheres","generators","status reports",
54
    "tables","websites","content","videos",
55
    "displays","interfaces","reactors","software",
56
    "spyware","malware","demons","auctions",
57
    "currency","drones","cognitohazards",
58
    "apiohazards","cryoapioforms",
59
    "vectors", "matrices", "stations", "monoids",
60
    "daemons", "memetics", "signposts", "doors",
61
    "hexahedra", "planets", "spheres", "monitors",
62
    "projectiles", "neutrinos", "muons", "ellipsoids",
63
    "arrays", "tensors", "neural networks", "bismuth",
64
    "containment", "hives", "polynomials", "monopoles",
65-
    "ideas", "memeplexes"
65+
    "ideas", "memeplexes", "realities"
66
}
67
local opinions = {
68
    "I hate X","I enjoy X","I sometimes experience X",
69
    "The company really needs more X",
70
    "We should use less X",
71
    "For environmental purposes, we should\nuse X",
72
    "X: good for the economy",
73
    "X: bad for the economy",
74
    "I think poorly of X",
75
    "We need a better solution for X",
76
    "The X have been malfunctioning recently",
77
    "We could profit from X",
78
    "We would lose profit from X",
79
    "X have had great uptime",
80
    "X have had terrible uptime",
81
    "I think X bad",
82
    "I think X good",
83
    "X have been problematic; I blame X",
84
    "X are present in the majority of our facilities",
85
    "X have not been confirmed to exist",
86
    "X are a core part of our quarterly strategy",
87
    "Sometimes X can be found scattered around our facilities",
88
    "Wait, we have X? Doubtful",
89
    "There are no X",
90
    "X have demonstrated antimemetic properties",
91
    "Maybe X are to be considered harmful",
92
    "We're looking into integrating X into our X",
93
    "We should deploy more X",
94
    "X are an unnecessary burden",
95
    "Maintanence of X is difficult",
96
    "We should really automate X",
97
    "We need to hire X consultants"
98
}
99
100
local printer = peripheral.find "printer"
101
102
function rstring(n)
103
    local res = ""
104
    for i=1,n do
105
        res=res..string.char(math.random(33,255))
106
    end
107
    return res
108
end
109
110
local preferred = rstring(math.random(7,15))
111
112
function slow(x,nnl)
113
    for i=1,#x do
114
        local c = x:sub(i,i)
115
        if c=="\n" then
116
            print("")
117
        else
118
            write(c)
119
        end
120
        if math.random(0,1)==1 then sleep(0.05) end
121
    end
122
    if not nnl then print("") end
123
end
124
function shouldbreak(text)
125
    local x = term.getCursorPos()
126
    local w = term.getSize()
127
    if x+#text>w then
128
        return true
129
    end
130
    return false
131
end
132
function cprint(t,p,nnl,pp)
133
    p = p or 0
134
    pp = pp or 0
135
    local x,y = term.getCursorPos()
136
    local w,h = term.getSize()
137
    term.setCursorPos(w/2-(#t+p)/2,y)
138
    slow(t,nnl)
139
end
140
function header(x)
141
    cprint(("-"):rep(term.getSize()))
142
    cprint(x)
143
    cprint(("-"):rep(term.getSize()))
144
end
145
function r(t)
146
    return t[math.random(1,#t)]
147
end
148
function pair()
149
    return r(adjs).." "..r(nouns)
150
end
151
function printStatus()
152
    local gpair = pair()..": "
153
    local status = math.random(0,3)==0 and "OFFLINE" or "ONLINE"
154
    cprint(gpair,#status,true)
155
    sleep(math.random(1,10)/20)
156
    if status=="OFFLINE" then
157
        term.setTextColor(colors.red)
158
    else
159
        term.setTextColor(colors.lime)
160
    end
161
    cprint(status,-#gpair)
162
    term.setTextColor(colors.white)
163
end
164
function statusreport()
165
    header("STATUS REPORT")
166
    for i=1,10 do printStatus() end
167
end
168
function giveopinion(isslow)
169
    local opinion = r(opinions):gsub("X",pair)..". "
170
    if shouldbreak(opinion) then print("") end
171
    if isslow then slow(opinion,true) else print(opinion) end
172
end
173
function giveopinions(slow)
174
    header("GENERAL REPORT")
175
    for i=1,15 do giveopinion(slow) end
176
end
177
local function printonce()
178
    printer.isColour = function() return false end
179
    printer.getSize = printer.getPageSize
180
    printer.scroll = function() end
181
    printer.newPage()
182
    local ts = os.date "%Y-%m-%d %H:%M"
183
    printer.setPageTitle("General Report: " .. ts)
184
    local orig = term.redirect(printer)
185
    local w,h = term.getSize()
186
    header "GENERAL REPORT"
187
    while ({term.getCursorPos()})[2] < h do
188
        giveopinion(false)
189
    end
190
    term.redirect(orig)
191
    printer.endPage()
192
    printer.drop(8, 64, "north")
193
	sleep(1)
194
end
195
while true do
196
	printonce(); printonce(); printonce(); printonce(); printonce()
197-
sleep(10)
197+
198
    print("")
199
	printonce(); printonce(); printonce(); printonce(); printonce()
200
    statusreport(true)
201
    print("")
202
end