AntRunner.Interface - GimpArm/AntRunner GitHub Wiki
Ant
Base class for every ant, inherit from this class to create an ant.
public abstract class AntRunner.Interface.Ant
Examples
C#
public class AwesomeAnt : Ant
{
//Your code here
}
PHP
Note: The Namespace in PHP is AntRunner_Interface
because Interface is a keyword.
class AwesomeAnt extends \AntRunner_Interface\Ant {
//Your code here
}
JavaScript
Note: Due to the structure of Node modules, everything is in the AntRunner
namespace and Interface does not exist.
module.exports.default = (function () {
var YourAnt = function() {
//Your code here
};
return YourAnt;
}());
Python
class AwesomeAnt(AntRunner.Interface.Ant):
#Your code here
Ruby
class AwesomeAnt < AntRunner::Interface::Ant
#Your code here
end
TypeScript
Note: Due to the structure of Node modules, everything is in the AntRunner
namespace and Interface does not exist.
export default class ExampleAnt extends AntRunner.Ant {
//Your code here
}
Fields
Name | Type Summary | |
---|---|---|
Action | AntAction |
Action which will be performed for the end of the current tick cycle. Will be set to Wait after being read. |
Properties
Note: When not using a .NET assembly, the flag will be read from the Flag.png
file in the same folder as the loaded script.
Name | Type | Summary | Example |
---|---|---|---|
Flag | Stream |
Overridable Stream to return binary data for use by BitmapFrame.Create() of the ant's Flag. | public override Stream Flag => typeof(Ant).Assembly.GetManifestResourceStream("AwesomeAnt.Flag.png"); |
FlagResource | String |
Overridable string to return the name of an embedded resource for use the ant's Flag. Ignored if Flag is overridden. | public override string FlagResource => "AwesomeAnt.Flag.png"; |
Name | String |
Readonly property for the name of the ant. | public override string Name => "Awesome Ant"; |
Methods
Name | Return Type | Summary |
---|---|---|
Initialize(Int32 mapWidth, Int32 mapHeight, ItemColor antColor, Int32 startX, Int32 startY) |
void |
Initialize method called once before the start of each game. |
Tick(GameState state) |
void |
Method called to begin processing for each turn. |
Initialize Example
C#
public override void Initialize(int mapWidth, int mapHeight, ItemColor antColor, int startX, int startY)
{
_mapWidth = mapWidth;
_mapHeight = mapHeight;
_myColor = antColor;
_currentX = startX;
_currentY = startY;
}
JavaScript
YourAnt.prototype.Initialize = function(mapWidth, mapHeight, color, startX, startY) {
this.MapWidth = mapWidth;
this.MapHeight = mapHeight;
this.MyColor = color;
this.CurrentX = startX;
this.CurrentY = startY;
};
PHP
public function Initialize($mapWidth, $mapHeight, $antColor, $startX, $startY) {
$this->MapWidth = $mapWidth;
$this->MapHeight = $mapHeight;
$this->MyColor = $antColor;
$this->CurrentX = $startX;
$this->CurrentY = $startY;
}
Python
def Initialize(self, mapWidth, mapHeight, color, startX, startY):
self.MapWidth = mapWidth
self.MapHeight = mapHeight
self.MyColor = color
self.CurrentX = startX
self.CurrentY = startY
Ruby
def Initialize(mapWidth, mapHeight, color, startX, startY)
@MapWidth = mapWidth
@MapHeight = mapHeight
@MyColor = color
@CurrentX = startX
@CurrentY = startY
end
TypeScript
public Initialize(mapWidth: number, mapHeight: number, color: ItemColor, startX: number, startY: number) {
this.mapWidth = mapWidth;
this.mapHeight = mapHeight;
this.myColor = color;
this.currentX = startX;
this.currentY = startY;
}
Tick Example
C#
public override void Tick(GameState state)
{
//Do Stuff
Action = AntAction.MoveRight;
}
JavaScript
YourAnt.prototype.Tick = function(state) {
//Do Stuff
this.Action = AntAction.Wait;
};
PHP
public function Tick(GameState $state) {
//Do Stuff
$this->Action = AntAction::Wait;
}
Python
def Tick(self, state):
#Do Stuff
self.Action = AntAction.Wait
Ruby
def Tick(state)
#Do Stuff
@Action = AntAction::Wait
end
TypeScript
public Tick(state: GameState) {
//Do Stuff
this.Action = AntAction.Wait;
}
AntAction
Enum of available actions an ant can make per tick.
public enum AntRunner.Interface.AntAction
: Enum, IComparable, IFormattable, IConvertible
Enum
Name | Value | Summary |
---|---|---|
Wait | 0 |
Ant does nothing. |
MoveRight | 1 |
Ant attempts to move one space to the right. |
MoveDown | 2 |
Ant attempts to move one space below. |
MoveLeft | 3 |
Ant attempts to move one space to the left. |
MoveUp | 4 |
Ant attempts to move one space above. |
EchoRight | 5 |
Ant performs an echo to the right. The response will come in the GameState of the next Tick() call. See AntRunner.Interface.EchoResponse |
EchoDown | 6 |
Ant performs an echo below. The response will come in the GameState of the next Tick() call. See AntRunner.Interface.EchoResponse |
EchoLeft | 7 |
Ant performs an echo to the left. The response will come in the GameState of the next Tick() call. See AntRunner.Interface.EchoResponse |
EchoUp | 8 |
Ant performs an echo above. The response will come in the GameState of the next Tick() call. See AntRunner.Interface.EchoResponse |
ShieldOn | 9 |
Ant turns on its shield if it has any. For every 4 ticks the shield is on, it will lose 1 point. |
ShieldOff | 10 |
Ant turns off its shield. |
DropBomb | 11 |
Ant drops a bomb at the current position if it has any. |
ShootRight | 12 |
Ant shoot its laser in a straight line to the right. |
ShootDown | 13 |
Ant shoot its laser in a straight line below. |
ShootLeft | 14 |
Ant shoot its laser in a straight line to the left. |
ShootUp | 15 |
Ant shoot its laser in a straight line above. |
DamageValues
Static class of constant values used when assigning damage to an ant.
public static class AntRunner.Interface.DamageValues
Static Fields
Name | Value | Summary |
---|---|---|
Bomb | 30 |
Damage applied when an ant steps on a bomb. |
Collision | 5 |
Damage applied when an ant runs into an object. |
Impact | 10 |
Damage applied when an ant is run into or rammed by another ant. |
Shot | 20 |
Damage applied when an ant is shot with a laser. |
EchoResponse
Response item when an Echo action is made.
public class AntRunner.Interface.EchoResponse
Properties
Name | Type | Summary |
---|---|---|
Distance | Int32 |
How many squares away is the item. |
Item | Item |
What item is there. Map edges always return Item.SteelWall . |
GameEvent
Enum flags of possible events that can occur as a result of all ants' GameAction. Multiple events may occur at once.
public enum AntRunner.Interface.GameEvent
: Enum, IComparable, IFormattable, IConvertible
Enum
Name | Value | Summary |
---|---|---|
Nothing | 0 |
Nothing has occurred. |
CollisionDamage | 1 |
Ant ran into an object when it attempted to move and incurred damage. The move was unsuccessful and the ant remains at its current location. See AntRunner.Interface.DamageValues.Collision |
ImpactDamageRight | 2 |
Another ant ran into or rammed the ant from the right and incurred damage. See AntRunner.Interface.DamageValues.Impact |
ImpactDamageDown | 4 |
Another ant ran into or rammed the ant from below and incurred damage. See AntRunner.Interface.DamageValues.Impact |
ImpactDamageLeft | 8 |
Another ant ran into or rammed the ant from the left and incurred damage. See AntRunner.Interface.DamageValues.Impact |
ImpactDamageUp | 16 |
Another ant ran into or rammed the ant from above and incurred damage. See AntRunner.Interface.DamageValues.Impact |
ShotDamageRight | 32 |
Ant was shot by a laser and incurred damage from the right. See AntRunner.Interface.DamageValues.Shot |
ShotDamageDown | 64 |
Ant was shot by a laser and incurred damage from below. See AntRunner.Interface.DamageValues.Shot |
ShotDamageLeft | 128 |
Ant was shot by a laser and incurred damage from the left. See AntRunner.Interface.DamageValues.Shot |
ShotDamageUp | 256 |
Ant was shot by a laser and incurred damage from above. See AntRunner.Interface.DamageValues.Shot |
BombDamage | 512 |
Ant walked over a bomb and incurred damage. See AntRunner.Interface.DamageValues.Bomb |
PickUpBomb | 1024 |
Ant picked up a Bomb Power-up. See AntRunner.Interface.ItemBonusValues.Bomb |
PickUpShield | 2048 |
Ant picked up a Shield Power-up. See AntRunner.Interface.ItemBonusValues.Shield |
PickUpHealth | 4096 |
Ant picked up a Health Power-up. See AntRunner.Interface.ItemBonusValues.Health |
PickUpFlag | 8192 |
Ant picked up the Flag. Run to the correct color home! When you pick up the flag then all other ants know exactly where you are. |
Dead | 16384 |
Ant has died and will no longer be getting Tick() calls. |
GameOver | 32768 |
The game is over, either an ant successfully retrieved the flag or all ants have died. |
GameState
public struct AntRunner.Interface.GameState
Properties
Name | Type | Summary |
---|---|---|
AntWithFlag | ItemColor |
If an ant has the flag, this is the color of that ant. If no ants have the flag then this value is ItemColor.None. |
Event | GameEvent |
Flag enum of which events occurred due to the previous Tick GameAction. |
FlagX | Int32 |
If an ant has the flag, this is their current X position on the map. If no ants have the flag then this value is -1. |
FlagY | Int32 |
If an ant has the flag, this is their current Y position on the map. If no ants have the flag then this value is -1. |
HasFlag | Boolean |
Boolean value if an ant has the flag. You should try to prevent this ant from reaching its home. |
Response | EchoResponse |
Echo response of the previous Tick GameAction. If previous Tick was not an echo action then this is null. See AntRunner.Interface.AntAction.EchoRight AntRunner.Interface.AntAction.EchoLeft AntRunner.Interface.AntAction.EchoUp AntRunner.Interface.AntAction.EchoDown |
TickNumber | Int64 |
Long value of the tick turn, starts with 0 and each Tick() call is increased by 1. See AntRunner.Interface.Ant.Tick(AntRunner.Interface.GameState) |
Item
Enum of possible items on a map position.
public enum AntRunner.Interface.Item
: Enum, IComparable, IFormattable, IConvertible
Enum
Name | Value | Summary |
---|---|---|
Empty | 0 |
Nothing at all, aka empty. |
SteelWall | 1 |
Unbreakable steel wall. |
BrickWall | 2 |
Brick wall which may be destroyed with a laser shot. There is a 25% chance a power-up will come from shooting this. |
Bomb | 3 |
Bomb that will damage the ant if stepped on. Can be shot with the laser to destroy. See AntRunner.Interface.DamageValues.Bomb |
PowerUpBomb | 4 |
Bomb Power-up, adds bombs to the ant's inventory. See AntRunner.Interface.ItemBonusValues.Bomb |
PowerUpHealth | 5 |
Health Power-up, adds more health level to the ant, maximum 100. See AntRunner.Interface.ItemBonusValues.Health |
PowerUpShield | 6 |
Shield Power-up, adds more shield level to the ant, maximum 100. See AntRunner.Interface.ItemBonusValues.Shield |
RedAnt | 7 |
The red ant. |
BlueAnt | 8 |
The blue ant. |
GreenAnt | 9 |
The green ant. |
OrangeAnt | 10 |
The orange ant. |
PinkAnt | 11 |
The pink ant. |
YellowAnt | 12 |
The yellow ant. |
GrayAnt | 13 |
The gray ant. |
WhiteAnt | 14 |
The white ant. |
RedHome | 15 |
The home for the red ant. |
BlueHome | 16 |
The home for the blue ant. |
GreenHome | 17 |
The home for the green ant. |
OrangeHome | 18 |
The home for the orange ant. |
PinkHome | 19 |
The home for the pink ant. |
YellowHome | 20 |
The home for the yellow ant. |
GrayHome | 21 |
The home for the gray ant. |
WhiteHome | 22 |
The home for the white ant. |
Flag | 23 |
The flag, pick this up and bring it to the correct color home. |
ItemBonusValues
Static class of constant values used when assigning power-ups to an ant.
public static class AntRunner.Interface.ItemBonusValues
Static Fields
Name | Value | Summary |
---|---|---|
Bomb | 4 |
Amount of bombs added to an ant's inventory when a bomb power-up is acquired. See AntRunner.Interface.Item.PowerUpBomb |
Health | 25 |
Amount of health that is restored when a health power-up is acquired. See AntRunner.Interface.Item.PowerUpHealth |
Shield | 25 |
Amount of shield that is restored when a shield power-up is acquired. See AntRunner.Interface.Item.PowerUpShield |
ItemColor
Enum of the available ant and home colors.
public enum AntRunner.Interface.ItemColor
: Enum, IComparable, IFormattable, IConvertible
Enum
Name | Value | Summary |
---|---|---|
None | 0 |
No color at all. Note: in Python this is None_ due to None being a keyword |
Red | 1 |
Color for the RedAnt and RedHome |
Blue | 2 |
Color for the BlueAnt and BlueHome |
Green | 3 |
Color for the GreenAnt and GreenHome |
Orange | 4 |
Color for the OrangeAnt and OrangeHome |
Pink | 5 |
Color for the PinkAnt and PinkHome |
Yellow | 6 |
Color for the YellowAnt and YellowHome |
Gray | 7 |
Color for the GrayAnt and GrayHome |
White | 8 |
Color for the WhiteAnt and WhiteHome |