jacob614

VIRS (very ancient and laggy)

Sep 1st, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.96 KB | None | 0 0
  1. tpt.el.eqve.name = "VIRS"
  2. tpt.el.eqve.color = 0xFE11F6
  3. tpt.el.eqve.advection = .6
  4. tpt.el.eqve.airdrag = .01
  5. tpt.el.eqve.airloss = .98
  6. tpt.el.eqve.loss = .95
  7. tpt.el.eqve.collision = 0
  8. tpt.el.eqve.gravity = .1
  9. tpt.el.eqve.diffusion = 0
  10. tpt.el.eqve.hotair = 0
  11. tpt.el.eqve.falldown = 2
  12. tpt.el.eqve.flammable = 100
  13. tpt.el.eqve.explosive = 0
  14. tpt.el.eqve.meltable = 0
  15. tpt.el.eqve.hardness = 20
  16. tpt.el.eqve.menu = 1
  17. tpt.el.eqve.enabled = 1
  18. tpt.el.eqve.weight = 31
  19. tpt.el.eqve.menusection = 5
  20. tpt.el.eqve.heat = 345.15
  21. tpt.el.eqve.hconduct = 251
  22. tpt.el.eqve.state = 2
  23. tpt.el.eqve.properties = 0x0002
  24. tpt.el.eqve.description = "Virus. Turns everything it touches into virus"
  25.  
  26. tpt.el.bran.name = "CURE"
  27. tpt.el.bran.color = 0x8BE700
  28. tpt.el.bran.advection = .6
  29. tpt.el.bran.airdrag = .01
  30. tpt.el.bran.airloss = .98
  31. tpt.el.bran.loss = .95
  32. tpt.el.bran.collision = 0
  33. tpt.el.bran.gravity = .1
  34. tpt.el.bran.diffusion = 0
  35. tpt.el.bran.hotair = 0
  36. tpt.el.bran.falldown = 2
  37. tpt.el.bran.flammable = 500
  38. tpt.el.bran.explosive = 0
  39. tpt.el.bran.meltable = 0
  40. tpt.el.bran.hardness = 20
  41. tpt.el.bran.menu = 1
  42. tpt.el.bran.enabled = 1
  43. tpt.el.bran.weight = 32
  44. tpt.el.bran.menusection = 5
  45. tpt.el.bran.heat = 295.15
  46. tpt.el.bran.hconduct = 251
  47. tpt.el.bran.state = 2
  48. tpt.el.bran.properties = 0x0002
  49. tpt.el.bran.description = "Cure. Turns virus back into what it was before"
  50. --[[
  51. tpt.el.wind.name = "RAZR"
  52. tpt.el.wind.color = 0xC0C0C0
  53. tpt.el.wind.advection = .7
  54. tpt.el.wind.airdrag = .07
  55. tpt.el.wind.airloss = .97
  56. tpt.el.wind.loss = 0
  57. tpt.el.wind.collision = 0
  58. tpt.el.wind.gravity = 1.5
  59. tpt.el.wind.diffusion = 0
  60. tpt.el.wind.hotair = 0
  61. tpt.el.wind.falldown = 1
  62. tpt.el.wind.flammable = 0
  63. tpt.el.wind.explosive = 0
  64. tpt.el.wind.meltable = 0
  65. tpt.el.wind.hardness = 0
  66. tpt.el.wind.menu = 1
  67. tpt.el.wind.enabled = 1
  68. tpt.el.wind.weight = 500
  69. tpt.el.wind.menusection = 6
  70. tpt.el.wind.heat = 295.15
  71. tpt.el.wind.hconduct = 164
  72. tpt.el.wind.state = 1
  73. tpt.el.wind.properties = 0x0001
  74. tpt.el.wind.description = "Heavy silver particles. Currently doesn't work right"
  75. ]]
  76. function virus(i,x,y,surround_space,nt)
  77.    --if math.random(1,5) ~= 1 then return 0 end -- reduce lag a little
  78.    local r, rx, ry;
  79.  
  80.    if tpt.get_property("tmp",i) == 0 then
  81.       tpt.set_property("tmp",6400,i);
  82.    end
  83.    if tpt.get_property("tmp",i)%256 ~= 0 then
  84.       if math.random(0,1) < 1 then
  85.          tpt.set_property("tmp",tpt.get_property("tmp",i) - 1
  86. ,i);
  87.       end
  88.       if tpt.get_property("tmp",i)%256 == 0 then
  89.          tpt.set_property("type",tpt.get_property("tmp2",i),i);
  90.  
  91.          tpt.set_property("tmp2",0,i);
  92.          tpt.set_property("tmp",0,i);
  93.          return 0
  94.       end
  95.    end
  96.    if tpt.get_property("tmp",i) - tpt.get_property("tmp",i)%256 > 0 then
  97.       if math.random(0,19) < 1 then
  98.          tpt.set_property("tmp",tpt.get_property("tmp",i) - 256,i);
  99.       end
  100.    else
  101.  
  102.       tpt.delete(i)
  103.       return 1
  104.    end
  105.    for rx = -2, 2 do
  106.       for ry = -2, 2 do
  107.          if x+rx>=0 and y+ry>0 and x+rx<612 and y+ry<384 and (rx ~= 0 or ry ~= 0) and tpt.get_property("type",x+rx,y+ry) ~= 0 then
  108.             r = tpt.get_property("type",x+rx,y+ry)
  109.             local r2 = tpt.get_property("id",x+rx,y+ry)
  110.             if r == tpt.el.eqve.id and tpt.get_property("tmp",r2)%256 ~= 0 and tpt.get_property("tmp",i)%256 == 0 then -- virus state
  111.                local newtmp = tpt.get_property("tmp",r2)%256 + 1;
  112.  
  113.                if math.random(0,5) < 1 then
  114.                   newtmp = newtmp + 1
  115.                end
  116.                if newtmp > 255 then
  117.                   newtmp = 255;
  118.  
  119.                end
  120.                tpt.set_property("tmp", tpt.get_property("tmp",i) - tpt.get_property("tmp",i)%256 + newtmp, i);
  121.  
  122.             elseif (tpt.get_property("tmp",i)%256 == 0 or tpt.get_property("tmp",i)%256 > 10) and r == tpt.el.bran.id then
  123.                tpt.set_property("tmp", (tpt.get_property("tmp",i) - tpt.get_property("tmp",i)%256) + 10, i);
  124.  
  125.             elseif tpt.get_property("tmp",i)%256 == 0 and r ~= tpt.el.eqve.id then -- virus state
  126.                if math.random(0,49) < 1 then
  127.                   local newtmp = tpt.get_property("tmp",i)
  128.                   if math.random(0,2) < 1 then newtmp = newtmp + 256 end
  129.                   if newtmp >= 65536 then
  130.                      newtmp = 65280;
  131.  
  132.                   end
  133.                   tpt.set_property("tmp2",r,r2);
  134.                   tpt.set_property("tmp",newtmp,r2);
  135.                   tpt.set_property("type",116,r2); -- virus state
  136.                end
  137.             end
  138.          end
  139.       end
  140.    end
  141.    return 0;
  142. end
  143. --[[
  144. function test(i,x,y,surround_space,nt)
  145.    for scany = -20,20 do
  146.       maxscanx=math.sqrt(400-(scany^2))
  147.       for scanx = -maxscanx,maxscanx do
  148.          if tpt.get_property("type",x+scanx,y+scany) ~= 0 then
  149.             tpt.set_property("temp",tpt.get_property("temp",x+scanx,y+scany)+50,x+scanx,y+scany)
  150.          end
  151.       end
  152.    end
  153. end]]
  154.  
  155. tpt.element_func(virus,tpt.el.eqve.id,1,virus)
  156. --tpt.element_func(test,tpt.el.wind.id,1)
Advertisement
Add Comment
Please, Sign In to add comment