data.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. -- COMES AFTER UI.LUA
  2. Stones = 30.0 -- Current Stone Stock
  3. StonesSec = 0
  4. crafter = {}
  5. for i=0, 50 do
  6. local dig = {}
  7. dig.title = "D"
  8. dig.own = false -- is it bought ?
  9. dig.active = false -- is it active yet ?
  10. dig.readyTime = 10 -- time until active in Sec
  11. dig.ready = 0 -- current time until readyTime
  12. dig.speed = 0.3 -- Speed in Sec
  13. dig.amount = 0.1 -- Amount by Sec
  14. dig.cost = 10
  15. local xg = (i%20)*50
  16. local yg = 50 + math.floor(i/20)*50
  17. dig.ui = {color = colorBlue, x = xg, y = yg, w = 50, h = 50}
  18. dig.uiready = {color = colorOrange, x = xg, y = yg+50, w = 50, h = 0}
  19. table.insert(crafter, dig)
  20. end
  21. function updateCraft(sec)
  22. for i=1, #crafter do
  23. local crft = crafter[i]
  24. if not crft.active and crft.own then
  25. if crft.ready >= crft.readyTime then
  26. crft.active = true
  27. recalcStonesSec()
  28. end
  29. crft.ready = crft.ready + sec
  30. end
  31. end
  32. end
  33. function recalcStonesSec()
  34. local stsec = 0
  35. for i=1, #crafter do
  36. local crft = crafter[i]
  37. if crft.active then
  38. stsec = stsec + crft.amount * crft.speed
  39. end
  40. end
  41. StonesSec = stsec
  42. end
  43. function upgradeCrafter(crft)
  44. -- BUY CRAFTER
  45. if not crft.own then
  46. if pay(crft.cost) then
  47. crft.own = true
  48. end
  49. -- UPGRADE CRAFTER
  50. elseif crft.active and pay(crft.cost) then
  51. crft.amount = crft.amount + 0.05
  52. crft.cost = math.floor(crft.cost * 1.5)
  53. end
  54. end
  55. function pay(cost)
  56. if Stones >= cost then
  57. Stones = Stones - cost
  58. return true
  59. else
  60. return false
  61. end
  62. end