Improved service names, added attack anim. sprite to init.ts, added attackService, added attack event

This commit is contained in:
2025-02-01 04:30:54 +01:00
parent a5ca524bb4
commit 70aa7345e0
9 changed files with 143 additions and 24 deletions

View File

@ -0,0 +1,20 @@
import { BaseEvent } from '#application/base/baseEvent'
import CharacterAttackService from '#services/characterAttackService'
export default class CharacterMove extends BaseEvent {
private readonly characterAttackService = CharacterAttackService
public listen(): void {
this.socket.on('map:character:attack', this.handleEvent.bind(this))
}
private async handleEvent(data: any, callback: (response: any) => void): Promise<void> {
try {
console.log('attack', this.socket.characterId)
await this.characterAttackService.attack(this.socket.characterId!)
} catch (error) {
this.logger.error('map:character:attack error', error)
return callback(false)
}
}
}

View File

@ -3,8 +3,8 @@ import { MapEventTileWithTeleport } from '#application/types'
import MapManager from '#managers/mapManager'
import MapCharacter from '#models/mapCharacter'
import MapEventTileRepository from '#repositories/mapEventTileRepository'
import CharacterService from '#services/characterService'
import TeleportService from '#services/teleportService'
import CharacterService from '#services/characterMoveService'
import TeleportService from '#services/characterTeleportService'
export default class CharacterMove extends BaseEvent {
private readonly characterService = CharacterService
@ -54,7 +54,7 @@ export default class CharacterMove extends BaseEvent {
if (mapEventTile?.type === 'BLOCK') break
if (mapEventTile?.type === 'TELEPORT' && mapEventTile.teleport) {
await this.handleMapEventTile(mapEventTile as MapEventTileWithTeleport)
await this.handleTeleportMapEventTile(mapEventTile as MapEventTileWithTeleport)
return
}
@ -78,7 +78,7 @@ export default class CharacterMove extends BaseEvent {
}
}
private async handleMapEventTile(mapEventTile: MapEventTileWithTeleport): Promise<void> {
private async handleTeleportMapEventTile(mapEventTile: MapEventTileWithTeleport): Promise<void> {
if (mapEventTile.getTeleport()) {
await TeleportService.teleportCharacter(this.socket.characterId!, {
targetMapId: mapEventTile.getTeleport()!.getToMap().getId(),