;;; This is a test game that mentions *everything*.
;;;
;;; Comments and symbols or strings beginning with xxx
;;; will be filtered out when comparing with the set of
;;; defined symbols.

(game-module "all"
  (base-game "")
  (base-module "")
  (blurb "xxxyyy")
  (default-base-module "")
  (design-notes "")
  (instructions "")
  (notes "")
  (picture-name "xxxzzz")
  (program-version "")
  (title "xxx")
  (variants
   (real-time)
   (see-all)
   (sequential)
   (world-seen)
   (world-size)
   )
  (version "")
  (original-module)
  (original-variants)
  (original-version)
  )

(unit-type xxxunit
  (start-with 1)
  (acp-damage-effect nil)
  (acp-max 0)
  (acp-min 0)
  (acp-per-turn 0)
  (acp-per-turn-max 0)
  (acp-per-turn-min 0)
  (acp-season-effect nil)
  (acp-temperature-effect nil)
  (acp-to-change-side 0)
  (acp-to-detonate 0)
  (acp-to-disband 0)
  (acp-to-fire 0)
  (acp-to-move 0)
  (acp-to-transfer-part 0)
  (action-priority 0)
  (already-seen 0)
  (already-seen-independent 0)
  (assign-number 0)
  (available 1)
  (can-be-self 0)
  (capacity 0)
  (char "")
  (color "")
  (consumption-temperature-effect nil)
  (country-units-max 0)
  (courage-max 0)
  (courage-min 0)
  (cp 1)
  (cp-attrition 0)
  (cp-per-self-build 0)
  (cp-to-self-build 0)
  (cxp-max 0)
  (cxp-on-capture-effect 0)
  (description-format nil)
  (detonate-on-death 0)
  (direct-control 1)
  (extensions nil)
  (fire-angle-max 0)
  (free-acp 0)
  (free-mp 0)
  (generic-name "")
  (help "")
  (hit-falloff-range 0)
  (hp-max 1)
  (hp-per-disband 0)
  (hp-per-detonation 0)
  (hp-recovery 0)
  (hp-to-recover 0)
  (image-name "")
  (independent-growth-chance 0)
  (independent-near-start 0)
  (independent-takeover-chance 0)
  (initial-seen-radius 0)
  (long-name "")
  (lost-revolt-chance 0)
  (lost-vanish-chance 0)
  (lost-wreck-chance 0)
  (morale-max 0)
  (move-range 0)
  (mp-to-leave-world 0)
  (namer "")
  (name "")
  (name-internal "")
  (notes nil)
  (occupant-total-max 0)
  (opinion-max 0)
  (opinion-min 0)
  (point-value 0)
  (parts-max 1)
  (possible-sides nil)
  (range 0)
  (range-min 0)
  (revolt-at-opinion-min 0)
  (revolt-chance 0)
  (road-to-edge-chance 0)
  (see-always 0)
  (see-occupants 0)
  (see-terrain-if-captured 0)
  (self-changeable 0)
  (self-resurrects 0)
  (short-name "")
  (speed 0)
  (speed-max 0)
  (speed-damage-effect nil)
  (speed-min 0)
  (speed-wind-effect nil)
  (spot-action 1)
  (spur-chance 0)
  (spur-range 0)
  (spy-chance 0)
  (spy-range 0)
  (stack-order 0)
  (start-with 0)
  (tech-from-ownership 0)
  (tech-leakage 0)
  (tech-max 0)
  (tech-per-turn-max 0)
  (tech-to-build 0)
  (tech-to-own 0)
  (tech-to-see 0)
  (tech-to-use 0)
  (temperature-attrition nil)
  (type-in-game-max -1)
  (type-per-side-max -1)
  (unit-growth-chance 0)
  (unit-takeover-chance 0)
  (vision-range 0)
  (vision-bend 0)
  (wrecked-type 0)
  (zz-b 0)
  (zz-bb 0)
  (zz-transport 0)
  (zz-c 0)
  (zz-cm 0)
  (zz-cc 0)
  (zz-bw 0)
  )

