forked from noxious/client
36 lines
996 B
TypeScript
36 lines
996 B
TypeScript
import type IMap from '@/engine/Map/IMap'
|
|
import Player from '@/engine/Player/Player'
|
|
import type { Character } from '@/types'
|
|
|
|
export default class Map implements IMap {
|
|
id: number
|
|
name: string
|
|
width: number
|
|
height: number
|
|
data: any
|
|
characters: Character[]
|
|
|
|
constructor(id: number, name: string, width: number, height: number, data: any, characters: Character[]) {
|
|
this.id = id
|
|
this.name = name
|
|
this.width = width
|
|
this.height = height
|
|
this.data = data
|
|
this.characters = characters
|
|
}
|
|
|
|
public addCharacter(character: Character) {
|
|
this.characters.push(character)
|
|
}
|
|
|
|
public removeCharacter(character: Character) {
|
|
this.characters = this.characters.filter((c: Character) => c.id !== character.id)
|
|
}
|
|
|
|
public moveCharacter(character: Character, x: number, y: number) {
|
|
const index = this.characters.findIndex((c: Character) => c.id === character.id)
|
|
this.characters[index].position_x = x
|
|
this.characters[index].position_y = y
|
|
}
|
|
}
|