Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local term = require("term")
- local event = require("event")
- local text = require("text")
- local comp = require("component")
- local red = comp.redstone
- local gpu = comp.gpu
- local sides = require("sides")
- local colors = require("colors")
- local resX, resY = gpu.getResolution()
- local function init()
- term.clear()
- --gpu.setResolution(7,8)
- end
- local function spawnMob(loc)
- red.setBundledOutput(sides.bottom, {[colors.silver+loc-1] = 255}) --silver==lightgray
- os.sleep(0.5)
- red.setBundledOutput(sides.bottom, {[colors.silver+loc-1] = 0})
- os.sleep(0.5)
- end
- local function spawn(x)
- term.clear()
- print("Wave:\n"..x)
- for i=1,3+x do
- p = math.random(4)
- spawnMob(p)
- end
- end
- local function checkMobs()
- os.sleep(1)
- red.setBundledOutput(sides.bottom, {[colors.orange] = 255})
- os.sleep(1)
- red.setBundledOutput(sides.bottom, {[colors.orange] = 0})
- return red.getBundledInput(sides.bottom, colors.magenta) == 0
- end
- local function checkPlayers()
- os.sleep(1)
- red.setBundledOutput(sides.bottom, {[colors.lightblue] = 255})
- os.sleep(1)
- red.setBundledOutput(sides.bottom, {[colors.lightblue] = 0})
- return red.getBundledInput(sides.bottom, colors.yellow) == 0
- end
- local function wave(x)
- term.clear()
- print("Next\nWave\n"..x)
- if x>1 then
- print("-------")
- print("End")
- end
- _, _, xc, yc = event.pullMultiple("touch")
- if yc<5 or x==1 then
- red.setBundledOutput(sides.bottom, {[colors.gray] = 255})
- spawn(x)
- repeat until checkMobs() or checkPlayers()
- return checkMobs() and not checkPlayers()
- else
- return false
- end
- end
- local function rewards(wave)
- while not checkPlayers() do
- term.clear()
- print("Click\nto\nget\nrewards")
- event.pullMultiple("touch")
- red.setBundledOutput(sides.bottom, {[colors.lime] = 5+math.floor(wave/5)})
- term.clear()
- os.sleep(1)
- red.setBundledOutput(sides.bottom, {[colors.lime] = 0})
- end
- end
- local function reset()
- for i=0,3 do
- red.setBundledOutput(sides.bottom, {[colors.pink] = 255})
- os.sleep(1)
- red.setBundledOutput(sides.bottom, {[colors.pink] = 0})
- os.sleep(1)
- end
- red.setBundledOutput(sides.bottom, {[colors.gray] = 0})
- end
- local function arena()
- init()
- i = 0
- flag = true
- while flag do
- i = i+1
- flag = wave(i)
- end
- rewards(i)
- reset()
- end
- while true do
- arena()
- end
- gpu.setResolution(resX, resY)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement