Artillery Goal

* /bot goal\_create artillery\_s <name>
	+ optionally use artillery\_d instead
* /bot goal\_finish
* go to the location the bots should call artillery from
* /bot goal\_create callartillery <name>
* /bot goal\_finish
* /bot tracearty when next to the call artillery goal to make sure the target is in view
	+ may require a goal\_save and map\_restart

## Detailed Instructions

#### Description

CallArtillery has the bots call in artillery from a given location. This goal requires that a valid target goal is active.
#### Setup

See the Fastrack example at the top of the page for an example setup.
##### artillery\_d vs artillery\_s

artillery\_d targets mean that the bot will dynamically choose whether or not to call the artillery. This is based on whether or not bot can see any enemies approaching the location of the target spot. artillery\_s targets mean that the bot will statically call the artillery; meaning that they will always call it.
Tip: /bot goal\_move toplayer true will move a goal to a player without grounding it. this is useful for target goals that you may want to keep in the air
Note: Distance between artillery\_d and callartillery goals must be less than 2600, otherwise bots at easy difficulty will never call artillery.
Note: Properties Stance, MinCampTime, MaxCampTime are ignored if target goal is artillery\_s.
#### Properties

Properties can be set with the goal\_setproperty command assuming that the goal has been selected.
##### stance

Set the stance the bot should assume while performing this action if target goal is artillery\_d.

**syntax:** /bot goal\_setproperty stance <string stance>
**example:** /bot goal\_setproperty stance crouch
**values:** stand crouch prone
##### group

A group is a method of organizing sets of goals. One advantage to this is that all goals in a group can be enabled or disabled in one line of script rather than seperate goal types requiring additional lines to enable or disable them. Assigning roles to a group is also possible as an alternative to assigning each individual goal a role.

**syntax:** /bot goal\_setproperty group <string groupName>
**example:** /bot goal\_setproperty group myGroup
##### mincamptime

MinCampTime defines the minimum amount of time in seconds a bot will spend at a camp spot if target goal is artillery\_d.

**syntax:** /bot goal\_setproperty mincamptime <float seconds>
**example:** /bot goal\_setproperty mincamptime 15.0
**default:** 1.0 seconds
##### maxcamptime

MaxCampTime defines the maximum amount of time in seconds a bot will spend at a camp spot if target goal is artillery\_d.

**syntax:** /bot goal\_setproperty maxcamptime <float seconds>
**example:** /bot goal\_setproperty maxcamptime 30.0
**default:** 2.0 seconds
**note:** consider increasing this time a bit if targeting artillery\_d
##### tagname

Sets the name of the goal. This can optionally be set when passed as the optional parameter in the goal\_create command. Useful for renaming goals.

**syntax:** /bot goal\_setproperty tagname <string name>
**example:** /bot goal\_setproperty tagname myGoalName
##### role

See the section on bot roles.

**syntax:** /bot goal\_setproperty role <role mask>
**example:** /bot goal\_setproperty role 1
##### radius

Set the radius for the goal.

**syntax:** /bot goal\_setproperty radius <int>
**example:** /bot goal\_setproperty radius 64

#### Verifying target locations

A common issue with bots not using CallArtillery goals is that there is no target within line of site of the arty spot. To quickly verify that a target position is useable, stand next to the arty spot and issue the /bot tracearty command. This will result in traces being run to all arty target goals as shown in the picture below. The console will also output successful and failed traces by goal name.
File:Tracearty.jpg