* Added missing config (route) data * Fetch room class, database hash * Basic room querying * Built-in room generation during first runtime * Matchmaking response base and notes for myself, later today * Instance fixes * Challenge and quick play routes (unused for now) * Rooms route (untested) * Matchmaking goto route * Avatar route addition * Settings/set route
77 lines
2.0 KiB
TypeScript
77 lines
2.0 KiB
TypeScript
/* Galvanic Corrosion - Rec Room custom server for communities.
|
|
<https://gitea.proxnet.dev/zombieb-galvanic-corrosion>
|
|
Copyright (C) 2025 @zombieb (Discord / proxnet Gitea)
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as published
|
|
by the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
|
|
|
export enum Consumable {
|
|
ASSORTED_DONUTS,
|
|
SUPREME_PIZZA,
|
|
ROOT_BEER,
|
|
CHOCOLATE_FROSTED_DONUTS,
|
|
CHEESE_PIZZA,
|
|
PEPPERONI_PIZZA,
|
|
GLAZED_DONUTS,
|
|
}
|
|
|
|
const ids = [
|
|
"ZuvkidodzkuOfGLDnTOFyg",
|
|
"wUCIKdJSvEmiQHYMyx4X4w",
|
|
"JfnVXFmilU6ysv-VbTAe3A",
|
|
"mMCGPgK3tki5S_15q2Z81A",
|
|
"5hIAZ9wg5EyG1cILf4FS2A",
|
|
"mq23W-RSP0G8iGNLdrcpUw",
|
|
"7OZ5AE3uuUyqa0P-2W1ptg",
|
|
] as const;
|
|
|
|
export class ConsumableSelection {
|
|
type: Consumable;
|
|
|
|
guid: string;
|
|
|
|
constructor(type: Consumable) {
|
|
this.type = type;
|
|
this.guid = ids[type];
|
|
}
|
|
}
|
|
|
|
export class ConsumableBuilder {
|
|
Id: number;
|
|
|
|
ConsumableItemDesc: string;
|
|
|
|
CreatedAt: string;
|
|
|
|
Count: number;
|
|
|
|
UnlockedLevel: number;
|
|
|
|
IsActive: boolean;
|
|
|
|
constructor(
|
|
selection: ConsumableSelection,
|
|
id: number,
|
|
createdAt: Date,
|
|
count: number,
|
|
active: boolean,
|
|
) {
|
|
this.Id = id;
|
|
this.ConsumableItemDesc = selection.guid;
|
|
this.CreatedAt = createdAt.toUTCString();
|
|
this.Count = count;
|
|
this.UnlockedLevel = 0; // All players have access to every consumable - avatars and equipment are different
|
|
this.IsActive = active;
|
|
}
|
|
}
|