Bitfighter  021
The Bitfighter Lua Documentation - Robots, Levelgens, and Plugins
FlagItem Class Reference

Flags are used in many games, such as Nexus and Capture The Flag (CTF).

Inheritance diagram for FlagItem:
MountableItem MoveObject Item BfObject

Member Functions

FlagItem()
 Constructor.
 
FlagItem(pos)
 Constructor. [details]
 
FlagItem(pos, teamIndex)
 Constructor. [details]
 
getAngle()
 Get the items's angle in radians. [details]
 
getCaptureZone()
 Get the zone which "holds" this flag (e.g. in the Retrieve game mode) [details]
 
getFlagCount()
 Returns the number of flags that this flag represents. [details]
 
getGeom()
 Returns an object's geometry. [details]
 
getId()
 Gets an object's user assigned id. [details]
 
getObjType()
 Gets an object's ObjType. [details]
 
getOwner()
 Gets an object's owner as a PlayerInfo. [details]
 
getPos()
 Gets an object's position. [details]
 
getRad()
 Returns the radius of an item. [details]
 
getShip()
 Get the ship carrying this item, if any. [details]
 
getTeamIndex()
 Gets the index of the object's team. [details]
 
getVel()
 Get the items's velocity. [details]
 
isInCaptureZone()
 Is item in a capture zone? [details]
 
isInInitLoc()
 Returns true if the flag is in its starting position, false if it has been moved. [details]
 
isOnShip()
 Is item mounted on a ship? [details]
 
isSelected()
 Determine if an object is selected in the editor. [details]
 
removeFromGame()
 Removes the object from the current game or editor session. [details]
 
setAngle(angle)
 Sets the item's rotation angle. [details]
 
setGeom(geometry)
 Sets an object's geometry. [details]
 
setId(id)
 Sets an object's user assigned id. [details]
 
setOwner(playerName)
 Sets the owner of the object. [details]
 
setPos(pos)
 Set the object's position. [details]
 
setSelected(selected)
 Set whether an object is selected in the editor. [details]
 
setTeam(teamIndex)
 Assigns the object to a team. [details]
 
setVel(vel)
 Sets the item's velocity. [details]
 

Detailed Description

Flags are used in many games, such as Nexus and Capture The Flag (CTF).

Geometry
The geometry of a FlagItem is a point.

Constructor Documentation

◆ FlagItem.new()[1/3]

returns FlagItem

Constructor.

Example:

flagitem = FlagItem.new()
...
levelgen:addItem(flagitem)
Flags are used in many games, such as Nexus and Capture The Flag (CTF).
Definition: flagItem__cpp.h:7

◆ FlagItem.new(pos)[2/3]

Arg types: pos: point  |  returns FlagItem

Constructor.

Example:

flagitem = FlagItem.new(pos)
...
levelgen:addItem(flagitem)

◆ FlagItem.new(pos, teamIndex)[3/3]

Arg types: pos: point, teamIndex: int  |  returns FlagItem

Constructor.

Example:

flagitem = FlagItem.new(pos, teamIndex)
...
levelgen:addItem(flagitem)

Member Function Documentation

◆ getAngle()

Get the items's angle in radians.

Returns
The object's rotation angle in radians

◆ getCaptureZone()

returns Zone

Get the zone which "holds" this flag (e.g. in the Retrieve game mode)

Returns
The zone where the FlagItem is held, or nil if it is not held in a zone.

◆ getFlagCount()

returns int

Returns the number of flags that this flag represents.

This will return 1 for all gametypes except Nexus, where it can be 1 or greater.

Returns
flag count in Nexus, otherwise return 1

◆ getGeom()

Returns an object's geometry.

Returns
A geometry as described on the Geom page

◆ getId()

Gets an object's user assigned id.

Users can assign an id to elements in the editor with the ! or # keys. Use this function to obtain this id. If the user has not assigned an object an id, getId() will return a negative id that will remain consistent throught the game.

Returns
The object's id.

◆ getObjType()

Gets an object's ObjType.

obj = TestItem.new()
print(obj:getObjType() == ObjType.TestItem) -- prints 'true'
ObjType getObjType()
Gets an object's ObjType.
Definition: BfObject__cpp.h:9
Large bouncy ball type item.
Definition: moveObject__cpp.h:41

See ObjType for a list of possible return values.