(terrain-type xxxterrain
  (alt-percentile-max 0)
  (alt-percentile-min 0)
  (available 1)
  (capacity 0)
  (char "")
  (clouds-max 0)
  (clouds-min 0)
  (country-growth-chance 0)
  (country-people-chance 0)
  (country-takeover-chance 0)
  (country-terrain-max 0)
  (country-terrain-min 0)
  (description-format nil)
  (elevation-max 0)
  (elevation-min 0)
  (extensions nil)
  (help "")
  (image-name "")
  (independent-people-chance 0)
  (liquid 0)
  (maze-passage-occurrence 0)
  (maze-room-occurrence 0)
  (name "")
  (notes nil)
  (occurrence 0)
  (people-max 0)
  (river-chance 0)
  (subtype 0)
  (subtype-x 0)
  (temperature-average 0)
  (temperature-max 0)
  (temperature-min 0)
  (temperature-variability 0)
  (thickness 0)
  (wet-percentile-max 0)
  (wet-percentile-min 0)
  (wind-force-average 0)
  (wind-force-max 0)
  (wind-force-min 0)
  (wind-force-variability 0)
  (wind-variability 0)
  (zz-fr 0)
  )

(terrain-type xxxterrain2
  (subtype border)
  )
(terrain-type xxxterrain3
  (subtype connection)
  )
(terrain-type xxxterrain4
  (subtype coating)
  )

(material-type xxxmaterial
  (available 1)
  (color "")
  (description-format nil)
  (extensions nil)
  (help "")
  (image-name "")
  (name "")
  (notes nil)
  (people 0)
  )

;(print false)
;(print true)

(add xxxunit start-with 1)

;;; Variables.

(set action-movies nil)
(set action-narratives nil)
(set action-notices nil)
(set advantage-default 1)
(set advantage-max 3)
(set advantage-min 1)
(set alt-blob-density 0)
(set alt-blob-height 0)
(set alt-blob-size 0)
(set alt-smoothing 0)
(set calendar nil)
(set country-radius-max 0)
(set country-radius-min 0)
(set country-separation-max 0)
(set country-separation-min 0)
(set create-units-from-specs true)
(set edge-road-density 0)
(set edge-terrain 0)
(set elapsed-real-time 0)
(set event-movies nil)
(set event-narratives nil)
(set event-notices nil)
(set extra-turn-chance 0)
(set feature-namers nil)
(set feature-types nil)
(set grid-color "")
(set growth-stop-chance 0)
(set initial-date "")
(set initial-date-max "")
(set initial-date-min "")
(set initial-day-part 0)
(set initial-year-part 0)
(set last-turn 100)
(set maze-passage-density 0)
(set maze-room-density 0)
;(set player-mix-default nil)
;(set player-mix-required nil)
(set player-sides-locked 0)
(set random-state 0)
(set real-time-for-game 0)
(set real-time-per-side 0)
(set real-time-per-turn 0)
(set river-sink-terrain 0)
(set zz-run-serial-number 12345)
(set scorefile-name "")
(set season-names nil)
(set see-all 0)
(set see-terrain-always 0)
(set see-weather-always 0)
(set self-required 0)
(set side-library nil)
(set sides-max 9)
(set sides-min 1)
(set synthesis-methods nil)
(set temperature-floor 0)
(set temperature-floor-elevation 0)
(set temperature-moderation-range 0)
(set terrain-seen 0)
(set turn 0)
(set units-in-game-max 100)
(set units-per-side-max 100)
(set unseen-char "")
(set unseen-color "")
(set unseen-image-name "")
(set use-side-priority 0)
(set wet-blob-density 0)
(set wet-blob-height 0)
(set wet-blob-size 0)
(set wet-smoothing 0)
(set wind-mix-range 0)

;;; Tables.

