Plan for battle formation improvements

From OHRRPGCE-Wiki
Jump to navigation Jump to search

The status quo[edit]

The current battle formation data (as documented in FOR) is simply a collection of 8 positions for right-facing enemies, plus data for music and background.

Some Goals[edit]

Everything here is just an idea. These things would all need to be optional, and implemented in ways that would allow old battles to continue to work the same as they did originally, if the game author is not interested in taking advantage of the new features.

  • More enemies per formation
  • Store bottom-center position of each slot instead of top left corner
    • Old formations need to store positions in old way, or spawning positions could break
    • Fix handling of non-default-sized enemy sprites by add enemy to formation, formation slot x, formation slot y: unlike the formation editor, they were never updated, so the X/Y values they use aren't the actual bottom-center coords and don't match values displayed in the formation editor.
    • Could also add z coordinate to everything!
  • stat buffs for specific formation slots
    • buffs should be able to be conditional on whether or not other slots are occupied (to get a "back row" effect only when a "front row" exists)
  • repositionable heroes stored in a separate lump
    • player-selectable hero formations, repositionable as a group within enemy formations
    • overrides for hero formations in specific enemy formations
  • battle-animation support for heroes and enemies to change directions to face the target they are attacking.
  • direction data in formations
    • Attack support for different damage when attacking a target from behind
    • Attack support for forcing a target to turn around
  • Blank formation slots as targets
    • target a "summon" spell on a blank formation slot
    • enemy ally spawning on nearby blank slots
    • attack actions to move attacker to a blank slot
    • attacks that can only be targeted when a blank slot is open withing a given range of both attacker and target
  • optional Formation grids
    • Grid, diagonal grid, and hex grid, of varying sizes
    • An easy way to arrange enemies and heroes neatly
    • An easy way to provide a large number of neatly arranged blank formation slots (see above)
  • ability to add arbitrary graphics to formations, to create layers
    • Should the formation be a slice collection?
    • will want to allow graphics of potentially any size
    • choose from any type of graphics set and choose animation pattern
    • set x, y, and z
    • possibly modifiable during battle using tags or extra attack data?


Enemy Formations[edit]

Should the enemy formations will only be loaded into slices at runtime? Or would they benefit from being editable as slice collections? Even if so, they should still be separate from the Battle Screen slice collections

  • The enemy formation data is currently stored in the binary FOR lump. It should be converted to a new RELOAD format
  • The formation should be able to select different variations of the battle screen slice collection. Most games won't need this, but I am sure it will be nice to have for some
  • The enemy formation should be able to select a hero formation as well (done)
    • The enemy formation can specify a specific hero formation, or "default" (done)


Hero Formation[edit]

The hero formation is currently hard-coded, but it would be great to be able to customize it. Hero formations should be stored in a separate lump from enemy formations, so you can mix-and-match.

  • Create heroform.reld lump. (done)
  • Create a default record matching the current hardcoded positions of heros in battle (done)
  • hero formations can have multiple stances for each hero slot
    • stances are similar to "rows" in Final Fantasy 4/5/6
    • Stances can apply in-battle stat bonuses to the heroes that occupy them.
    • A new Special screen could be created to allow the player to pick formations and adjust heroes to different stance slots within
    • This would all be optional, and games that don't need to use it don't have to use it.

Direction of movements[edit]

Although you can place the heroes along the bottom of the screen, they still step towards the left for the Strike, Cast, SpinStrike, and Jump attacker animations, and move to the right edge of the enemy for the DashIn and Teleport animations. There are many possible ways we could allow define which way attackers should move. One is:

Questions and comments[edit]

  • Should which side of the target to attack be defined in the hero/battle formation, in the hero/enemy editor, or in the attack data?
  • If the heroes are at the bottom of the screen, having to fix every slot in every battle formation to set enemies to attack from

the top would be tedious. A default setting would help

  • Simply moving towards the target isn't always right. If you have the heroes at the bottom but an enemy is east-north-east from a hero, you probably want them to step upwards, not to the right.
  • If you have a formation with the heroes in the center of the screen and enemies at the sides, the heroes should be able to step either left or right, but you probably want them to step west, not south or south-south-west to attack an enemy to the south-south-west.
  • Or you might want the hero to step towards the enemy, at any angle
  • What to do about multitarget attacks?
  • You could draw two versions of the hero battle sprite, one where they attack from the bottom and another where they attack from the right, and swap the hero battle graphics before a battle, based on the formation.
  • Stepping direction is very closely related to facing direction. However, if they're in the center of the screen and step left/right, you should have the option to specify whether they start facing left or right.

Proposal[edit]

  • For each enemy slot in a battle formation, and each hero slot in a hero formation:
    • Add "When attacking, step:" with options "Default direction", "Left", "Right", "Left or right", "Up", "Down", "Up or down", "Up, down, left or right", "Directly towards target (diagonally)", "Don't move"
    • Add "Attack target on their:" with options "Default side", "Left side", "Right side", "Left or right side", "Top side", "Bottom side", "Top or bottom side", "Any (nearest) side"
  • Add global Battle System options for both enemies and heroes, giving the default step direction and target attack side (as above)
  • If a hero or enemy uses a multi-target attack, calculate the stepping direction for each target. If they're all the same, move in that direction, otherwise don't move
    • For "Directly towards target", move towards the averaged position
  • If a hero moves to the right, or an enemy moves to the left, flip their sprite. (After animations are implemented, you will be able to specify graphics for moving/attacking to the right)
    • Add 'Unreversable Picture' bits to enemies and heroes

Probably better alternative[edit]

Alternatively, the movement settings could be per battle/hero formation, not per formation slot. Maybe noone actually wants formations where one hero to attacks leftwards, and another move upwards. Since this is much simpler, we could then get rid of the global default settings.

See Also[edit]