Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo
Du kan inte välja fler än 25 ämnen
Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
|
- ;; 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
|