Home
Documents
CCL

SECTION 6 - USING THE COMMUNICATIONS LINK

The cybertank Communications Link (Commlink), a special device which can purchased in the Chassis Design Module (COM), enables communication between cybertanks on the same team. When using cybertanks in the Team mode, it is often useful to transmit various data or instructions to other members of the team. Effective use of the Commlink aids in the performance of complicated tactical maneuvers by a team of cybertanks.

6.1 TURNING THE COMMLINK ON AND OFF

COMMAND STRUCTURE

1 cyc

Switch [CommLink] On

1 cyc

Switch [CommLink] Off

SYSTEM VARIABLES AFFECTED

  • None

EXAMPLE USAGE

CheckBase
   Scan for Enemy HQ
   If Enemy HQ was Found Then TellTeam
   Resume

TellTeam
   Switch CommLink On
   Transmit Code 1 To Team
   Switch CommLink Off
   Resume
The above commands switch your cybertank’s CommLink on and off. When on, your cybertank can send and receive team member transmissions. When off, your cybertank’s CommLink can neither send nor receive transmissions

6.2 TRANSMITTING AND RECEIVING ON THE COMMLINK

COMMAND STRUCTURE

1 cyc

Transmit [Code] “#” [To Team]

1 cyc Clear [CommLink] Data
1 cyc Copy [CommLink] Data

SYSTEM VARIABLES AFFECTED

  • AllyNum
  • AllyCode
  • AllyEnemyX
  • AllyEnemyY
  • AllyX
  • AllyY
  • AllyDist
  • AllyDir
  • AllyEnemyDist
  • AllyEnemyDir
  • CopyX
  • CopyY
  • CopyDist
  • CopyDir
  • CopyNum
  • CopyCode
  • CopyEnemyX
  • CopyEnemyY
  • CopyEnemyDist
  • CopyEnemyDir
(For a complete description of these System Variables, see Appendix 2.)

EXAMPLE USAGE

CheckComm
   If AllyCode <> then CodeHere
   Clear CommLink
   Branch to CheckComm

CodeHere
   Switch CommLink Off
   Copy CommLink Data
   Switch CommLink On
   If CopyCode = 1 Then EnemyFound
   If CopyCode = 2 Then BaseFound
   Resume
The three commands listed above are essential in the operation of the Commlink. By transmitting various codes, a team of cybertanks can consolidate its forces and knowledge, forming a colossal army. The code actually transmitted via CommLink can range from 0 to 100. Cybertanks on a team have the option of ignoring any signal transmitted. For example, if the third cybertank on a team sends a code of 7, which all members of the team have designated as a distress call, any cybertank on the team can either ignore the distress call or speed to the rescue.
It is important to remember that all incoming transmissions update all of the System Variables in the Commlink (only if your cybertank’s Commlink is switched on). To effectively use the Commlink as a receiver, a cybertank should:
  1. After checking the ‘“AllyCode”, turn off the Commlink with the Switch Commlink Off command.
     
  2. Use the Copy Commlink Data command to establish a copy of all transmitted variables
     
  3. Use the Switch Commlink On command to re-establish communications.
When the Copy CommLink command is executed, all of the System Variables within the Commlink are copied over to the “Copy...” System Variables. All of the new copied System Variables begin with the word “Copy” and should be used in any subsequent Al commands. Based upon the above distress call, a cybertank which is instructed to attempt a rescue should do the following:
  1. Check to see if the System Variable "AllyCode" equals 7.
     
  2. If "AllyCode" is 7, then Switch CommLink Off to prevent any incoming transmissions which would overwrite the needed System Variables.
     
  3. Use the Copy CommLink Date command to make a copy of the needed System Variables.
     
  4. Switch CommLink On to allow the checking of new incoming transmissions. This allows the cybertank to change its duties based upon new information. For example, the discovery of enemy headquarter’s by another team member may be more important than saving the team member in distress. Remember, as the Al designer, it is up to you to determine your cybertank’s priorities
     
  5. use the “Copy...” System Variables (CopyX, CopyY, etc.) to home in on the team member in distress.
The above, written in CCL, would resemble the following:
Checkcomm
* An AllyCode of 7 means team-member being attacked
* An Allycode of 1 means enemy HQ found

   If AllyCode = 7 then Branch To Rescue
   If AllyCode = 1 then Branch To FoundHQ
   Resume

Rescue
* The cybertank now knows that a team-member is being
* attacked.

   Switch CommLink Off
   Copy CommLink Data
   Switch CommLink On

* The CommLink is turned off to ensure that new incoming
* transmissions do not over-write the current values in the
* CommLink. The CommLink data is copied into another set
* of System Variables that are NOT over-written by incoming
* CommLink transmissions. It is this second set of System
* Variables that is used in subsequent Al commands. The
* CommLink is turned back on so that the cybertank can
* continue monitoring in case a more important transmission
* is received (like the Enemy HQ being found).

GoToTank
* This small routine moves the cybertank toward the team-
* member that sent the distress signal. Since the Copy
* CommLink Data command was issued, the System Variables
* CopyX and CopyY are used as the cybertank’s destination.
* Along the way, the cybertank continues checking the
* AllyCode System Variable in the CommLink to see if any
* team-member has found the enemy HQ.

   Turn Tank to CopyX CopyY
   Detect Obstruction at TankDir
   If Movement Is Not Obstructed Then Branch To Move
   Fire Weapon at TankDir

Move
   Move Tank Forward 1

* Now, check to see if anyone has found the enemy HQ

   If AllyCode = 1 then Branch To FoundHQ

* Now, check to see if the cybertank is at its destination

   If TankX <> CopyX Then Branch To GoToTank
   If TankY <> CopyY Then Branch To GoToTank

* If at destination, then return to the main Al

   Resume

FoundHQ
* If the enemy HQ was found, the cybertank should perform the
* same procedure as when moving to a team-member in
* distress

   Switch CommLink Off
   Copy CommLink Data
   Switch CommLink On
   Branch To GoToHQ

* Now, the cybertank is free to use the "Copy..." System
* Variables to proceed to the team-member which found
* the enemy HQ. Since this routine is a great deal like the
* GoToTank routine used above, we will just assume the
* routine is written and is called GoToHQ.

Toadstool's Home | Contact © 2003 Toadstool's Game Shrines. All Rights Reserved.