feat: add Hard Resources for system-managed game resources
This commit is contained in:
parent
c1360da9c2
commit
877f8531aa
3 changed files with 727 additions and 645 deletions
35
src/collections/game/GameHardResources.ts
Normal file
35
src/collections/game/GameHardResources.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { CollectionConfig } from "payload";
|
||||
import { isDeveloper } from "@/utils/access-control/isRole";
|
||||
|
||||
export const GameHardResources: CollectionConfig = {
|
||||
slug: "game-hard-resources",
|
||||
access: {
|
||||
create: isDeveloper,
|
||||
update: isDeveloper,
|
||||
delete: isDeveloper,
|
||||
},
|
||||
admin: {
|
||||
group: "Game",
|
||||
useAsTitle: "name",
|
||||
description: "\"Hard Resources\" represent the hard-coded, integral resource types used to power the game. It includes things like Intelligence Points, Command Points, and other non-physical resources that are essential for gameplay mechanics. Unlike regular (\"soft\") resources, hard resources are not calculated by transactions and are instead stored as numeric amounts that are updated by the backend. Soft resources are designed by the players, are defined in the Resources category under Logistics, and are calculated by transactions (ledgers) to ensure their accuracy.",
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: "name",
|
||||
type: "text",
|
||||
required: true,
|
||||
unique: true,
|
||||
},
|
||||
{
|
||||
name: "amount",
|
||||
type: "number",
|
||||
required: true,
|
||||
defaultValue: 0,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
type: "richText",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
1329
src/payload-types.ts
1329
src/payload-types.ts
File diff suppressed because it is too large
Load diff
|
|
@ -27,6 +27,7 @@ import { Assignments } from "@/collections/users/Assignments";
|
|||
import { Technologies } from "@/collections/intelligence/Technologies";
|
||||
import { GameRules } from "@/collections/game/GameRules";
|
||||
import { GameStructures } from "@/collections/game/GameStructures";
|
||||
import { GameHardResources } from "@/collections/game/GameHardResources";
|
||||
|
||||
const filename = fileURLToPath(import.meta.url);
|
||||
const dirname = path.dirname(filename);
|
||||
|
|
@ -60,6 +61,10 @@ export default buildConfig({
|
|||
collections: [
|
||||
Media,
|
||||
|
||||
// Game
|
||||
GameHardResources,
|
||||
GameStructures,
|
||||
|
||||
// Users
|
||||
Users,
|
||||
Ranks,
|
||||
|
|
@ -87,9 +92,6 @@ export default buildConfig({
|
|||
// Server
|
||||
MissionFiles,
|
||||
ModLists,
|
||||
|
||||
// Game
|
||||
GameStructures
|
||||
],
|
||||
editor: lexicalEditor(),
|
||||
secret: process.env.PAYLOAD_SECRET || "",
|
||||
|
|
|
|||
Loading…
Reference in a new issue