From 8abf5acef3c88adfeb8a6804b11183fdc373dbba Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Fri, 18 Oct 2024 23:08:50 +0200 Subject: [PATCH] #137 : ZoneEffects --- package-lock.json | 6 +++--- prisma/schema/zone.prisma | 2 +- src/repositories/zoneRepository.ts | 3 ++- src/socketEvents/gameMaster/zoneEditor/update.ts | 13 ++++++++++++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a5cfb3..717bf34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -926,9 +926,9 @@ "license": "BSD-3-Clause" }, "node_modules/bullmq": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.20.0.tgz", - "integrity": "sha512-eCJyYJqNUl9swC39x2fVm1BUv5BuO/nv2eAcAsz58znue0ZCYgSG+yWXZeauRG98Jl0UIBcPgJtbF+c9Wd+Odg==", + "version": "5.21.1", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.21.1.tgz", + "integrity": "sha512-+yvsd5LkbWkTW2K5C/1s8h1+gGK4F9wVfKM6AJUBSWGsbfWHXnni0Se7xHj1dieVkx6XEsfCzFtO6kZnD+mtHQ==", "license": "MIT", "dependencies": { "cron-parser": "^4.6.0", diff --git a/prisma/schema/zone.prisma b/prisma/schema/zone.prisma index 3772e1c..e6613bc 100644 --- a/prisma/schema/zone.prisma +++ b/prisma/schema/zone.prisma @@ -38,7 +38,7 @@ model Zone { height Int @default(10) tiles Json? pvp Boolean @default(false) - effects ZoneEffect[] + zoneEffects ZoneEffect[] zoneEventTiles ZoneEventTile[] zoneEventTileTeleports ZoneEventTileTeleport[] zoneObjects ZoneObject[] diff --git a/src/repositories/zoneRepository.ts b/src/repositories/zoneRepository.ts index 214ccde..e4dea08 100644 --- a/src/repositories/zoneRepository.ts +++ b/src/repositories/zoneRepository.ts @@ -39,7 +39,8 @@ class ZoneRepository { include: { object: true } - } + }, + zoneEffects: true } }) } catch (error: any) { diff --git a/src/socketEvents/gameMaster/zoneEditor/update.ts b/src/socketEvents/gameMaster/zoneEditor/update.ts index 462c213..81e8879 100644 --- a/src/socketEvents/gameMaster/zoneEditor/update.ts +++ b/src/socketEvents/gameMaster/zoneEditor/update.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' import { TSocket } from '../../../utilities/types' import ZoneRepository from '../../../repositories/zoneRepository' -import { Zone, ZoneEventTileType, ZoneObject } from '@prisma/client' +import { Zone, ZoneEffect, ZoneEventTileType, ZoneObject } from '@prisma/client' import prisma from '../../../utilities/prisma' import zoneManager from '../../../managers/zoneManager' import CharacterRepository from '../../../repositories/characterRepository' @@ -25,6 +25,10 @@ interface IPayload { toRotation: number } }[] + zoneEffects: { + effect: string + strength: number + }[] zoneObjects: ZoneObject[] } @@ -107,6 +111,13 @@ export default class ZoneUpdateEvent { positionY: zoneObject.positionY })) }, + zoneEffects: { + deleteMany: { zoneId: data.zoneId }, + create: data.zoneEffects.map((zoneEffect) => ({ + effect: zoneEffect.effect, + strength: zoneEffect.strength + })) + }, updatedAt: new Date() } })