This repository has been archived on 2026-03-19. You can view files and clone it, but cannot push or open issues or pull requests.
Files
galvanic-corrosion/src/data/content/consumable.ts
zombieb 27b3754330 Rooms and matchmaking
* 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
2025-04-02 00:27:10 -04:00

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;
}
}