forked from noxious/server
Improved entities, ran formatting, utilise getters and setters
This commit is contained in:
@ -1,12 +1,12 @@
|
||||
import { Server } from 'socket.io'
|
||||
import { TSocket } from '#application/types'
|
||||
import ZoneRepository from '#repositories/zoneRepository'
|
||||
import { Zone } from '@prisma/client'
|
||||
import { gameLogger } from '#application/logger'
|
||||
import CharacterRepository from '#repositories/characterRepository'
|
||||
import ZoneManager from '#managers/zoneManager'
|
||||
import zoneCharacter from '#models/zoneCharacter'
|
||||
import zoneManager from '#managers/zoneManager'
|
||||
import { Zone } from '#entities/zone'
|
||||
|
||||
interface IResponse {
|
||||
zone: Zone
|
||||
@ -39,7 +39,7 @@ export default class CharacterJoinEvent {
|
||||
/**
|
||||
* @TODO: If zone is not found, spawn back to the start
|
||||
*/
|
||||
const zone = await ZoneRepository.getById(character.zoneId)
|
||||
const zone = await ZoneRepository.getById(character.zone!.id)
|
||||
if (!zone) {
|
||||
gameLogger.error('zone:character:join error', 'Zone not found')
|
||||
return
|
||||
|
@ -36,7 +36,7 @@ export default class CharacterMove {
|
||||
|
||||
const path = await this.characterService.calculatePath(zoneCharacter.character, positionX, positionY)
|
||||
if (!path) {
|
||||
this.io.in(zoneCharacter.character.zoneId.toString()).emit('character:moveError', 'No valid path found')
|
||||
this.io.in(zoneCharacter.character.zone!.id.toString()).emit('character:moveError', 'No valid path found')
|
||||
return
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ export default class CharacterMove {
|
||||
const [start, end] = [path[i], path[i + 1]]
|
||||
character.rotation = Rotation.calculate(start.x, start.y, end.x, end.y)
|
||||
|
||||
const zoneEventTile = await zoneEventTileRepository.getEventTileByZoneIdAndPosition(character.zoneId, Math.floor(end.x), Math.floor(end.y))
|
||||
const zoneEventTile = await zoneEventTileRepository.getEventTileByZoneIdAndPosition(character.zone!.id, Math.floor(end.x), Math.floor(end.y))
|
||||
|
||||
if (zoneEventTile?.type === 'BLOCK') break
|
||||
if (zoneEventTile?.type === 'TELEPORT' && zoneEventTile.teleport) {
|
||||
@ -67,7 +67,7 @@ export default class CharacterMove {
|
||||
}
|
||||
|
||||
this.characterService.updatePosition(character, end)
|
||||
this.io.in(character.zoneId.toString()).emit('character:move', zoneCharacter)
|
||||
this.io.in(character.zone!.id.toString()).emit('character:move', zoneCharacter)
|
||||
await this.characterService.applyMovementDelay()
|
||||
}
|
||||
|
||||
@ -91,6 +91,6 @@ export default class CharacterMove {
|
||||
|
||||
private finalizeMovement(zoneCharacter: ZoneCharacter): void {
|
||||
zoneCharacter.isMoving = false
|
||||
this.io.in(zoneCharacter.character.zoneId.toString()).emit('character:move', zoneCharacter)
|
||||
this.io.in(zoneCharacter.character.zone!.id.toString()).emit('character:move', zoneCharacter)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user