Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo
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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. ;; lobo: Logo Bolo
  2. ;; (c) Ben Kurtovic, 2011
  3. breed [tanks tank]
  4. tanks-own [
  5. acceleration
  6. ammunition
  7. armor
  8. friction
  9. is-accelerating?
  10. is-player?
  11. max-speed
  12. max-turn
  13. speed
  14. team
  15. ]
  16. to spawn-tank [tank-team]
  17. create-tanks 1 [
  18. set-tank-vars tank-team false
  19. ]
  20. end
  21. to set-tank-vars [tank-team player-tank?]
  22. set acceleration 0.03
  23. set ammunition 20
  24. set armor 8
  25. set friction 0.0075
  26. set is-accelerating? false
  27. set is-player? player-tank?
  28. set max-speed 0.25
  29. set max-turn 24
  30. set speed 0
  31. set team tank-team
  32. set color get-tank-color
  33. set heading 0
  34. set shape "tank"
  35. set size 1.5
  36. end
  37. to do-tank-logic
  38. if is-accelerating? [
  39. accelerate acceleration
  40. ]
  41. fd speed
  42. decelerate friction
  43. end
  44. to accelerate [amount]
  45. set speed speed + amount
  46. if speed > max-speed [
  47. set speed max-speed
  48. ]
  49. end
  50. to decelerate [amount]
  51. set speed speed - amount
  52. if speed < 0 [
  53. set speed 0
  54. ]
  55. end
  56. to fire
  57. if ammunition > 0 [
  58. set ammunition ammunition - 1
  59. hatch-bullets 1 [
  60. set max-travel-distance 8
  61. set shooter [who] of myself
  62. set speed 1
  63. set travel-distance 0
  64. set color white
  65. set shape "bullet"
  66. set size 0.5
  67. ]
  68. ]
  69. end
  70. to shot-at [bullet]
  71. debug "SHOT" (word ([shooter] of myself) " -> " who)
  72. set armor armor - 1
  73. if armor = 0 [
  74. die
  75. ]
  76. end
  77. to-report get-tank-color
  78. if is-player? [ report black ]
  79. if team = 0 [ report green ]
  80. report red
  81. end