|
- ;; lobo: Logo Bolo
- ;; (c) Ben Kurtovic, 2011
-
- breed [bullets bullet]
-
- bullets-own [
- max-travel-distance
- shooter
- speed
- travel-distance
- ]
-
- ;; ==========
- ;; Procedures
- ;; ==========
-
- to fire-bullet
- hatch-bullets 1 [
- set max-travel-distance 8
- set shooter [who] of myself
- set speed 1
- set travel-distance 0
-
- set color white
- set shape "bullet"
- set size 0.5
-
- ; Bullets shouldn't travel perfectly straight:
- lt random 5
- rt random 5
- ]
- end
-
- to do-bullet-logic
- fd speed
- set travel-distance travel-distance + speed
- if travel-distance > max-travel-distance [
- explode "decay"
- die
- ]
-
- let mxcor xcor
- let mycor ycor
- let is-close-enough false
- let shootable-bases-here bases-here with [armor > 0 and team != -1 and team != [team] of tank [shooter] of myself]
- let targets (turtle-set tanks-here shootable-bases-here)
- let target min-one-of targets [distancexy mxcor mycor]
- if target != nobody [
- ask target [
- if distancexy mxcor mycor < 0.65 [
- set is-close-enough true
- ifelse breed = tanks [
- tank-shot-at
- ] [
- base-shot-at
- ]
- ]
- ]
- ]
- if is-close-enough [
- die
- ]
- end
|