xxxxxxxxxx
345
function setup() {
let it = createCanvas(600, 400);
it.canvas.title = "schleebo"
}
let stringk = ""
let explode = false
let bombTimer = new Timer()
bombTimer.paused = true
let timeToDie = 30
let defuseCode = 102003909283
let theDude = false
let talking = 0
let saying = "Hello, I'm Schleebo!"
let schleeboTimer = new Timer()
schleeboTimer.paused = true
let sx = 40
let sy = 40
let sr = 0
let homophobic = false
let emo = false
let admin = false
let coverOff = false
let itGetsReal = false
let panelLog = ["> admin panel enabled"]
let itGotReal = false
let yeetTimer = new Timer()
yeetTimer.paused = true
let seizure = false
let talk2 = false
let words2 = "oh dear, it appears I am saying placeholder text"
function schleeboSay(words, delay, duration){
executeDelayed(function(){
talking ++
saying = words
},delay)
executeDelayed(function(){talking--},duration + delay)
}
function keyTyped() {
if(key == "Enter"){
if(stringk == "explode" || stringk == "fuck you" || stringk == "kys"){
explode = true
bombTimer.paused = false
defuseCode = round(random(1000,9999))
schleeboSay("you should say " + defuseCode,timeToDie-5,5)
}else if(stringk == "schleebo" && !theDude){
theDude = true
schleeboTimer.paused = false
schleeboSay("Hello, I'm Schleebo!",5,5)
schleeboSay("did you know that there is a dark mode? Try saying \"dark mode\"",15,5)
schleeboSay("don't like it? you can say \"go back\" to go back.", 25,5)
schleeboSay("7vector said not to tell anyone this, but the secret password is ADMIN",40,5)
schleeboSay("so like, don't type that in.",46,5)
}else if(stringk == "no homo" || stringk == "my eyes hurt"){
homophobic = true
}else if(stringk == "dark mode"){
emo = true
}else if(stringk == "give me a seizure"){
seizure = true
homophobic = true
}else if(stringk == defuseCode){
explode = false
bombTimer.paused = true
bombTimer.value = 0
}else if(stringk == "go back" || stringk == "reset"){
seizure = false
emo = false
homophobic = false
}else if(stringk == "stop"){
seizure = false
}else if(stringk == "no schleebo" || stringk == "remove schleebo" || stringk == "go away"){
schleeboSay("you can't get rid of me.",0,10)
}else if(stringk == "ADMIN" && !admin){
print("FUCK YOU SCHLEEBO")
resizeCanvas(600,500)
admin = true
doNot.enable()
pleaseNo.hidden = false
schleeboSay("why would you do that. what's wrong with you?",0,5)
schleeboSay("he's going to be so mad at both of us now.",6,4)
schleeboSay("what's your problem.",11,5)
}
stringk = ""
}else{
chari = key
stringk += chari
}
}
function keyReleased(){
if(keyCode == 8 && stringk.length > 0){
stringk = stringk.slice(0,stringk.length - 1)
}
}
let doNot = new Button("box", 30,430)
doNot.active = false
doNot.hidden = true
doNot.width = 40
doNot.height = 40
doNot.fill = [200,0,0]
doNot.stroke = [50,30,30]
doNot.strokeWeight = 2
doNot.draw = function(){
let hover = this.hover
let pressed = this.pressed
fill(hover&&!pressed?this.fill:[240,0,0])
stroke(this.stroke)
strokeWeight(this.strokeWeight)
rect(this.x, this.y, this.width, this.height)
}
doNot.onPressEnd = function(){
if(theDude){
if(!coverOff) panelLog.push("> lever cover removed")
coverOff = true
schleeboSay("don't do that",0,3)
pleaseNo.active = true
}else{
panelLog.push("> schleebo is required")
}
}
let pleaseNo = new Slider("box",false,120,450)
pleaseNo.hidden = true
pleaseNo.active = false
pleaseNo.Slength = 200
pleaseNo.height = 40
let time = 0
function draw() {
updateDelayedExecution()
colorMode(HSL)
let col = color((time * 30)%350,70,50)
if(homophobic) col = color(0,100,100)
if(emo) col = color(0,0,0)
if(itGotReal) col = color(20)
background(col);
time+=round(deltaTime/1000,3)
if(seizure) emo = (round(time*10)%2==1)
textAlign(CENTER,CENTER)
textSize(60)
fill(0)
if(emo || itGotReal) fill(0,100,100)
noStroke()
if(!itGotReal){
text("please hold",300,150)
textSize(40)
text("my brain has stopped working",300,250)
}
textSize(20)
text(stringk+(round(time)%2==1?"_":" "),300,300 - (itGotReal?100:0))
// TODO: make background and 7vector
if(itGotReal){
}
if(explode){
fill(0)
stroke(0,80,40)
strokeWeight(6)
rect(250,30,100,40)
noStroke()
fill(0,100,100)
textSize(20)
let timer = "" + round(timeToDie - bombTimer.value,2)
textAlign(LEFT,CENTER)
text(timer,275,50)
if(bombTimer.value > timeToDie) remove()
}
if(admin && !itGotReal){
colorMode(RGB)
fill(80)
stroke(20)
strokeWeight(4)
rect(0,400,600,100)
fill(80)
stroke(20)
strokeWeight(4)
rect(100,420,240,60)
pleaseNo.draw()
noStroke()
fill(100,150,255,100)
if(!coverOff) rect(100,420,240,60)
noStroke()
fill(0,10,0)
rect(378,418,184,64)
if(pleaseNo.value == 200 && !itGetsReal){
itGetsReal = true
yeetTimer.paused = false
schleeboSay("WHAT HAVE YOU DONE",0,5)
schleeboSay("uhhhh...",8,3)
panelLog.push("> entrance sequence engaged")
executeDelayed(function(){
panelLog.push("> activating...")
},1)
executeDelayed(function(){
talk2 = true
},12)
executeDelayed(function(){
itGotReal = true
resizeCanvas(600,400)
admin = false
doNot.active = false
pleaseNo.active = false
},3)
}
fill(0,200,20)
textSize(12)
textAlign(LEFT,TOP)
let txt = ""
for(let i = panelLog.length-1; i >= 0 && i >= panelLog.length-4; i--){
txt += panelLog[i] + "\n"
}
text(txt,380,420,200,60)
}
if(yeetTimer.value <= 3){
sx = Clerp(40,650,(1-cos((PI/2)*yeetTimer.value/3))*(1-cos((PI/2)*yeetTimer.value/3)))
sr = Clerp(0,20*PI,(1-cos((PI/2)*yeetTimer.value/3)))
}else if(yeetTimer.value <= 6){
sy = 200
sx = Clerp(40,-40,(1-sin((PI/2)*(yeetTimer.value-3)/3)))
sr = Clerp(20*PI, 0,(1-sin((PI/2)*(yeetTimer.value-3)/3)))
}
if(theDude){
push()
translate(sx, sy)
rotate(sr)
colorMode(RGB)
fill(0)
noStroke()
circle(0,0,50)
rect(10,0,10,70)
rect(20,60,10,10)
rect(-20,0,10,70)
rect(-10,60,10,10)
noFill()
stroke(255)
strokeWeight(4)
point(23-40,-5)
point(57-40,-5)
strokeWeight(2)
arc(0,0,20,20, PI/8, PI - PI/8)
if(talking > 0){
noFill()
stroke(0)
strokeWeight(4)
rect(40,-30,150,60)
triangle(35,0,40,-5,40,5)
noStroke()
fill(255)
rect(40,-30,150,60)
fill(0)
textAlign(CENTER,CENTER)
textSize(12)
text(saying, 40,-30,150,60)
}
pop()
}
if(talk2){
colorMode(RGB)
fill(2,0,10)
stroke(50,0,150)
strokeWeight(2)
rect(40,280,520,100)
rect(60,300,60,60)
textSize(20)
textAlign(LEFT,CENTER)
noStroke()
fill(100,0,200)
text("7vector",130,300)
textAlign(LEFT,TOP)
textSize(14)
text(words2,130,310,400,60)
// face
}
updateTimers()
}