From first steps to maximum strategy
15 programs. 15 learning steps.
The order and active-command counts match the current in-app library. Three easy fighters teach the basics, ten competitive programs demonstrate distinct tactics, and two maximum strategies show large state machines.
- 15/15
- currently validated
- 21–129
- active commands
- 3
- levels
01Space SpiralSpatial zigzag attack · 21 active commands · MiddleweightEasy
Combines a direct signal-guided step with a lateral random branch and complete contact defense.
How the program works
- The newest tip aligns with the strongest signal and grows once in the preferred direction.
- Captures check enemies and neutral bridges locally; rotation plus random growth creates the second spatial arm.
- The body scan activates the threatened allied point on new contact and continues tracking a confirmed breach.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
growPreferredDirection()
captureEnemyCube()
captureNeutralCube()
rotateDirection(steps: 1)
growRandomly()
captureEnemyCube()
scanArea(radius: 1)
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)02Six-Eyed SentinelSix-axis close guard · 23 active commands · MiddleweightEasy
Checks all six direct axes, assimilates contact and then continues the advance.
How the program works
- After signal search, six inexpensive neighbor sensors inspect every direct spatial axis.
- Enemy and neutral capture use the latest local contact; a growth step then follows the stored direction.
- The preceding body guard intercepts attacks on other parts of the structure.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
checkNeighbor(direction: .xPlus)
checkNeighbor(direction: .xMinus)
checkNeighbor(direction: .yPlus)
checkNeighbor(direction: .yMinus)
checkNeighbor(direction: .zPlus)
checkNeighbor(direction: .zMinus)
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)03Search ProbeSensor-guided front · 22 active commands · MiddleweightEasy
Demonstrates the complete basic sequence of bearing, axis scan, growth, close scan and front expansion.
How the program works
- Signal search provides a rough axis; the range-6 scan confirms the corridor.
- Local captures surround the growth step so contact is used immediately.
- Radius 1 and Expand Front widen the tip while the body guard detects distant attacks.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
scanDirection(range: 6)
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
scanArea(radius: 1)
captureEnemyCube()
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)04Neutral CollectorResource-based assimilation · 21 active commands · MiddleweightCompetitive
Uses neutral contact chains as inexpensive bridges without interrupting the hunt for the enemy core.
How the program works
- The tip first captures directly reachable neutral cubes and then finds the strongest signal.
- Directional scanning, growth and front expansion continually alternate between route building and attack.
- The body guard prevents an attack on an older branch from going unnoticed.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
captureNeutralCube()
findStrongestSignal()
scanDirection(range: 6)
captureEnemyCube()
growPreferredDirection()
captureNeutralCube()
captureEnemyCube()
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)05Radar SpiderWide sensor web · 27 active commands · MiddleweightCompetitive
Pays for a large radius-2 scan while building direct, random and rotated attack arms.
How the program works
- Signal search and a range-8 scan orient the active tip across long distance.
- Two direct steps, radius 2, random growth and rotation distribute the structure through 3D space.
- Nearly every spatial action is followed by a local enemy capture; the body scan protects older arms.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
scanDirection(range: 8)
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
scanArea(radius: 2)
captureEnemyCube()
growRandomly()
captureEnemyCube()
rotateDirection(steps: 2)
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)06Telescope HunterLean long-range attack · 23 active commands · MiddleweightCompetitive
Builds a narrow high-speed arm with long-range scanning and regular safe retraction.
How the program works
- A range-8 scan establishes a precise long-range axis.
- Three fast preferred-direction steps close distance; each is immediately checked for enemy contact.
- Retract Trail removes one safe old cube while the active tip remains at the front.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
scanDirection(range: 8)
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
captureNeutralCube()
retractTrail(count: 1)
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)07Wandering ScoutMobile core attack · 32 active commands · MiddleweightCompetitive
Advances the attack front and then deliberately moves the own core away from the enemy signal.
How the program works
- The newest tip grows twice along the signal and uses long- and close-range sensing.
- After front expansion, the core is selected; two rotations totaling three steps reverse the signal direction.
- Find Free Direction and Move Core pull the valuable core back without abandoning the attack structure.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
scanDirection(range: 8)
captureEnemyCube()
captureNeutralCube()
scanArea(radius: 1)
captureEnemyCube()
expandFront()
captureEnemyCube()
captureNeutralCube()
.coreRetreat:
selectCore()
findStrongestSignal()
rotateDirection(steps: 2)
rotateDirection(steps: 1)
findFreeDirection()
moveCore()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)08Marker PilotWaypoint navigation · 27 active commands · MiddleweightCompetitive
Turns the rough signal direction into a waypoint eight cells away and advances toward it in controlled steps.
How the program works
- Set Marker stores a target eight cells away in the signal direction.
- Three Grow to Marker calls build a stable corridor, assimilating enemies and neutral bridges between steps.
- Long-range scan, close scan and front expansion handle the final approach at the waypoint.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
setMarker(marker: 1, range: 8)
growToMarker()
captureEnemyCube()
captureNeutralCube()
growToMarker()
captureEnemyCube()
growToMarker()
captureEnemyCube()
scanDirection(range: 8)
captureEnemyCube()
scanArea(radius: 1)
captureEnemyCube()
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)09Phantom CaravanCompact stealth column · 28 active commands · MiddleweightCompetitive
Combines a narrow signal-guided tip, short trails and laterally shifting attack fronts.
How the program works
- The tip scans far and grows twice toward the signal.
- Retract Trail removes two old sections; rotation and random growth then switch sides.
- Close scanning and front expansion widen the new contact zone without keeping the silhouette permanently large.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
scanDirection(range: 8)
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
retractTrail(count: 2)
rotateDirection(steps: 1)
growRandomly()
captureEnemyCube()
scanArea(radius: 1)
captureEnemyCube()
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)10Core Network ArchitectMulti-front network · 32 active commands · MiddleweightCompetitive
Builds several offset fronts from the core and then switches to a three-step signal attack.
How the program works
- Two differently oriented front expansions build the defensive network from the core.
- The newest tip is realigned with the signal and grows three times with local captures.
- A close scan and another front expansion connect the defensive area to an active counterattack.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectCore()
findStrongestSignal()
expandFront()
captureEnemyCube()
captureNeutralCube()
rotateDirection(steps: 1)
expandFront()
captureEnemyCube()
selectNewest()
findStrongestSignal()
growPreferredDirection()
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
scanArea(radius: 1)
captureEnemyCube()
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)11Omega Core HunterPersistent breakthrough · 50 active commands · MiddleweightCompetitive
Stays on the newest attack tip, tracks a confirmed enemy structure and flanks stabilized contacts.
How the program works
- Body scan, signal search and long-range scan guide the tip to a real breach.
- After the first capture, Track Enemy Structure and Capture Enemy Cube repeat the local hunt.
- Lost or stabilized contact opens a flank or fresh start instead of repeating the same recapture.
.start:
scanBodyContact()
goIf(.bodyContact, to: .emergencyDefense)
selectNewest()
findStrongestSignal()
goIf(.coreAura, to: .closeCombat)
scanDirection(range: 8)
goIf(.enemyCube, to: .breach)
growPreferredDirection()
goIf(.enemyCube, to: .breach)
captureNeutralCube()
captureEnemyCube()
goIf(.enemyCube, to: .pursuit)
growIfFree()
goIf(.blocked, to: .flank)
goTo(to: .start)
.breach:
captureEnemyCube()
goIf(.enemyCube, to: .pursuit)
goTo(to: .flank)
.pursuit:
trackEnemyStructure()
goIf(.blocked, to: .flank)
captureEnemyCube()
goIf(.enemyCube, to: .pursuit)
captureNeutralCube()
goTo(to: .flank)
.closeCombat:
scanArea(radius: 1)
goIf(.enemyCube, to: .breach)
growIfFree()
goTo(to: .start)
.flank:
captureNeutralCube()
findFreeDirection()
goIf(.blocked, to: .freshStart)
growPreferredDirection()
scanArea(radius: 1)
goIf(.enemyCube, to: .breach)
captureEnemyCube()
goIf(.enemyCube, to: .pursuit)
expandFront()
captureNeutralCube()
goTo(to: .start)
.freshStart:
selectCore()
rotateDirection(steps: 1)
growIfFree()
goTo(to: .start)
.emergencyDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .start)
findFreeDirection()
growPreferredDirection()
captureNeutralCube()
goTo(to: .start)12Aegis Core GuardianInterception net with counterstrike · 66 active commands · HeavyweightCompetitive
Separates offense from defense, clears invading branches and maintains an independent hunting tip.
How the program works
- Without an alert, Select Outermost chooses the signal-facing front for the counterattack.
- New body contact activates the contact closest to the core and follows the invading branch to its end.
- Core ring, counterstrike and flank take over when contact is blocked or a route must be reopened.
.start:
scanBodyContact()
goIf(.bodyContact, to: .coreDefense)
findStrongestSignal()
selectOutermost()
scanDirection(range: 8)
goIf(.enemyCube, to: .breach)
growPreferredDirection()
goIf(.enemyCube, to: .breach)
captureNeutralCube()
captureEnemyCube()
goIf(.enemyCube, to: .hunt)
expandFront()
captureEnemyCube()
goIf(.enemyCube, to: .hunt)
goTo(to: .start)
.coreDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
findFreeDirection()
goIf(.blocked, to: .coreRing)
growPreferredDirection()
captureNeutralCube()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
goTo(to: .start)
.intercept:
trackEnemyStructure()
goIf(.blocked, to: .coreRing)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
goTo(to: .counterstrike)
.coreRing:
selectCore()
scanArea(radius: 1)
goIf(.enemyCube, to: .coreAttack)
growIfFree()
goTo(to: .counterstrike)
.coreAttack:
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
goTo(to: .counterstrike)
.counterstrike:
findStrongestSignal()
selectOutermost()
scanDirection(range: 8)
goIf(.enemyCube, to: .breach)
growPreferredDirection()
goIf(.enemyCube, to: .breach)
captureEnemyCube()
goIf(.enemyCube, to: .hunt)
expandFront()
goTo(to: .start)
.breach:
captureEnemyCube()
goIf(.enemyCube, to: .hunt)
goTo(to: .flank)
.hunt:
trackEnemyStructure()
goIf(.blocked, to: .flank)
captureEnemyCube()
goIf(.enemyCube, to: .hunt)
captureNeutralCube()
goTo(to: .start)
.flank:
captureNeutralCube()
findFreeDirection()
goIf(.blocked, to: .start)
growPreferredDirection()
captureEnemyCube()
goIf(.enemyCube, to: .hunt)
expandFront()
goTo(to: .start)13Nemesis ProtocolAssimilation blitzkrieg · 30 active commands · MiddleweightCompetitive
Trades structural economy for maximum speed with three signal steps, long- and close-range scans and two front expansions.
How the program works
- Three direct growth steps close distance quickly and are each protected by local capture attempts.
- Range 8 and radius 1 combine long-range bearing with close contact.
- Two front expansions with rotation create continuous pressure from changing directions.
.bodyGuard:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
selectNewest()
findStrongestSignal()
growPreferredDirection()
captureEnemyCube()
captureNeutralCube()
growPreferredDirection()
captureEnemyCube()
growPreferredDirection()
captureEnemyCube()
scanDirection(range: 8)
captureEnemyCube()
captureNeutralCube()
scanArea(radius: 1)
captureEnemyCube()
expandFront()
captureEnemyCube()
rotateDirection(steps: 2)
expandFront()
captureEnemyCube()
captureNeutralCube()
goTo(to: .bodyGuard)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .structurePursuit)
goTo(to: .bodyGuard)
.structurePursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .bodyGuard)14Hydra AssimilatorAdaptive marker swarm · 101 active commands · Open classMaximum
An adaptive swarm with phases for long-range hunting, breach, aura close search, marker flanking, recovery and contact defense.
How the program works
- Each new or advancing body contact is defended once; unchanged outer fronts do not block the main loop.
- Direct advance, front expansion and a random arm form three attack routes; confirmed breaches remain trackable for 96 units.
- Core aura opens six-axis scans, blockage opens a marker flank and a failed return route opens the core ring.
.start:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
captureNeutralCube()
selectNewest()
findStrongestSignal()
goIf(.coreAura, to: .aura)
selectOutermost()
growPreferredDirection()
goIf(.anyFinding, to: .flank)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
expandFront()
goIf(.blocked, to: .flank)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
rotateDirection(steps: 1)
growRandomly()
goIf(.blocked, to: .flank)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
goTo(to: .start)
.assimilation:
trackEnemyStructure()
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
captureNeutralCube()
scanArea(radius: 1)
goIf(.coreAura, to: .aura)
selectOutermost()
expandFront()
goIf(.blocked, to: .flank)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
goTo(to: .start)
.aura:
checkNeighbor(direction: .xPlus)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
checkNeighbor(direction: .xMinus)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
checkNeighbor(direction: .yPlus)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
checkNeighbor(direction: .yMinus)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
checkNeighbor(direction: .zPlus)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
checkNeighbor(direction: .zMinus)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
scanArea(radius: 2)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
captureNeutralCube()
expandFront()
goTo(to: .start)
.flank:
captureNeutralCube()
findFreeDirection()
goIf(.blocked, to: .recovery)
growPreferredDirection()
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
setMarker(marker: 1, range: 4)
growToMarker()
goIf(.anyFinding, to: .recovery)
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
goTo(to: .start)
.recovery:
captureEnemyCube()
goIf(.enemyCube, to: .assimilation)
captureNeutralCube()
selectCore()
scanArea(radius: 1)
goIf(.enemyCube, to: .assimilation)
findFreeDirection()
goIf(.blocked, to: .coreRing)
growPreferredDirection()
expandFront()
goTo(to: .start)
.coreRing:
selectCore()
growIfFree(direction: .xPlus)
captureEnemyCube()
captureNeutralCube()
selectCore()
growIfFree(direction: .yPlus)
captureEnemyCube()
selectCore()
growIfFree(direction: .zPlus)
captureEnemyCube()
captureNeutralCube()
goTo(to: .start)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .contactPursuit)
goTo(to: .start)
.contactPursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .start)15Bastion SeraphReactive core fortress · 129 active commands · Open classMaximum
A reactive core fortress with contact interception, a protective ring, core relocation, close combat and a rapid counterstrike.
How the program works
- Scan Body Contact opens defense once for new or advancing attacks; Core Threat remains urgent on every scan.
- After capture, the interception loop keeps the breach active; stabilized contact leads to evasion.
- Without an alert, the fortress selects the signal-facing corner; blockage or core aura opens counterstrike, close combat and core defense.
.start:
scanBodyContact()
goIf(.bodyContact, to: .contactDefense)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
selectNewest()
findStrongestSignal()
goIf(.coreAura, to: .closeCombat)
selectOutermost()
growPreferredDirection()
goIf(.anyFinding, to: .evade)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
scanDirection(range: 6)
goIf(.coreAura, to: .closeCombat)
expandFront()
goIf(.blocked, to: .evade)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
goTo(to: .start)
.intercept:
trackEnemyStructure()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
scanArea(radius: 1)
goIf(.coreAura, to: .closeCombat)
findFreeDirection()
goIf(.blocked, to: .coreDefense)
growPreferredDirection()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
expandFront()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
goTo(to: .counterstrike)
.counterstrike:
selectNewest()
findStrongestSignal()
selectOutermost()
growPreferredDirection()
goIf(.anyFinding, to: .evade)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
growPreferredDirection()
goIf(.anyFinding, to: .evade)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
goTo(to: .start)
.evade:
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
findFreeDirection()
goIf(.blocked, to: .coreDefense)
growPreferredDirection()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
rotateDirection(steps: 1)
expandFront()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
goTo(to: .start)
.closeCombat:
checkNeighbor(direction: .xPlus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
checkNeighbor(direction: .xMinus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
checkNeighbor(direction: .yPlus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
checkNeighbor(direction: .yMinus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
checkNeighbor(direction: .zPlus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
checkNeighbor(direction: .zMinus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
scanArea(radius: 2)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
goTo(to: .counterstrike)
.coreDefense:
selectCore()
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
selectCore()
growIfFree(direction: .xPlus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
selectCore()
growIfFree(direction: .xMinus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
selectCore()
growIfFree(direction: .yPlus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
selectCore()
growIfFree(direction: .yMinus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
selectCore()
growIfFree(direction: .zPlus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
selectCore()
growIfFree(direction: .zMinus)
captureEnemyCube()
goIf(.enemyCube, to: .intercept)
captureNeutralCube()
selectCore()
scanArea(radius: 2)
goIf(.coreAura, to: .closeCombat)
findStrongestSignal()
rotateDirection(steps: 2)
rotateDirection(steps: 1)
findFreeDirection()
goIf(.blocked, to: .start)
moveCore()
goTo(to: .start)
.contactDefense:
activateContactPoint()
captureEnemyCube()
goIf(.enemyCube, to: .contactPursuit)
goTo(to: .start)
.contactPursuit:
trackEnemyStructure()
captureEnemyCube()
goTo(to: .start)Unsure about a line?