packages feed

swarm-0.4: data/scenarios/Testing/378-objectives.yaml

version: 1
name: Complete two objectives in succession.
description: |
  First, get some trees; then, use them to build a harvester.
objectives:
  - id: get_trees
    teaser: Get trees
    goal:
      - Your first goal is to get three trees.
    condition: |
      try {
        n <- as base {count "tree"};
        return (n >= 3)
      } { return false }
  - goal:
      - Nice job.  Now, build a harvester.
    condition: |
      try { as base {has "harvester"} } {return false}
    prerequisite: get_trees
solution: |
  build {turn right; move; move; grab; move; grab; move; grab; turn back; move; move; move; move};
  wait 16;
  salvage;
  make "log"; make "log"; make "log";
  make "board"; make "board"; make "board";
  make "box";
  make "wooden gear"; make "wooden gear";
  make "harvester"
robots:
  - name: base
    display:
      char: 'Ω'
      attr: robot
    dir: [0,1]
    devices:
      - 3D printer
      - life support system
      - logger
      - toolkit
      - solar panel
      - workbench
      - clock
    inventory:
      - [10, treads]
      - [10, grabber]
      - [10, solar panel]
      - [0, harvester]
world:
  palette:
    'Ω': [grass, null, base]
    '.': [grass]
    'T': [grass, tree]
    '┌': [stone, upper left corner]
    '┐': [stone, upper right corner]
    '└': [stone, lower left corner]
    '┘': [stone, lower right corner]
    '─': [stone, horizontal wall]
    '│': [stone, vertical wall]
  upperleft: [-1, 1]
  map: |
    ┌────────┐
    │Ω.TTTTTT│
    └────────┘