From d0ca68dfa8833a1a7674f30d3bdf1f5761925893 Mon Sep 17 00:00:00 2001 From: Katboi01 Date: Fri, 3 Nov 2023 00:15:58 +0100 Subject: [PATCH] Quest syncing --- Classes/playerData.ts | 11 +++++++---- Classes/questBook.ts | 13 +++++++++++++ Classes/questProgressData.ts | 6 ++++++ Quest/_update.ts | 9 +++++++-- index.ts | 2 ++ 5 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 Classes/questBook.ts create mode 100644 Classes/questProgressData.ts diff --git a/Classes/playerData.ts b/Classes/playerData.ts index 03eece2..181aba5 100644 --- a/Classes/playerData.ts +++ b/Classes/playerData.ts @@ -1,6 +1,7 @@ import { enemyDamageInfo } from "./enemyDamageInfo"; import { physicsObject } from "./physicsObject"; import { playerInventory } from "./playerInventory"; +import { questBook } from "./questBook"; export class playerData{ id : number @@ -9,8 +10,14 @@ export class playerData{ characterId : number inventory : playerInventory = new playerInventory() rigidbody : physicsObject = new physicsObject() + questBook : questBook = new questBook() damageInfo : enemyDamageInfo[] = [] + constructor(init?: Partial) { + Object.assign(this, init); + this.questBook = new questBook(this.questBook) + } + copyStart(){ let player : any = {} player.id = this.id @@ -47,8 +54,4 @@ export class playerData{ this.inventory.equipment = [-1, -1, -1] } } - - constructor(init?: Partial) { - Object.assign(this, init); - } } \ No newline at end of file diff --git a/Classes/questBook.ts b/Classes/questBook.ts new file mode 100644 index 0000000..4d4eb2e --- /dev/null +++ b/Classes/questBook.ts @@ -0,0 +1,13 @@ +import { questProgressData } from "./questProgressData"; + +export class questBook{ + quests = {} + + constructor(init?: Partial) { + Object.assign(this, init); + } + + updateQuest(quest : questProgressData){ + this.quests[quest.id] = quest + } +} \ No newline at end of file diff --git a/Classes/questProgressData.ts b/Classes/questProgressData.ts new file mode 100644 index 0000000..230b045 --- /dev/null +++ b/Classes/questProgressData.ts @@ -0,0 +1,6 @@ +export class questProgressData{ + id : number + state : number + repeatCount : number + objectives : [] +} \ No newline at end of file diff --git a/Quest/_update.ts b/Quest/_update.ts index 5e1a127..78882f3 100644 --- a/Quest/_update.ts +++ b/Quest/_update.ts @@ -1,7 +1,12 @@ +import { playerData } from "../Classes/playerData"; +import { questProgressData } from "../Classes/questProgressData"; + export function update(socket, data){ if(!socket.hasOwnProperty("player")) return; let buff = Buffer.from(data, 'base64'); - //let data1 : levelUpdateHost = JSON.parse(buff.toString('utf-8')); - //let player : playerData = socket.player + let data1 : questProgressData = JSON.parse(buff.toString('utf-8')); + let player : playerData = socket.player + + player.questBook.updateQuest(data1) } \ No newline at end of file diff --git a/index.ts b/index.ts index e482dee..8f325f5 100644 --- a/index.ts +++ b/index.ts @@ -5,6 +5,7 @@ import { registerItemCallbacks } from "./Items/itemSocket"; import { registerLobbyCallbacks } from "./Lobby/lobbySocket"; import { registerAccountCallbacks } from "./Account/accountSocket"; import { registerLevelCallbacks } from "./Level/levelSocket"; +import { registerQuestCallbacks } from "./Quest/questSocket"; const express = require("express"); const app = express(); @@ -33,6 +34,7 @@ io.on('connection', (socket) => { registerLobbyCallbacks(socket); registerItemCallbacks(socket); registerLevelCallbacks(socket); + registerQuestCallbacks(socket); socket.io = game.socketIO = io;