diff options
author | eug-vs <eugene@eug-vs.xyz> | 2022-03-12 15:47:58 +0300 |
---|---|---|
committer | eug-vs <eugene@eug-vs.xyz> | 2022-03-12 15:47:58 +0300 |
commit | 668985e6ed78add10e3a0eb94eff283d59b3971f (patch) | |
tree | f3a379f4fba55817460f6bed00ba17dee0ffeff1 /src/Tile | |
parent | 26b15f6ef72ca983e5fb114fb36bf0c0860a91ea (diff) | |
download | carcassonne-engine-ts-668985e6ed78add10e3a0eb94eff283d59b3971f.tar.gz |
refactor: rename Feature.Emtpy -> Grass
Diffstat (limited to 'src/Tile')
-rw-r--r-- | src/Tile/Tile.ts | 2 | ||||
-rw-r--r-- | src/Tile/TileOnBoard.test.ts | 16 | ||||
-rw-r--r-- | src/Tile/TileOnBoard.ts | 8 |
3 files changed, 16 insertions, 10 deletions
diff --git a/src/Tile/Tile.ts b/src/Tile/Tile.ts index 4dd6ecb..3a2d350 100644 --- a/src/Tile/Tile.ts +++ b/src/Tile/Tile.ts @@ -6,7 +6,7 @@ export enum Direction { } export enum Feature { - Empty = ' ', + Grass = 'G', Road = 'R', Town = 'T', River = 'I', diff --git a/src/Tile/TileOnBoard.test.ts b/src/Tile/TileOnBoard.test.ts index 7448435..70fc5a1 100644 --- a/src/Tile/TileOnBoard.test.ts +++ b/src/Tile/TileOnBoard.test.ts @@ -3,44 +3,44 @@ import TileOnBoard from './TileOnBoard'; import { Direction, Feature } from './Tile'; const { North, East, South, West } = Direction; -const { Road, Town, Empty, River } = Feature; +const { Road, Town, Grass, River } = Feature; describe('TileOnBoard', () => { describe('getSide', () => { it('Should get North, East, South and West sides correctly', () => { - const tile = new TileOnBoard(Empty, [Road, Town, Empty, River]); + const tile = new TileOnBoard(Grass, [Road, Town, Grass, River]); assert.strictEqual(tile.getSide(North), Road); assert.strictEqual(tile.getSide(East), Town); - assert.strictEqual(tile.getSide(South), Empty); + assert.strictEqual(tile.getSide(South), Grass); assert.strictEqual(tile.getSide(West), River); }); it('Should respect tile orientation', () => { - const tile = new TileOnBoard(Empty, [Road, Town, Empty, River]); + const tile = new TileOnBoard(Grass, [Road, Town, Grass, River]); tile.rotate(5); assert.strictEqual(tile.getSide(North), River); assert.strictEqual(tile.getSide(East), Road); assert.strictEqual(tile.getSide(South), Town); - assert.strictEqual(tile.getSide(West), Empty); + assert.strictEqual(tile.getSide(West), Grass); }); it('Should work with negative orientation', () => { - const tile = new TileOnBoard(Empty, [Road, Town, Empty, River]); + const tile = new TileOnBoard(Grass, [Road, Town, Grass, River]); tile.rotate(-7); assert.strictEqual(tile.getSide(North), River); assert.strictEqual(tile.getSide(East), Road); assert.strictEqual(tile.getSide(South), Town); - assert.strictEqual(tile.getSide(West), Empty); + assert.strictEqual(tile.getSide(West), Grass); }); }); describe('getAttachments', () => { it('Should correclty list legal attachments', () => { const attachTo = new TileOnBoard(Town, [Road, Town, Town, Road]) - const tile = new TileOnBoard(Road, [Empty, Road, Road, Empty]) + const tile = new TileOnBoard(Road, [Grass, Road, Road, Grass]) tile.print(); attachTo.print(); diff --git a/src/Tile/TileOnBoard.ts b/src/Tile/TileOnBoard.ts index b15fcf4..fb0817c 100644 --- a/src/Tile/TileOnBoard.ts +++ b/src/Tile/TileOnBoard.ts @@ -10,7 +10,11 @@ export interface Attachment { export default class TileOnBoard extends Tile { neighbors: [Tile, Tile, Tile, Tile]; - orientation: number // amount of 90-degree counter-clockwise rotations from original orientation + orientation: number; // amount of 90-degree counter-clockwise rotations from original orientation + position: { + x: number; + y: number; + } constructor(center: Feature, sides: [Feature, Feature, Feature, Feature], shield = false, orientation = 0) { super(center, sides, shield); @@ -22,6 +26,8 @@ export default class TileOnBoard extends Tile { } rotate(rotation = 1) { + // We want to rotate clockwise, but orientation stores counter-clockwise rotations, + // therefore use the difference, not sum. this.orientation = this.orientation - rotation; } |