(table accident-damage)
(table accident-hit-chance)
(table accident-vanish-chance)
(table acp-night-effect)
(table acp-for-retreat)
(table acp-occupant-effect)
(table acp-to-add-terrain)
(table acp-to-attack)
(table acp-to-be-fired-on)
(table acp-to-build)
(table acp-to-capture)
(table acp-to-change-type)
(table acp-to-create)
(table acp-to-defend)
(table acp-to-enter-unit)
(table acp-to-load)
(table acp-to-remove-terrain)
(table acp-to-produce)
(table acp-to-repair)
(table acp-to-research)
(table acp-to-toolup)
(table acp-to-unload)
(table adjacent-terrain-effect)
(table alter-terrain-range)
(table altitude-max)
(table altitude-min)
(table attack-range)
(table attack-range-min)
(table attack-terrain-effect)
(table attrition)
(table auto-repair)
(table auto-repair-range)
(table base-consumption)
(table base-production)
(table body-height)
(table bridge)
(table build-range)
(table can-enter-independent)
(table capacity-negation)
(table capture-chance)
(table change-on-exhaustion-chance)
(table coating-depth-max)
(table coating-depth-min)
(table consumption-as-occupant)
(table consumption-on-creation)
(table consumption-per-add-terrain)
(table consumption-per-attack)
(table consumption-per-build)
(table consumption-per-fire)
(table consumption-per-move)
(table consumption-per-repair)
(table control-range)
(table counterattack)
(table countercapture)
(table cp-on-creation)
(table cp-per-build)
(table create-range)
(table cxp-per-capture)
(table cxp-per-combat)
(table damage)
(table damage-cxp-effect)
(table defend-terrain-effect)
(table detonate-on-approach-range)
(table detonate-on-capture)
(table detonate-on-hit)
(table detonation-accident-chance)
(table detonation-damage-at)
(table detonation-damage-adjacent)
(table detonation-terrain-damage-chance)
(table detonation-terrain-range)
(table detonation-unit-range)
(table eye-height)
(table favored-terrain)
(table ferry-on-entry)
(table ferry-on-departure)
(table fire-attack-terrain-effect)
(table fire-damage)
(table fire-defend-terrain-effect)
(table fire-hit-chance)
(table hp-min)
(table hp-to-garrison)
(table hit-at-max-range-effect)
(table hit-by)
(table hit-chance)
(table hit-cxp-effect)
(table hp-per-repair)
(table hp-to-repair)
(table hp-per-starve)
(table in-length)
(table independent-density)
(table independent-capture-chance)
(table keep-control-range)
(table load-max)
(table looks-like)
(table lose-track-chance)
(table lost-surrender-chance)
(table material-per-production)
(table material-per-remove-terrain)
(table material-to-add-terrain)
(table material-to-act)
(table material-to-attack)
(table material-to-build)
(table material-to-change-type)
(table material-to-create)
(table material-to-fire)
(table material-to-move)
(table material-to-produce)
(table material-to-remove-terrain)
(table material-to-repair)
(table material-to-research)
(table morale-hit)
(table morale-hit-by)
(table morale-on-creation)
(table morale-terrain-effect)
(table mp-to-enter-terrain)
(table mp-to-enter-unit)
(table mp-to-enter-zoc)
(table mp-to-leave-terrain)
(table mp-to-leave-unit)
(table mp-to-leave-zoc)
(table mp-to-traverse)
(table mp-to-traverse-zoc)
(table occupant-can-have-occupants)
(table occupant-combat)
(table occupant-can-construct)
(table occupant-escape-chance)
(table occupant-base-production)
(table occupant-vision)
(table occupant-max)
(table opinions-on-creation)
(table out-length)
(table people-consumption)
(table people-production)
(table people-see-chance)
(table people-surrender-chance)
(table people-surrender-effect)
(table productivity)
(table productivity-adjacent)
(table productivity-max)
(table productivity-min)
(table protection)
(table recycleable-material)
(table retreat-chance)
(table road-chance)
(table road-into-chance)
(table scuttle-chance)
(table see-chance)
(table see-chance-adjacent)
(table see-chance-at)
(table see-material-always)
(table see-mistake-chance)
(table see-others-if-captured)
(table speed-occupant-effect)
(table spy-quality)
(table spy-track-chance)
(table stack-protection)
(table supply-on-creation)
(table supply-on-completion)
(table supply-per-disband)
(table surrender-chance)
(table surrender-chance-per-attack)
(table surrender-range)
(table tech-crossover)
(table tech-per-research)
(table temperature-protection)
(table terrain-consumption)
(table terrain-damaged-type)
(table terrain-production)
(table terrain-capacity-x)
(table terrain-exhaustion-type)
(table terrain-initial-supply)
(table terrain-storage-x)
(table tp-damage)
(table tp-max)
(table tp-per-toolup)
(table tp-to-build)
(table tp-attrition)
(table tp-crossover)
(table track-chance)
(table unit-capacity-x)
(table unit-control-chance)
(table unit-control-chance-adjacent)
(table unit-control-chance-at)
(table unit-control-range)
(table unit-initial-supply)
(table unit-size-as-occupant)
(table unit-size-in-terrain (u* t* 0))
(table unit-storage-x)
(table unload-max)
(table vanishes-on)
(table visibility)
(table vision-night-effect)
(table weapon-height)
(table withdraw-chance-per-attack)
(table wrecks-on)
(table zoc-into-terrain)
(table zoc-from-terrain-effect)
(table zoc-range)
(table zz-basic-hit-worth)
(table zz-basic-capture-worth)
(table zz-basic-transport-worth)

