mwg API
    Preparing search index...

    Function chebyshevDistance

    • The straight-line ruler distance a roguelike uses: diagonals cost the same as a step.

      Parameters

      Returns number

      import { chebyshevDistance, traceLine, hasLineOfSight, canTarget, resolveArea, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';

      const level = new Level(20, 20, [WALL, FLOOR], 1); // an open floor
      const origin = { x: 2, y: 2 };
      const target = { x: 8, y: 5 };

      chebyshevDistance(origin, target); // 6
      traceLine(origin, target); // every cell the shot crosses
      hasLineOfSight(level, origin, target); // true - nothing blocks it

      if (canTarget(level, origin, target, { range: 10 })) {
      const hit = resolveArea(origin, target, { kind: 'burst', radius: 2 });
      }