Package robocode

Class Condition

java.lang.Object
robocode.Condition
Direct Known Subclasses:
GunTurnCompleteCondition, MoveCompleteCondition, RadarTurnCompleteCondition, TurnCompleteCondition

public abstract class Condition extends Object
Condition is used to define custom waitFor(Condition) and custom events for an AdvancedRobot. The code below is taken from the sample robot named sample.Target. See the sample/Target.java for details.
   addCustomEvent(
       new Condition("triggerhit") {
           public boolean test() {
               return (getEnergy() <= trigger);
           };
       }
   );
 
You should note that by extending Condition this way, you are actually creating an inner class -- so if you distribute your robot, there will be multiple class files. (i.e. Target$1.class)
Author:
Mathew A. Nelson (original), Flemming N. Larsen (contributor), Nathaniel Troutman (contributor)
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    The name of this condition.
    int
    The priority of this condition.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new, unnamed Condition with the default priority, which is 80.
    Creates a new Condition with the specified name, and default priority, which is 80.
    Condition(String name, int priority)
    Creates a new Condition with the specified name and priority.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Called by the system in order to clean up references to internal objects.
    Returns the name of this condition.
    final int
    Returns the priority of this condition.
    void
    setName(String newName)
    Sets the name of this condition.
    void
    setPriority(int newPriority)
    Sets the priority of this condition.
    abstract boolean
    Overriding the test() method is the point of a Condition.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • priority

      public int priority
      The priority of this condition. Defaults to 80.
    • name

      public String name
      The name of this condition.
  • Constructor Details

    • Condition

      public Condition()
      Creates a new, unnamed Condition with the default priority, which is 80.
    • Condition

      public Condition(String name)
      Creates a new Condition with the specified name, and default priority, which is 80.
      Parameters:
      name - the name for the new Condition
    • Condition

      public Condition(String name, int priority)
      Creates a new Condition with the specified name and priority. A condition priority is a value from 0 - 99. The higher value, the higher priority. The default priority is 80.
      Parameters:
      name - the name for the new condition
      priority - the priority of the new condition
  • Method Details

    • getName

      public String getName()
      Returns the name of this condition.
      Returns:
      the name of this condition
    • getPriority

      public final int getPriority()
      Returns the priority of this condition. A condition priority is a value from 0 - 99. The higher value, the higher priority. The default priority is 80.
      Returns:
      the priority of this condition
    • setName

      public void setName(String newName)
      Sets the name of this condition.
      Parameters:
      newName - the new name of this condition
    • setPriority

      public void setPriority(int newPriority)
      Sets the priority of this condition. A condition priority is a value from 0 - 99. The higher value, the higher priority. The default priority is 80.
      Parameters:
      newPriority - the new priority of this condition.
    • test

      public abstract boolean test()
      Overriding the test() method is the point of a Condition. The game will call your test() function, and take action if it returns true. This is valid for both AdvancedRobot.waitFor(robocode.Condition) and AdvancedRobot.addCustomEvent(robocode.Condition).

      You may not take any actions inside of test().

      Returns:
      true if the condition has been met, false otherwise.
    • cleanup

      public void cleanup()
      Called by the system in order to clean up references to internal objects.
      Since:
      1.4.3