Side stairs

This page describes how to design **stairs that go left/right up the side of cliffs**.

## Side stairs

When going up side stairs, the player will move up the screen (and down when they descend the stairs) in addition to moving across. For every tile of stairs the player passes sideways, they should also move up/down on the screen by 1 tile (i.e. they move diagonally on stairs). They will need to remain facing left/right, though. To ensure that they move correctly, you will need to create events that move the player in the right direction.

The instructions on how to do this are a little different depending on how deep the stairs are. For example, the screenshot above shows stairs one tile deep (left) and two tiles deep (right).

It is not recommended to have a continuous flight of side stairs that is more than two tiles deep, as stair tiles are typically drawn to appear that they only go up/down *half a tile* as they go across one tile. If the player is made to go up a long flight of side stairs, then because they are moving diagonally they will end up further up the screen than they should, and this wouldn't look right.

## One tile deep stairs

The following diagram is a sketch of some side stairs that are one tile deep:

```
............|------------
............|------------
lower.......A------higher
ground......A------ground
............|------------
............|------------

```

"A" represents an event. This event sets how the player moves as they walk over it. The event should be set to trigger upon Player Touch, and have the following contents:

```
@>Conditional Branch: Player is facing Left
  @>Set Move Route: Player
   :              : $>Direction Fix ON
   :              : $>Move Lower Left
   :              : $>Direction Fix OFF
  @>
 : Else
  @>Set Move Route: Player
   :              : $>Direction Fix ON
   :              : $>Move Upper Right
   :              : $>Direction Fix OFF
  @>
 : Branch End

```

When the player walks into the event, the event will move them diagonally in a direction depending on which way they are facing (i.e. if they are facing left, then the player should move down the stairs). The player will end up standing on the tile just after the stairs (i.e. on flat ground), and if they immediately turn around to go back, they will walk into the stair event again and move accordingly.

## Two tile deep stairs

The following diagram is a sketch of some side stairs that are two tiles deep:

```
............||------------
............||------------
lower.......|B------higher
ground......AB------ground
............A|------------
............||------------

```

There are two different events here: "A" and "B". Both are set to trigger upon Player Touch, but they have different contents.

The "A" events have the following contents:

```
@>Set Move Route: Player
 :              : $>Direction Fix ON
 :              : $>Move Upper Right
 :              : $>Move Right
 :              : $>Direction Fix OFF

```

The "B" events have the following contents:

```
@>Set Move Route: Player
 :              : $>Direction Fix ON
 :              : $>Move Lower Left
 :              : $>Move Left
 :              : $>Direction Fix OFF

```

These events will force the player to walk up/down the whole stretch of stairs, and will not allow them to stop halfway up. Note that the player moves one tile vertically, just like they do if the stairs are one tile deep. This is to compensate for the half-tile effect mentioned above.

## Three or more tile deep stairs

The following diagram is a sketch of some side stairs that are three tiles deep:

```
............|||------------
............||A------------
lower.......||A------higher
ground......A||------ground
............A||------------
............|||------------

```

There is one type of event here, which is set to trigger upon Player Touch and contains the following:

```
@>Conditional Branch: Player is facing Left
  @>Set Move Route: Player
   :              : $>Through ON
   :              : $>Direction Fix ON
   :              : $>Move Lower Left      -- Repeat this command depending on depth of side stairs
   :              : $>Move Left
   :              : $>Direction Fix OFF
   :              : $>Through OFF
  @>
 : Else
  @>Set Move Route: Player
   :              : $>Through ON
   :              : $>Direction Fix ON
   :              : $>Move Upper Right     -- Repeat this command depending on depth of side stairs
   :              : $>Move Right
   :              : $>Direction Fix OFF
   :              : $>Through OFF
  @>
 : Branch End

```

The same principle applies to all lengths of stairs beyond those that are three tiles deep. Note that each event at the top of the stairs is always diagonal to the corresponding event at the bottom.

As mentioned above, it is not recommended that you have side stairs more than two tiles deep, as the incorrect movement compared to the stair tiles will become obvious.