08 Grid Move

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.
  • 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 > Set Grid Cell Combatant

We’ll set the combatant to registered 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.