Returns
The object's ObjType.

◆ getOwner()

Gets an object's owner as a PlayerInfo.

Some objects (like projectiles) have an owning player associated. This method returns a PlayerInfo object if there is an owner. Otherwise, returns nil.

This method is intended to be used with bullets and other projectiles, not with game objects like zones.

Returns
A PlayerInfo representing the object's owner, or nil.

◆ getPos()

Gets an object's position.

For objects that are not points (such as a LoadoutZone), will return the object's centroid.

Returns
A Point representing the object's position.

◆ getRad()

returns num
inherited from Item

Returns the radius of an item.

Returns
The radius of the item. For a Teleporter, this is the radius of the entrance. For a ForceFieldProjector, this is the radius of the base.

◆ getShip()

Get the ship carrying this item, if any.

Returns
The ship this item is mounted to, or nil if item is unmounted.

◆ getTeamIndex()

Gets the index of the object's team.

Many BfObjects (such as TestItems) are never part of any particular team. For these objects, this method will return Team.Neutral.

Note
Remember that in Lua, indices start with 1!
Returns
Team index of the object.

◆ getVel()

Get the items's velocity.

Returns
The velocity as an axis-aligned vector.

◆ isInCaptureZone()

returns bool
inherited from Item

Is item in a capture zone?

Returns
true if item is held in a capture zone, false if it is not.

◆ isInInitLoc()

returns bool

Returns true if the flag is in its starting position, false if it has been moved.

Returns
true if the flag is "at home", false otherwise.

◆ isOnShip()

Is item mounted on a ship?

Returns
true if item is mounted on a ship, false if it is not.

◆ isSelected()

Determine if an object is selected in the editor.

This is useful for editor plugins only.

Returns
Returns true if the object is selected, false if not.

◆ removeFromGame()

returns nothing
inherited from BfObject

Removes the object from the current game or editor session.

May not be implemented for all objects.

◆ setAngle(angle)

Arg types: angle: num  |  returns nothing
inherited from MoveObject

Sets the item's rotation angle.

Set the rotation angle (in radians) of this MoveObject

Parameters
angleA rotation angle in radians

◆ setGeom(geometry)

Arg types: geometry: Geom  |  returns nothing
inherited from BfObject

Sets an object's geometry.

Parameters
geometryThe object's new geometry.

Note that not all objects support changing geometry if the object has already been added to a game.

◆ setId(id)

Arg types: id: int  |  returns nothing
inherited from BfObject

Sets an object's user assigned id.

Users can assign an id to elements in the editor with the ! or # keys. Use this function to set this id from Lua. When called from an editor plugin, the value passed will be displayed in the editor when the player presses ! or #.

◆ setOwner(playerName)

Arg types: playerName: string  |  returns nothing
inherited from BfObject

Sets the owner of the object.

Parameters
playerNameName of player as a string.
Note
This method only works if the item in question has already been added to the game via addItem(object). The owner cannot be set beforehand. Also, 'playerName' must exactly match a the name of a player already in the game (case-sensitive).

This method is intended to be used with bullets and other projectiles, not with game objects like zones.

◆ setPos(pos)

Arg types: pos: point  |  returns nothing
inherited from BfObject

Set the object's position.

To set the full geometry of a more complex object, see the setGeom() method.

Parameters
posThe new position of the object.

◆ setSelected(selected)

Arg types: selected: bool  |  returns nothing
inherited from BfObject

Set whether an object is selected in the editor.

This is useful for editor plugins only.

Parameters
selectedtrue to select the object, false to deselect it.

◆ setTeam(teamIndex)

Arg types: teamIndex: int  |  returns nothing
inherited from BfObject

Assigns the object to a team.

Parameters
teamIndexIndex of the team the object should be assigned to. (first team index is 1; there is no team 0)

Instead of a team index, you can use the special team enums Team.Neutral and Team.Hostile.

Limitations:

  • Will have no effect on items that are inherently teamless (such as a NexusZone).
  • Neither Ships nor Robots can be assigned to Team.Neutral or Team.Hostile.

◆ setVel(vel)

Arg types: vel: point  |  returns nothing
inherited from MoveObject

Sets the item's velocity.

As with other functions that take a point as an input, you can also specify the x and y components as numeric arguments.

Parameters
velA point representing item's velocity.