;;; The world.

(world 100
  (axial-tilt 30)
  (circumference 1000)
  (day-length 10)
  (year-length 400)
  (daylight-fraction 0)
  (twilight-fraction 0)
  )

(area 20 20
  (cell-width 10)
  (height 25)
  (latitude 40)
  (longitude 180)
  (projection 0)
  (sun 1 1)
  (temperature-year-cycle)
  (width 30)
  )

(area (aux-terrain 1 "fnsifunosiv"))
(area (cloud-bottoms "ababababababa"))
(area (cloud-heights "ababababababa"))
(area (clouds "ababababababa"))
(area (control-sides "ababababababa"))
(area (elevations "dvandkjanldfadreo"))
(area (features (("foo" "typ") ("bar" "tap")) "abababaaba"))
(area (material 0 "dadkjnadvadfadf"))
(area (people-sides "ababababababa"))
(area (temperatures "uhgfuhpoafnpuoafpjh"))
(area (terrain "40a"))
(area (winds "ababababababa"))


(doctrine xxxdefault-doctrine
  (construction-run)
  (rearm-percent 20)
  (repair-percent 20)
  (resupply-percent 20)
  (locked false)
  )

(doctrine xxxbe-aggressive
  )

;;; Sides.

(side-defaults)

(side 1
  (name "Oneia")
  (long-name "Nation of Oneia")
  (short-name "ON")
  (noun "Oneian")
  (plural-noun "Oneiaa")
  (adjective "Oneian")
  (color "green,blue")
  (emblem-name "star")
  (feature-namers)
  (names-locked true)
  (units)
  (class "test")
  (active true)
  (ever-active true)
  (status draw)
  (advantage 1)
  (advantage-min 1)
  (advantage-max 3)
  (initial-center-at 1 1)
  (controlled-by 0)
  (trusts)
  (trades)
  (next-numbers (xxxunit 46))
  (unit-namers)
  (feature-namers)
  (tech)
  (init-tech)
  (action-priorities)
  (already-seen)
  (terrain-view)
  (terrain-view-dates)
  (aux-terrain-view)
  (aux-terrain-view-dates)
  (unit-view)
  (unit-view-dates)
  (material-view)
  (material-view-dates)
  (temperature-view)
  (temperature-view-dates)
  (cloud-view)
  (cloud-bottom-view)
  (cloud-height-view)
  (cloud-view-dates)
  (wind-view)
  (wind-view-dates)
  (turn-time-used 3)
  (total-time-used 15)
  (timeouts 3)
  (timeouts-used 0)
  (finished-turn false)
  (willing-to-draw false)
  (default-doctrine xxxdefault-doctrine)
  (doctrines (u* xxxdefault-doctrine) (xxxunit xxxbe-aggressive))
  (doctrines-locked false)
  (standing-order xxxunit (always) (move-to 1 2 3 4) )
  (self-unit 0)
  (priority 1)
  (scores (1 3) (2 15))
  (loss-counts)
  (gain-counts)
  (attack-stats)
  (hit-stats)
  (ui-data)
  (ai-data)
  (player 1)
  )

