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.

690 lines
18 KiB

  1. ;; lobo: Logo Bolo
  2. ;; (c) Ben Kurtovic, 2011-2012
  3. ;;
  4. ;; Logo Bolo is a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo.
  5. ;;
  6. __includes [
  7. "base.nls"
  8. "bullet.nls"
  9. "explosion.nls"
  10. "pillbox.nls"
  11. "player.nls"
  12. "tank.nls"
  13. ]
  14. extensions [
  15. sound
  16. table
  17. ]
  18. globals [
  19. last-sound-time
  20. last-tick-time
  21. max-fps
  22. mouse-was-down?
  23. sound-stopped?
  24. sounds
  25. ]
  26. ;; ===========================
  27. ;; Button-initiated procedures
  28. ;; ===========================
  29. to setup
  30. clear-all
  31. no-display
  32. setup-defaults
  33. make-sounds-table
  34. make-explosions-table
  35. load-map
  36. spawn-player 0 0 0
  37. spawn-tank 0 -6 0 90
  38. spawn-tank 1 6 0 270
  39. spawn-base 0 -7
  40. spawn-pillbox 6 6
  41. show-hud
  42. render
  43. end
  44. to go
  45. do-player-logic
  46. ask tanks [
  47. do-tank-logic
  48. ]
  49. ask pillboxes [
  50. do-pill-logic
  51. ]
  52. ask bases [
  53. do-base-logic
  54. ]
  55. ask bullets [
  56. do-bullet-logic
  57. ]
  58. ask explosions [
  59. keep-exploding
  60. ]
  61. show-crosshairs
  62. show-hud
  63. stop-old-sounds
  64. render
  65. keep-time
  66. end
  67. ;; ================
  68. ;; Other procedures
  69. ;; ================
  70. to debug [agent action msg]
  71. ; Comment this and remove the output box
  72. ; to turn off debugging info:
  73. print (word (round timer) ": " agent ": " action " (" msg ")")
  74. end
  75. to setup-defaults
  76. set-patch-size 20
  77. resize-world -17 17 -12 12
  78. set last-sound-time timer
  79. set last-tick-time timer
  80. set max-fps 30
  81. set mouse-was-down? false
  82. set sound-stopped? true
  83. set player-death-time timer
  84. set player-deaths 0
  85. set player-has-target? false
  86. set player-kills 0
  87. set player-target-xcor 0
  88. set player-target-ycor 0
  89. end
  90. to make-sounds-table
  91. set sounds table:make
  92. table:put sounds "fire" "Hand Clap"
  93. table:put sounds "kill" "Electric Snare"
  94. table:put sounds "noammo" "Cowbell"
  95. table:put sounds "pickup" "Hi Bongo"
  96. table:put sounds "shot" "Acoustic Snare"
  97. table:put sounds "place" "Vibraslap"
  98. table:put sounds "nopill" "Cowbell"
  99. end
  100. to load-map
  101. ask patches [
  102. set pcolor (random 3) - 5 + green
  103. ]
  104. end
  105. to show-crosshairs
  106. clear-drawing
  107. if mouse-inside? [
  108. ask patch mouse-xcor mouse-ycor [
  109. draw-border white 1
  110. ]
  111. ]
  112. if player-has-target? [
  113. ask patch player-target-xcor player-target-ycor [
  114. draw-border white 2
  115. ]
  116. ]
  117. end
  118. to draw-border [b-color b-thickness]
  119. sprout 1 [
  120. set color b-color
  121. set pen-size b-thickness
  122. set heading 0
  123. fd 0.5
  124. pd
  125. rt 90
  126. fd 0.5
  127. repeat 3 [
  128. rt 90
  129. fd 1
  130. ]
  131. rt 90
  132. fd 0.5
  133. die
  134. ]
  135. end
  136. to show-hud
  137. let player-armor 0
  138. let player-ammo 0
  139. let num-pills 0
  140. if player != nobody [
  141. set player-armor [armor] of player
  142. set player-ammo [ammunition] of player
  143. set num-pills [number-of-pills] of player
  144. ]
  145. ask patch (max-pxcor - 1) (max-pycor - 1) [
  146. set plabel (word "Armor: " player-armor)
  147. ]
  148. ask patch (max-pxcor - 1) (max-pycor - 2) [
  149. set plabel (word "Ammo: " player-ammo)
  150. ]
  151. ask patch (max-pxcor - 1) (max-pycor - 3) [
  152. set plabel (word "Pillboxes: " num-pills)
  153. ]
  154. ask patch (max-pxcor - 1) (min-pycor + 2) [
  155. set plabel (word "Deaths: " player-deaths)
  156. ]
  157. ask patch (max-pxcor - 1) (min-pycor + 1) [
  158. set plabel (word "Kills: " player-kills)
  159. ]
  160. end
  161. to render
  162. display
  163. no-display
  164. end
  165. to keep-time
  166. let time-since-last-tick timer - last-tick-time
  167. let wait-time (1 / max-fps) - time-since-last-tick
  168. wait wait-time
  169. tick
  170. set last-tick-time timer
  171. end
  172. to stop-old-sounds
  173. ; NetLogo sometimes plays sounds for longer than we want
  174. ; i.e., it doesn't know how to properly stop long sounds:
  175. let time-since-last-sound timer - last-sound-time
  176. if time-since-last-sound > 2 and not sound-stopped? [
  177. debug -1 "SOUND-STOP" (word round time-since-last-sound " seconds since last")
  178. sound:stop-music
  179. set sound-stopped? true
  180. ]
  181. end
  182. to play-sound [name]
  183. if enable-sound? [
  184. let dist 0
  185. if player != nobody [
  186. set dist distancexy ([xcor] of player) ([ycor] of player)
  187. ]
  188. let volume 100 - (dist * 4)
  189. if volume > 0 [
  190. sound:play-drum (table:get sounds name) volume
  191. set last-sound-time timer
  192. set sound-stopped? false
  193. ]
  194. ]
  195. end
  196. @#$#@#$#@
  197. GRAPHICS-WINDOW
  198. 254
  199. 10
  200. 964
  201. 541
  202. 17
  203. 12
  204. 20.0
  205. 1
  206. 14
  207. 1
  208. 1
  209. 1
  210. 0
  211. 0
  212. 0
  213. 1
  214. -17
  215. 17
  216. -12
  217. 12
  218. 0
  219. 0
  220. 1
  221. frames
  222. BUTTON
  223. 19
  224. 179
  225. 114
  226. 212
  227. New Game
  228. setup
  229. NIL
  230. 1
  231. T
  232. OBSERVER
  233. NIL
  234. R
  235. NIL
  236. NIL
  237. BUTTON
  238. 129
  239. 179
  240. 223
  241. 212
  242. Play Game
  243. go
  244. T
  245. 1
  246. T
  247. OBSERVER
  248. NIL
  249. G
  250. NIL
  251. NIL
  252. BUTTON
  253. 21
  254. 244
  255. 224
  256. 291
  257. Fire!
  258. player-fire
  259. NIL
  260. 1
  261. T
  262. OBSERVER
  263. NIL
  264. F
  265. NIL
  266. NIL
  267. SWITCH
  268. 50
  269. 97
  270. 186
  271. 130
  272. enable-sound?
  273. enable-sound?
  274. 0
  275. 1
  276. -1000
  277. BUTTON
  278. 22
  279. 344
  280. 225
  281. 377
  282. Cancel Order
  283. player-cancel-order
  284. NIL
  285. 1
  286. T
  287. OBSERVER
  288. NIL
  289. C
  290. NIL
  291. NIL
  292. TEXTBOX
  293. 16
  294. 14
  295. 303
  296. 53
  297. LoBo: Logo Bolo
  298. 28
  299. 0.0
  300. 1
  301. TEXTBOX
  302. 41
  303. 53
  304. 304
  305. 87
  306. a game by Ben Kurtovic
  307. 14
  308. 0.0
  309. 1
  310. TEXTBOX
  311. 19
  312. 75
  313. 241
  314. 93
  315. ---------------------------------
  316. 11
  317. 0.0
  318. 1
  319. TEXTBOX
  320. 21
  321. 221
  322. 262
  323. 249
  324. ---------------------------------
  325. 11
  326. 0.0
  327. 1
  328. BUTTON
  329. 22
  330. 301
  331. 225
  332. 334
  333. Place Pill
  334. player-place-pill
  335. NIL
  336. 1
  337. T
  338. OBSERVER
  339. NIL
  340. P
  341. NIL
  342. NIL
  343. SLIDER
  344. 25
  345. 136
  346. 117
  347. 169
  348. allies
  349. allies
  350. 0
  351. 6
  352. 1
  353. 1
  354. 1
  355. NIL
  356. HORIZONTAL
  357. SLIDER
  358. 125
  359. 136
  360. 217
  361. 169
  362. enemies
  363. enemies
  364. 0
  365. 6
  366. 2
  367. 1
  368. 1
  369. NIL
  370. HORIZONTAL
  371. @#$#@#$#@
  372. @#$#@#$#@
  373. default
  374. true
  375. 0
  376. Polygon -7500403 true true 150 5 40 250 150 205 260 250
  377. base
  378. false
  379. 0
  380. Rectangle -1184463 true false 60 240 120 255
  381. Rectangle -1184463 true false 120 225 180 240
  382. Rectangle -1184463 true false 180 240 240 255
  383. Polygon -1184463 true false 45 240 30 240 30 270 60 270 60 255 45 255
  384. Polygon -7500403 true true 195 210 195 225 225 225 225 195 210 195 210 210
  385. Polygon -1184463 true false 60 45 60 30 30 30 30 60 45 60 45 45
  386. Polygon -1184463 true false 240 255 240 270 270 270 270 240 255 240 255 255
  387. Rectangle -1184463 true false 45 60 60 120
  388. Rectangle -1184463 true false 180 45 240 60
  389. Rectangle -1184463 true false 240 180 255 240
  390. Rectangle -1184463 true false 60 120 75 180
  391. Rectangle -1184463 true false 120 60 180 75
  392. Rectangle -1184463 true false 225 120 240 180
  393. Rectangle -1184463 true false 45 180 60 240
  394. Rectangle -1184463 true false 60 45 120 60
  395. Rectangle -1184463 true false 240 60 255 120
  396. Rectangle -1184463 true false 135 135 165 165
  397. Rectangle -1184463 true false 165 120 180 135
  398. Rectangle -1184463 true false 120 120 135 135
  399. Rectangle -1184463 true false 120 165 135 180
  400. Rectangle -1184463 true false 165 165 180 180
  401. Rectangle -7500403 true true 195 105 210 195
  402. Polygon -1184463 true false 255 60 270 60 270 30 240 30 240 45 255 45
  403. Rectangle -7500403 true true 105 90 195 105
  404. Rectangle -7500403 true true 90 105 105 195
  405. Rectangle -7500403 true true 105 195 195 210
  406. Polygon -7500403 true true 210 105 225 105 225 75 195 75 195 90 210 90
  407. Polygon -7500403 true true 105 90 105 75 75 75 75 105 90 105 90 90
  408. Polygon -7500403 true true 90 195 75 195 75 225 105 225 105 210 90 210
  409. bullet
  410. true
  411. 5
  412. Rectangle -16777216 true false 135 30 165 90
  413. Rectangle -1 true false 135 90 165 150
  414. Rectangle -1 true false 135 150 165 210
  415. Polygon -16777216 true false 135 30 150 0 165 30 135 30
  416. Rectangle -2674135 true false 135 210 165 270
  417. Rectangle -16777216 true false 120 270 180 300
  418. Polygon -7500403 true false 195 210 165 150 165 210 195 210
  419. Rectangle -7500403 true false 165 210 195 268
  420. Rectangle -7500403 true false 105 210 135 268
  421. Polygon -7500403 true false 105 210 135 150 135 210 105 210
  422. explosion-large
  423. false
  424. 0
  425. Circle -6459832 true false 2 2 297
  426. Circle -2674135 true false 30 30 240
  427. Circle -955883 true false 60 60 180
  428. Circle -1184463 true false 90 90 120
  429. explosion-med
  430. false
  431. 0
  432. Circle -2674135 true false 0 0 300
  433. Circle -955883 true false 45 45 210
  434. Circle -1184463 true false 90 90 120
  435. explosion-small
  436. false
  437. 0
  438. Circle -2674135 true false 2 2 295
  439. Circle -955883 true false 75 75 148
  440. pillbox-alive-1
  441. false
  442. 1
  443. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  444. Rectangle -2674135 true true 225 135 300 165
  445. Rectangle -2674135 true true 135 0 165 75
  446. Rectangle -2674135 true true 0 135 75 165
  447. Rectangle -2674135 true true 135 225 165 300
  448. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  449. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  450. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  451. Circle -7500403 true false 47 42 210
  452. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  453. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  454. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  455. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  456. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  457. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  458. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  459. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  460. Polygon -16777216 true false 152 224 182 234 212 216 230 196 211 202 191 218 187 206 160 223
  461. Polygon -16777216 true false 86 78 118 58 154 60 169 52 146 71 126 68 97 87 71 93 86 78
  462. Polygon -16777216 true false 218 107 248 139 245 184 230 192 224 154 225 126 214 109
  463. Polygon -16777216 true false 75 90 120 60 195 60 227 123 232 177 202 178 198 105 156 74 84 99 57 133 73 83
  464. Polygon -16777216 true false 77 147 124 213 176 210 222 179 167 171 137 191 105 141 67 117
  465. Polygon -16777216 true false 76 196 135 244 191 237 226 206 174 209 110 220 82 179 74 198
  466. Polygon -16777216 true false 101 67 154 52 175 134 135 94 92 95
  467. Polygon -16777216 true false 79 168 170 162 172 139 135 151 72 153
  468. Polygon -16777216 true false 207 80 249 119 166 172 160 128 208 83
  469. pillbox-alive-2
  470. false
  471. 1
  472. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  473. Rectangle -2674135 true true 225 135 300 165
  474. Rectangle -2674135 true true 135 0 165 75
  475. Rectangle -2674135 true true 0 135 75 165
  476. Rectangle -2674135 true true 135 225 165 300
  477. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  478. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  479. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  480. Circle -7500403 true false 47 42 210
  481. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  482. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  483. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  484. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  485. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  486. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  487. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  488. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  489. Polygon -16777216 true false 152 224 182 234 212 216 230 196 211 202 191 218 187 206 160 223
  490. Polygon -16777216 true false 86 78 118 58 154 60 169 52 146 71 126 68 97 87 71 93 86 78
  491. Polygon -16777216 true false 218 107 248 139 245 184 230 192 224 154 225 126 214 109
  492. Polygon -16777216 true false 75 90 120 60 195 60 227 123 232 177 202 178 198 105 156 74 84 99 57 133 73 83
  493. Polygon -16777216 true false 77 147 124 213 176 210 222 179 167 171 137 191 105 141 67 117
  494. Polygon -16777216 true false 76 196 135 244 191 237 226 206 174 209 110 220 82 179 74 198
  495. pillbox-alive-3
  496. false
  497. 1
  498. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  499. Rectangle -2674135 true true 225 135 300 165
  500. Rectangle -2674135 true true 135 0 165 75
  501. Rectangle -2674135 true true 0 135 75 165
  502. Rectangle -2674135 true true 135 225 165 300
  503. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  504. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  505. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  506. Circle -7500403 true false 47 42 210
  507. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  508. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  509. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  510. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  511. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  512. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  513. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  514. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  515. Polygon -16777216 true false 152 224 182 234 212 216 230 196 211 202 191 218 187 206 160 223
  516. Polygon -16777216 true false 86 78 118 58 154 60 169 52 146 71 126 68 97 87 71 93 86 78
  517. Polygon -16777216 true false 218 107 248 139 245 184 230 192 224 154 225 126 214 109
  518. pillbox-alive-4
  519. false
  520. 1
  521. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  522. Rectangle -2674135 true true 225 135 300 165
  523. Rectangle -2674135 true true 135 0 165 75
  524. Rectangle -2674135 true true 0 135 75 165
  525. Rectangle -2674135 true true 135 225 165 300
  526. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  527. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  528. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  529. Circle -7500403 true false 47 42 210
  530. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  531. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  532. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  533. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  534. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  535. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  536. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  537. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  538. pillbox-alive-5
  539. false
  540. 1
  541. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  542. Rectangle -2674135 true true 225 135 300 165
  543. Rectangle -2674135 true true 135 0 165 75
  544. Rectangle -2674135 true true 0 135 75 165
  545. Rectangle -2674135 true true 135 225 165 300
  546. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  547. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  548. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  549. Circle -7500403 true false 45 45 210
  550. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  551. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  552. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  553. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  554. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  555. pillbox-alive-6
  556. false
  557. 1
  558. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  559. Rectangle -2674135 true true 225 135 300 165
  560. Rectangle -2674135 true true 135 0 165 75
  561. Rectangle -2674135 true true 0 135 75 165
  562. Rectangle -2674135 true true 135 225 165 300
  563. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  564. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  565. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  566. Circle -7500403 true false 45 45 210
  567. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  568. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  569. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  570. pillbox-alive-7
  571. false
  572. 1
  573. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  574. Rectangle -2674135 true true 225 135 300 165
  575. Rectangle -2674135 true true 135 0 165 75
  576. Rectangle -2674135 true true 0 135 75 165
  577. Rectangle -2674135 true true 135 225 165 300
  578. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  579. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  580. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  581. Circle -7500403 true false 45 45 210
  582. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  583. pillbox-alive-8
  584. false
  585. 1
  586. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  587. Rectangle -2674135 true true 225 135 300 165
  588. Rectangle -2674135 true true 135 0 165 75
  589. Rectangle -2674135 true true 0 135 75 165
  590. Rectangle -2674135 true true 135 225 165 300
  591. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  592. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  593. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  594. Circle -7500403 true false 45 45 210
  595. pillbox-dead
  596. false
  597. 1
  598. Polygon -7500403 true false 240 30 270 30 270 60 240 90 210 60 240 30
  599. Rectangle -7500403 true false 135 0 165 45
  600. Rectangle -7500403 true false 0 135 45 165
  601. Rectangle -7500403 true false 135 255 165 300
  602. Rectangle -7500403 true false 255 135 300 165
  603. Polygon -7500403 true false 30 60 30 30 60 30 90 60 60 90 30 60
  604. Polygon -7500403 true false 60 270 30 270 30 240 60 210 90 240 60 270
  605. Polygon -7500403 true false 270 240 270 270 240 270 210 240 240 210 270 240
  606. Polygon -2674135 true true 195 165 210 180 210 210 180 210 165 195
  607. Polygon -2674135 true true 165 105 180 90 210 90 210 120 195 135
  608. Polygon -2674135 true true 105 135 90 120 90 90 120 90 135 105
  609. Polygon -2674135 true true 135 195 120 210 90 210 90 180 105 165
  610. tank
  611. true
  612. 1
  613. Rectangle -7500403 true false 78 85 116 103
  614. Polygon -7500403 true false 105 270 210 271 210 105 180 105 180 135 120 135 120 105 90 105 89 270
  615. Polygon -2674135 true true 120 105 90 105 90 180 120 180 120 195 180 195 180 180 210 180 210 105 180 105 165 105 165 135 135 135 135 105 120 105
  616. Polygon -1 true false 135 15 135 150 165 150 165 15
  617. Polygon -1 true false 67 105 67 255 97 255 97 105
  618. Polygon -1 true false 202 105 202 255 232 255 232 105
  619. Rectangle -7500403 true false 184 85 222 103
  620. @#$#@#$#@
  621. NetLogo 4.1.3
  622. @#$#@#$#@
  623. @#$#@#$#@
  624. @#$#@#$#@
  625. @#$#@#$#@
  626. @#$#@#$#@
  627. default
  628. 0.0
  629. -0.2 0 1.0 0.0
  630. 0.0 1 1.0 0.0
  631. 0.2 0 1.0 0.0
  632. link direction
  633. true
  634. 0
  635. Line -7500403 true 150 150 90 180
  636. Line -7500403 true 150 150 210 180
  637. @#$#@#$#@
  638. 0
  639. @#$#@#$#@