big steppy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

136 lines
2.6 KiB

  1. var baseHeight = 3.65;
  2. var baseMass = 1360;
  3. var scale = 1;
  4. var victims =
  5. {
  6. "Person": 0,
  7. "Car": 0,
  8. "Bus": 0,
  9. "Motorcycle": 0,
  10. "House": 0,
  11. "Train": 0,
  12. "Parking Garage": 0,
  13. "Overpass": 0
  14. }
  15. function getPrey(region, area)
  16. {
  17. switch(region)
  18. {
  19. case "suburb": return suburbPrey(area);
  20. }
  21. }
  22. function suburbPrey(area)
  23. {
  24. return fill_area(area, {"Person": 0.5, "House": 0.5, "Car": 0.2});
  25. }
  26. function updateVictims(prey)
  27. {
  28. var sums = prey.sum();
  29. for (var key in sums) {
  30. if (sums.hasOwnProperty(key)) {
  31. victims[key] += sums[key];
  32. }
  33. }
  34. }
  35. function scaleAddMass(scale, baseMass, mass)
  36. {
  37. var startMass = Math.pow(scale, 3) * baseMass;
  38. var newMass = startMass + mass;
  39. return Math.pow(newMass / baseMass, 1/3) ;
  40. }
  41. function feed()
  42. {
  43. var log = document.getElementById("log");
  44. var line = document.createElement('div');
  45. var prey = getPrey("suburb", 2*scale*scale);
  46. updateVictims(prey);
  47. line.innerHTML = prey.eat();
  48. log.appendChild(line);
  49. var preyMass = prey.sum_property("mass") * 3;
  50. scale = scaleAddMass(scale, baseMass, preyMass);
  51. update();
  52. setTimeout(feed, 2000);
  53. }
  54. function stomp()
  55. {
  56. var log = document.getElementById("log");
  57. var line = document.createElement('div');
  58. var prey = getPrey("suburb", 2*scale*scale);
  59. updateVictims(prey);
  60. line.innerHTML = prey.stomp();
  61. log.appendChild(line);
  62. var preyMass = prey.sum_property("mass");
  63. scale = scaleAddMass(scale, baseMass, preyMass);
  64. update();
  65. setTimeout(stomp, 1250);
  66. }
  67. function anal_vore()
  68. {
  69. var log = document.getElementById("log");
  70. var line = document.createElement('div');
  71. var prey = getPrey("suburb", 4*scale*scale);
  72. if (prey.name == "Person" && prey.count == 1 && scale*scale > 4)
  73. prey = new Car(1);
  74. updateVictims(prey);
  75. line.innerHTML = prey.anal_vore();
  76. log.appendChild(line);
  77. var preyMass = prey.sum_property("mass") * 5;
  78. scale = scaleAddMass(scale, baseMass, preyMass);
  79. update();
  80. setTimeout(anal_vore, 4500);
  81. }
  82. function update()
  83. {
  84. var log = document.getElementById("log");
  85. log.scrollTop = log.scrollHeight;
  86. var height = baseHeight * scale;
  87. var mass = baseMass * Math.pow(scale, 3);
  88. document.getElementById("height").innerHTML = "Height: " + Math.round(height * 3) + " feet";
  89. document.getElementById("mass").innerHTML = "Mass: " + Math.round(mass * 2.2) + " pounds";
  90. for (var key in victims){
  91. if (victims.hasOwnProperty(key)) {
  92. if (victims[key] > 0)
  93. document.getElementById(key).innerHTML = key + ": " + victims[key];
  94. }
  95. }
  96. }
  97. window.addEventListener('load', function(event) {
  98. setTimeout(feed, 2000);
  99. setTimeout(stomp, 1250);
  100. setTimeout(anal_vore, 4500);
  101. update();
  102. });