(side 2
  (active false)
  (status win)
  )
  
(side 3
  (status lose)
  )

(side 4
  (controlled-by 1)
  )

(independent-units
  (color "black")
  )

;;; Players.

(player 1
  (name "Joe")
  (config-name "xxx")
  (display-name "screen")
  (ai-type-name "stupid")
  (password "IUL8h786m")
  (initial-advantage 1)
  )

;;; Units.

(unit-defaults)

(unit xxxunit
  (@ 5 2 10000)
  (# 3)
  (cp 1)
  (cxp 0)
  (hp 1)
  (in 0)
  (m 0)
  (mo 0)
  (n "CPT Socks")
  (nb 34)
  (opinions 0 0)
  (os 1)
  (s 1)
  (sym xxxfoo)
  (tp 0 0 0)
  (trk)
  (z 15000)
  (x
   (xxxhi xxxthere)
   (appear 2)
   (disappear 4)
   (sides)
   )
  (acp 1)
  (acp0 10)
  (am 3)
  (a (move 4 2 15000))
  (plan passive
   (ai-control 1)
   (asleep 1)
   (delayed 1)
   (final-turn 1)
   (formation)
   (initial-turn 1)
   (reserve 1)
   (supply-alarm 0)
   (supply-is-low 0)
   (tasks
    (build)
    (capture)
    (disband)
    (do-action)
    (hit-position)
    (hit-unit)
    (move-dir)
    (move-to)
    (occupy)
    (pickup)
    (produce)
    (repair)
    (research)
    (resupply)
    (sentry)
    )
   (wait 0)
   (wait-transport 0)
   )
  )

(xxxunit 1 1 1 (a (add-terrain)))
(xxxunit 1 1 1 (a (alter-terrain)))
(xxxunit 1 1 1 (a (attack)))
(xxxunit 1 1 1 (a (build)))
(xxxunit 1 1 1 (a (capture)))
(xxxunit 1 1 1 (a (change-side)))
(xxxunit 1 1 1 (a (change-type)))
(xxxunit 1 1 1 (a (create-at)))
(xxxunit 1 1 1 (a (create-in)))
(xxxunit 1 1 1 (a (detonate)))
(xxxunit 1 1 1 (a (disband)))
(xxxunit 1 1 1 (a (enter)))
(xxxunit 1 1 1 (a (fire-at)))
(xxxunit 1 1 1 (a (fire-into)))
(xxxunit 1 1 1 (a (overrun)))
(xxxunit 1 1 1 (a (produce)))
(xxxunit 1 1 1 (a (remove-terrain)))
(xxxunit 1 1 1 (a (repair)))
(xxxunit 1 1 1 (a (research)))
(xxxunit 1 1 1 (a (toolup)))
(xxxunit 1 1 1 (a (transfer)))
(xxxunit 1 1 1 (a (transfer-part)))

(xxxunit 1 1 1 (plan none))
(xxxunit 1 1 1 (plan offensive))
(xxxunit 1 1 1 (plan defensive))
(xxxunit 1 1 1 (plan exploratory))

(xxxunit 1 1 1 (plan offensive (goal (no-goal))))
(xxxunit 1 1 1 (plan offensive (goal (won-game))))
(xxxunit 1 1 1 (plan offensive (goal (lost-game))))
(xxxunit 1 1 1 (plan offensive (goal (world-is-known))))
(xxxunit 1 1 1 (plan offensive (goal (vicinity-is-known))))
(xxxunit 1 1 1 (plan offensive (goal (positions-known))))
(xxxunit 1 1 1 (plan offensive (goal (cell-is-occupied))))
(xxxunit 1 1 1 (plan offensive (goal (vicinity-is-held))))
(xxxunit 1 1 1 (plan offensive (goal (has-unit-type))))
(xxxunit 1 1 1 (plan offensive (goal (has-unit-type-near))))
(xxxunit 1 1 1 (plan offensive (goal (has-material-type))))
(xxxunit 1 1 1 (plan offensive (goal (keep-formation))))

;;; Agreements.

(agreement 1
  (type-name "test")
  (name "Treaty of Testing")
  (terms "Be excellent to one another!")
  (drafters 1)
  (proposers 1)
  (signers 1)
  (willing-to-sign 1)
  (known-to side*)
  (enforcement 0)
  (state 0)
  )

;;; Scorekeepers.

(scorekeeper 1
  (applies-to 0)
  (do last-side-wins)
  (initial 0)
  (known-to 0)
  (notes "test")
  (title "First Test SK")
  (trigger)
  (triggered 0)
  (when)
  )

(scorekeeper 2
  (do last-alliance-wins)
  )

;;; History.

(exu -2 xxxunit 1 1 0)

(evt 0 log-started all)
(evt 0 game-started all)
(evt 1 side-joined all)
(evt 1 side-lost all)
(evt 1 side-withdrew all)
(evt 1 side-won all)
(evt 1 unit-created all)
(evt 1 unit-completed all)
(evt 1 unit-acquired all)
(evt 1 unit-moved all)
(evt 1 unit-assaulted all)
(evt 1 unit-damaged all)
(evt 1 unit-captured all)
(evt 1 unit-killed all)
(evt 1 unit-wrecked all)
(evt 1 unit-vanished all)
(evt 1 unit-garrisoned all)
(evt 1 unit-revolted all)
(evt 1 unit-surrendered all)
(evt 1 unit-disbanded all)
(evt 1 unit-died-in-accident all)
(evt 1 unit-wrecked-in-accident all)
(evt 1 unit-died-from-temperature all)
(evt 1 unit-starved all)
(evt 1 unit-merged all)
(evt 1 unit-left-world all)
(evt 1 unit-gone all)
(evt 1 unit-type-changed all)
(evt 1 unit-name-changed all)
(evt 1 game-ended all)
(evt 1 game-saved all)
(evt 1 game-restarted all)
(evt 1 log-ended all)
(evt 1 action-ok all)
(evt 1 action-error all)
(evt 1 cannot-do all)
(evt 1 insufficient-acp all)
(evt 1 insufficient-material all)
(evt 1 action-done all)
(evt 1 insufficient-mp all)
(evt 1 cannot-leave-world all)
(evt 1 destination-full all)
(evt 1 overrun-failed all)
(evt 1 overrun-succeeded all)
(evt 1 capture-failed all)
(evt 1 capture-succeeded all)
(evt 1 fire-into-outside-world all)
(evt 1 too-far all)
(evt 1 too-near all)

;;; Imagery

(imf "xxximf"
  ((8 8 tile)
   (embed "yyy") (embed-at 0 0) (embed-size 8 8)
   (color (pixel-size 1) (palette) "0000000000000000")
   (mono "0000000000000000")
   (mask "0000000000000000")))

(palette "xxxpalette")

;;; Misc

(battle)

(namer xxxnamer
  )

;;; other keywords

(define xxxrandom-list
  (quote (
    undefine
    independent-units
    include
    namer
    text
    print
    restrict
    appear
    disappear
    feelings
    quote
    list
    append
    remove
    if
    else
    end-if
    m*
    non-unit
    non-material
    non-terrain
    constant
    subarea
    xform
    by-bits
    by-char
    by-name
    random
    grammar
    junky
    tasks
    reset
    stop
    end
    cell
    no-x
    river-x
    valley-x
    road-x
    over-nothing
    over-own
    over-border
    over-all
    usual
    reject
    any
    capitalize
    cond
    and
    or
    not
    =
    /=
    <
    <=
    >
    >=
    sum
    before-turn
    after-turn
    after-action
    after-event
    make-fractal-percentile-terrain
    make-random-terrain
    make-earthlike-terrain
    make-maze-terrain
    make-rivers
    make-countries
    make-independent-units
    make-initial-materials
    name-units-randomly
    name-geographical-features
    make-roads
    make-random-date
    make-weather
    always
    near
    )
))
