Skip to content

Commit 7da7bd7

Browse files
chore: attempt to fix players on map issues
1 parent d8358c1 commit 7da7bd7

File tree

2 files changed

+40
-39
lines changed

2 files changed

+40
-39
lines changed

apps/client/src/game/Scene.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -561,9 +561,7 @@ export abstract class Scene extends Phaser.Scene {
561561
store.gameStore.playersToAddQueue = [];
562562

563563
for (const { name } of store.gameStore.playersToRemoveQueue) {
564-
if (this.gridEngine.hasCharacter(name)) {
565-
this.deleteExternalPlayer(name);
566-
}
564+
this.deleteExternalPlayer(name);
567565
}
568566

569567
store.gameStore.playersToRemoveQueue = [];

apps/server/src/rooms/MapRoom.ts

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Client as ColyseusClient, Room, logger } from '@colyseus/core';
2+
import { Prisma } from '@prisma/client';
23
import {
34
FightMgt,
45
INTERACTIVE_OBJECTS_MAP,
@@ -688,45 +689,47 @@ export class MapRoom extends Room<MapState> {
688689
`[MapRoom][${this.name}] Client '${client.sessionId}' (${player.name}) left the room`,
689690
);
690691

691-
await prisma.character.update({
692-
where: { name: player.name },
693-
data: {
694-
map: this.name,
695-
profession: player.profession,
696-
spritesheet: player.spritesheet,
697-
pos_x: player.x,
698-
pos_y: player.y,
699-
direction: player.direction,
700-
talents: TalentMgt.serializeTalents(player.talents),
701-
talentsPoints: player.talentsPoints,
702-
baseStatistics: StatisticMgt.serializeStatistics(player.getBaseStatistics()),
703-
baseStatisticsPoints: player.baseStatisticsPoints,
704-
experience: player.experience,
705-
health: player.health,
706-
teleporters: StringMgt.serializeTeleporters(player.teleporters),
707-
money: player.money,
708-
gachix: player.gachix,
709-
items: {
710-
deleteMany: player.itemsToRemove.map((id) => ({ id })),
711-
updateMany: player.items.map((item) => ({
712-
where: { id: item.id },
713-
data: {
714-
isUnique: item.isUnique,
715-
type: item.type,
716-
level: item.level,
717-
requiredLevel: item.requiredLevel,
718-
baseAffixes: ItemMgt.serializeAffixes(item.baseAffixes),
719-
prefixes: ItemMgt.serializeAffixes(item.prefixes),
720-
suffixes: ItemMgt.serializeAffixes(item.suffixes),
721-
damages: ItemMgt.serializeDamages(item.damages),
722-
position: item.position,
723-
},
724-
})),
725-
},
692+
const data: Prisma.CharacterUpdateInput = {
693+
map: this.name,
694+
profession: player.profession,
695+
spritesheet: player.spritesheet,
696+
pos_x: player.x,
697+
pos_y: player.y,
698+
direction: player.direction,
699+
talents: TalentMgt.serializeTalents(player.talents),
700+
talentsPoints: player.talentsPoints,
701+
baseStatistics: StatisticMgt.serializeStatistics(player.getBaseStatistics()),
702+
baseStatisticsPoints: player.baseStatisticsPoints,
703+
experience: player.experience,
704+
health: player.health,
705+
teleporters: StringMgt.serializeTeleporters(player.teleporters),
706+
money: player.money,
707+
gachix: player.gachix,
708+
items: {
709+
deleteMany: player.itemsToRemove.map((id) => ({ id })),
710+
updateMany: player.items.map((item) => ({
711+
where: { id: item.id },
712+
data: {
713+
isUnique: item.isUnique,
714+
type: item.type,
715+
level: item.level,
716+
requiredLevel: item.requiredLevel,
717+
baseAffixes: ItemMgt.serializeAffixes(item.baseAffixes),
718+
prefixes: ItemMgt.serializeAffixes(item.prefixes),
719+
suffixes: ItemMgt.serializeAffixes(item.suffixes),
720+
damages: ItemMgt.serializeDamages(item.damages),
721+
position: item.position,
722+
},
723+
})),
726724
},
727-
});
725+
};
728726

729727
this.state.removePlayer(client.sessionId);
728+
729+
await prisma.character.update({
730+
where: { name: player.name },
731+
data,
732+
});
730733
}
731734

732735
onDispose() {

0 commit comments

Comments
 (0)