Items and inventory

This commit is contained in:
2023-09-15 23:42:42 +02:00
parent 2bcdb780c3
commit 7e6bfdbd98
21 changed files with 335 additions and 96 deletions

15
Classes/enums.ts Normal file
View File

@@ -0,0 +1,15 @@
export class enums{
static itemType = {
undefined: 0,
currency: 1,
consumable: 2,
equipment: 3
}
static equipmentType = {
undefined: 0,
weapon: 1,
armor: 2,
accessory: 3
}
}

9
Classes/itemData.ts Normal file
View File

@@ -0,0 +1,9 @@
import { enums } from "./enums"
export class itemData{
name : string
id : number
rarity: number
itemType : number
stats = {}
}

6
Classes/itemGenerated.ts Normal file
View File

@@ -0,0 +1,6 @@
import { itemData } from "./itemData"
export class itemGenerated{
instanceId: number
item: itemData
}

6
Classes/itemPickup.ts Normal file
View File

@@ -0,0 +1,6 @@
import { itemData } from "./itemData"
export class itemPickup{
instanceId: number
item: itemData
}

4
Classes/itemRequest.ts Normal file
View File

@@ -0,0 +1,4 @@
export class itemRequest{
instanceId: number
itemType: number
}

12
Classes/lobbyMessage.ts Normal file
View File

@@ -0,0 +1,12 @@
export class lobbyMessage{
id: number;
user: string;
timestamp: string;
content: string;
constructor(text : string){
this.user = "Server"
this.timestamp = new Date().toLocaleString();
this.content = text
}
}

17
Classes/lobbyState.ts Normal file
View File

@@ -0,0 +1,17 @@
import { physicsObject } from "../Classes/physicsObject";
import { playerData } from "../Classes/playerData";
export class lobbyState{
hostSocket : string
players : playerData[] = [];
objects : physicsObject[] = [];
copyLight(){
let lobby = Object.assign({}, this);
lobby.players = []
for (let i = 0; i < this.players.length; i++) {
lobby.players.push(playerData.copyLight(this.players[i]));
}
return lobby
}
}

18
Classes/playerData.ts Normal file
View File

@@ -0,0 +1,18 @@
import { physicsObject } from "./physicsObject";
import { playerInventory } from "./playerInventory";
export class playerData{
socketId : string
userName : string
characterId : number
inventory : playerInventory = new playerInventory()
rigidbody : physicsObject = new physicsObject()
static copyLight(data : playerData){
let player : any = Object.assign({}, data);
delete player.userName
delete player.characterId
delete player.inventory
return player
}
}

View File

@@ -0,0 +1,19 @@
import { itemData } from "./itemData";
export class playerInventory{
weapon : number = -1
equipment : number[] = [-1,-1]
items : itemData[] = []
static validate(inv : playerInventory){
if(inv.equipment[0] == inv.weapon){
inv.equipment[0] = -1
}
if(inv.equipment[1] == inv.weapon){
inv.equipment[1] = -1
}
if(inv.equipment[1] == inv.equipment[0]){
inv.equipment[1] = -1
}
}
}

25
Classes/userData.ts Normal file
View File

@@ -0,0 +1,25 @@
import { itemData } from "./itemData";
import { playerData } from "./playerData";
export class userData{
id: number;
checksum: number;
login: string;
password: string;
playerData: playerData = null
constructor(id:number, login:string, password:string){
this.id = id;
this.login = login;
this.password = password;
this.checksum = 0;
}
static makeSafe(user : userData, socketId : string){
let safeUser : any = Object.assign({}, user);
safeUser.socketId = socketId
delete safeUser.password
delete safeUser.checksum
return safeUser
}
}