In this tutorial we’ll set up the grid move command.
The grid move command lets a combatant move on the battle grid – players can select the cell to move to, AI controlled combatants handle this via the battle AI. Both use the same schematic to actually handle the movement. The move range on the grid will be based on the combatant’s agility (using a formula).
We’ll set up:
- grid move schematic
- move range formula
- move command (battle grid settings)
Let’s get to it!
Grid Move Schematic #
Like other battle actions, we’ll animate the grid move using a schematic. The grid move action provides the path from the user’s current position to the target position, we’ll simply go through this path cell by cell, moving from cell to cell.
Navigate to Schematics and start working on a new schematic.
Check Grid Path Length #
Add Node > Battle > Grid Path > Check Grid Path Length
We’ll first check if there even is a grid path, i.e. if it’s length is greater than 0.
- Check Type
Select Is Greater. - Check Value
Select Value > Value.
Set the value to 0.
Store Grid Path #
Add Node > Battle > Grid Path > Store Grid Path
This node is used to store a cell from the path into selected data – you can either store the whole path, the next or last cell.
We’ll store the next cell on the path and also remove the cell from the path, so that we can later continue with the next cell after this one.
- Data Key
Set to cell. - Data Origin
Select Local. - Change Type
Select Set. - Cell Selection
Select Next. - Remove Cell
Enable this setting.
Change Position #
Add Node > Movement > Movement > Change Position
We’ll now move the user (Machine Object) to the stored cell.
- Object (Moving Object)
Select Machine Object. - Move Component
Select Combatant Movement Component.
This’ll use the movement component we’ve set up for our combatant, i.e. the Default one using Rigidbody2D for movement. - To Object
Enable this setting. - Object
Select Selected Data. - Data Key
Set to cell. - Data Origin
Select Local.
We’ll move to the cell instead of setting directly to the position.
- Move
Enable this setting. - Wait
Enable this setting.
We wait for the movement to finish before continuing. - Face Direction
Enable this setting.
We’ll rotate into the direction we move into (so that our directional animations are correct). - Rotate Component
Select Transform. - Rotate Function
Select Set.
Directly sets the rotation. - Is 2D Look At
Enable this setting.
2D looking rotations are a bit different than 3D, this option makes sure it’s correct. - Move By Speed
Disable this setting.
We’ll interpolate to the new position. - Time
Select Value > Value.
Set the value to 0.25.
Set Grid Cell Combatant #
Add Node > Battle > Grid Cell > Set Grid Cell Combatant
We’ll register combatant on the cell we just moved to – this’ll update the combatant’s cell highlight.
- Object (Combatant Settings)
Select Machine Object. - Set As
Select Move.
This’ll register the combatant as moving on the cell.
In case another combatant is already on the cell, it’ll not replace it. - Object (Grid Cell Settings)
Select Selected Data. - Data Key
Set to cell. - Data Origin
Select Local.
Check Grid Path Length #
Copy the first Check Grid Path Lengt node.
We’re done with our move to the next cell, so we’ll check if we finished the path.
Grid Cell Event #
Add Node > Battle > Grid Cell Event > Grid Cell Event
We don’t use grid cell events in our tutorial, but it’s always good to have them included in your grid move in case you later add them.
Grid cell events allow to perform certain things when a combatant moves over or moves to a cell, or starts/ends their turn on a cell. E.g. you can change status effects, use schematics or an ability on the combatant.
This node is connected to the Success slot of the previous Check Grid Path Length node, i.e. we still have some of the path left to go.
The Next slot of this node is connected back to the Store Grid Path node.
- Start Type
Select Move Over.
We’re continuing on the path, i.e. we move over this cell. - Wait
Enable this setting. - Object (Cell Object)
Select Selected Data. - Data Key
Set to cell. - Data Origin
Select Local. - Object (Combatant)
Select Machine Object.
Grid Cell Event #
Copy the previous Grid Cell Event.
This node is connected to the Failed slot of the previous Check Grid Path Length node, i.e. we’re done with our move.
- Start Type
Select Move To.
We’re done with the path, i.e. we move to this cell.
Wait #
Add Node > Base > Wait
We’ll wait for a short time, just to slow things down a bit.
- Time
Select Value > Value.
Set the value to 0.5.
And that’s it for the schematic. Click on Save Schematic to save it, e.g. as GridMove.
Move Range Formula #
Next, we’ll set up a formula to calculate the grid move range of a combatant.
It’ll be a simple formula – we divide the combatant’s agility by 8 and add a base move range of 4 to it (and round the result).
Navigate to Game > Formulas and add a new formula.
Formula Settings #
We’ll limit the move range t0 20 (cells), we handle this via the maximum value of the formula.
- Name
Set to Move Range. - Use Maximum Value
Enable this setting. - Maximum Value
Select Value > Value.
Set the value to 20.
Status Value #
Add Node > Combatant > Status Value
We add the agility of the user.
- StatusValue
Select Agility.
Value #
Add Node > Value > Value
We now divide by 8.
- Operator
Select Divide. - Value
Select Value > Value.
Set the value to 8.
Value #
Add Node > Value > Value
Add 4 for our base move range.
- Operator
Select Add. - Value
Select Value > Value.
Set the value to 4.
Math Function #
Add Node > Base > Math Function
This node is used to use a defined math function on the formula’s result.
We’ll use it to round the current value, e.g. 5.4 will become 5, 5.6 will become 6.
- Math Function
Select Round.
Battle Grid Settings #
We’re now ready to set up the actual grid move command.
Navigate to Battles > Battle Grid Settings.
Move Command #
- Use Only Once
Enable this setting. - Player (Use Only Once)
Disable this setting.
Player combatants can use grid movement as long as they have move range left.
Keep the others enabled, i.e. enemies can only move once. - Allow Cancel
Enable this setting. - Use Shortest Path
Enable this setting. - Move Over Allies
Enable this setting.
Combatants can move over the cells that are occupied by their allies. - Default Move Range
Select Value > Formula.
Select the Move Range formula we just set up. - Camera Control Target
Enable this setting.
The camera will target the selected cell during the grid move cell selection.
Default Battle Animation #
This is where we set up our grid move schematic – combatants can optionally override the default animation.
Click on Add Battle Animation.
- Schematic Asset
Select the GridMove schematic.
Save Changes #
And that’s it for the grid move command.
Don’t forget to save your changes by clicking on Save Settings at the bottom of the editor.
Next, we’ll set up a battle grid in the forest battle scene.