Advertisement
Alexr360

Artillary Controller

Apr 10th, 2024 (edited)
663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Print a line of dashes for aesthetics
  2. local function lineBreak()
  3.     local width, height = term.getSize()
  4.     for i = 1, width do
  5.       io.write("-")
  6.     end
  7.     io.write("\n")
  8. end
  9. -- Function to clear the screen
  10. local function clearScreen()
  11.     term.clear()
  12.     term.setCursorPos(1, 1)
  13. end
  14.  
  15. clearScreen()
  16. -- Print the welcome message
  17. print("Artillary Controller")
  18. lineBreak()
  19. print("Select a weapon!")
  20. print("1. TNT")
  21. print("2. Napalm")
  22. print("3. Nuke")
  23. lineBreak()
  24.  
  25. local choice = read()
  26.  
  27. if choice == "1" then
  28.   projectileType = "TNT"
  29. elseif choice == "2" then
  30.   projectileType = "Napalm"
  31. elseif choice == "3" then
  32.   projectileType = "Nuke"
  33. end
  34.  
  35. clearScreen()
  36. print("Artillary Controller")
  37. lineBreak()
  38. print("Weapon:"..projectileType)
  39. lineBreak()
  40. print("Select a targeting method")
  41. print("1. Current Position")
  42. print("2. Custom Position")
  43. lineBreak()
  44.  
  45. local choice = read()
  46.  
  47. if choice == "1" then
  48.   targetX, targetY, targetZ = gps.locate()
  49. elseif choice == "2" then
  50.     print("X: ")
  51.     targetX = read()
  52.     print("Y: ")
  53.     targetY = read()
  54.     print("Z: ")
  55.     targetZ = read()
  56. end
  57.  
  58. clearScreen()
  59. print("Artillary Controller")
  60. lineBreak()
  61. print("Weapon:"..projectileType)
  62. print("X:"..targetX)
  63. print("Y:"..targetY)
  64. print("Z:"..targetZ)
  65. lineBreak()
  66. print("Please Confirm")
  67. print("1. Confirm Input")
  68. print("2. Cancel")
  69. lineBreak()
  70.  
  71.  
  72. local choice = read()
  73.  
  74. if choice == "1" then
  75.     print("Confrimed Fiering!")
  76.    
  77.     local modem = peripheral.find("modem") or error("No modem attached", 0)
  78.     modem.open(43) -- Open 43 so we can receive replies
  79.  
  80.     modem.transmit(15, 43, projectileType)
  81.     os.sleep(1)
  82.     modem.transmit(15, 43, targetX)
  83.     os.sleep(1)
  84.     modem.transmit(15, 43, targetY)
  85.     os.sleep(1)
  86.     modem.transmit(15, 43, targetZ)
  87.  
  88.     local event, side, channel, replyChannel, message, distance
  89.     repeat
  90.       event, side, channel, replyChannel, message, distance = os.pullEvent("modem_message")
  91.     until channel == 43
  92.  
  93.     clearScreen()
  94.  
  95.     print(tostring(message))
  96. elseif choice == "2" then
  97.   print("Cancelled")
  98. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement