This commit is contained in:
Jose Conde
2024-07-17 22:52:07 +02:00
parent 4e75c3af77
commit 54bd7f3840
18 changed files with 242 additions and 79 deletions

View File

@ -2,11 +2,11 @@ import { Application, Container, EventEmitter, Text, Ticker } from 'pixi.js'
import { Scale, type ScaleFunction } from '@/game/utilities/scale'
import type { AnimationOptions, Movement, PlayerDto, TileDto } from '@/common/interfaces'
import { Tile } from '@/game/Tile'
import { DIRECTIONS, createContainer, isTilePair } from '@/common/helpers'
import { createContainer, isTilePair } from '@/common/helpers'
import { createText } from '@/game/utilities/fonts'
import { LoggingService } from '@/services/LoggingService'
import { GlowFilter } from 'pixi-filters'
import { ORIENTATION_ANGLES } from '@/common/constants'
import { DIRECTION_INDEXES, DIRECTIONS, ORIENTATION_ANGLES } from '@/common/constants'
import type { OtherHand } from './OtherHand'
import { sound } from '@pixi/sound'
import { t } from '@/i18n'
@ -181,6 +181,8 @@ export class Board extends EventEmitter {
const tileDto = tile.toPlain()
let direction = move.type === 'left' ? this.leftDirection : this.rightDirection
move.direction = this.hasSpaceToMove(move)
if (this.tiles.length === 0) {
x = 0
y = 0
@ -592,6 +594,22 @@ export class Board extends EventEmitter {
return [canPlayNorth, canPlayEast, canPlaySouth, canPlayWest]
}
hasSpaceToMove(move: Movement): string | undefined {
if (move.tile === undefined || move.direction === undefined) {
return undefined
}
const nextValidMoves = this.nextTileValidMoves(move.tile, move.type)
let index = DIRECTION_INDEXES[move.direction]
let valid = nextValidMoves[index]
while (!valid && index < nextValidMoves.length) {
index++
valid = nextValidMoves[index % nextValidMoves.length]
}
return DIRECTIONS[index]
}
clean() {
this.tiles = []
this.boneyard = []

View File

@ -81,8 +81,7 @@ export class Game extends EventEmitter {
iniialStuff(app: Application) {
app.stage.addChild(this.backgroundLayer)
const background = new Sprite(Assets.get(`bg-${this.options.background}`))
background.width = this.app.canvas.width
background.height = this.app.canvas.height
this.backgroundLayer.addChild(background)
}