{"_id":"@bakuenjin/rpg-content-management","_rev":"1-ca003a191d69f1f853ec55d1cd6e4748","name":"@bakuenjin/rpg-content-management","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bakuenjin/rpg-content-management","version":"1.0.0","main":"./out/index.js","license":"MIT","scripts":{"start":"tsc && node .","build":"tsc","test":"jest","coverage":"jest --coverage --collectCoverageFrom=src/**/*.ts --collectCoverageFrom=!src/**/*.d.ts"},"dependencies":{"@bakuenjin/rpg-core":"^2.2.0"},"devDependencies":{"@types/jest":"^26.0.20","jest":"^26.6.3","ts-jest":"^26.5.3","typescript":"^4.2.3"},"description":"* [About](#About)\r  * [Installation](#Installation)\r  * [Usage](#Usage)","_id":"@bakuenjin/rpg-content-management@1.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.9","dist":{"integrity":"sha512-5v7aOESIC4KykQqXA/hOi1rV5e0+tS96ttw+39jWUBXMR7fOfJCYqDMgAfcKuJjmjiY9LyOn9l06CCNHXWrbOA==","shasum":"924633850ea9607434f2be66372f9ca6c1ed3138","tarball":"https://registry.npmjs.org/@bakuenjin/rpg-content-management/-/rpg-content-management-1.0.0.tgz","fileCount":52,"unpackedSize":55847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgT3NMCRA9TVsSAnZWagAA8+0P/iLNeDH8i7tcB4n+IsFk\nkVNlCfrJx89mLFl+UGoseYsc0OultOObDWR9AEphsbX0I64to/k+w2Q84mST\nJcJJbdwhm0BJFSF3ZwQYeNFwWWCYim4R39bd8t3gQHZbb25RQf/u6xOKbw41\nV0mE1zQUH1pm/SR3JYYi62Xg7TuVyG2KKJ+K3HnOaaRmDYvmhK0shAbRQfiI\nG1V0Q/A7yuUMwjf9lHQBERo++9KNaefNLqOgluoRDDNW2fJTFBpjpVjH26r5\n4qY1XRdcIMBPlzg/IUOcfUEWuDWvUsgHWbXdD4TV1vY0rwohsnhrqqYomx18\nqmDF1D255q9XVWYq7wK7tJqFrwrZsTHt8kPU/T9hQm6tfmyRsQN0Mb2oLSmb\nUrzVXoO8SyG9X/xNyZpoB5uiDHgPJlbuvZ2wvUkbjIYKVcvYvf55/8QDU6iO\nhHGuZRP4VlP4OT71OV76lmvdVIoPOeweqPZlNA4LmOsBMPZJDpp30Fumbm3m\nxLe1gkR59ud+WB0lz+7DCEyp27OqQTYbNDlWio2WxwxexGToqvBeMpFLERzf\nLkYkt5Em6/DFAyVnUVwMJ+0GPe4WCZwr1EVC35nJN+MDjzr6BZpp5GScAv/v\nolYKHixnNBG1nmpiybcN94T5Y/1KJ2zOSDTxWjk9jnEo+IdHAjhy0JrMSiPA\nbrGm\r\n=q2PQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHf52fQsUfUxlNQomfeVD28fNP3g46hCW2tf8jfevEkgIhANJj6/6Nv6cXVlG8xgJlao00Hrh7ZDb0k1t8XeutPdg/"}]},"_npmUser":{"name":"bakuenjin","email":"julian.zameit.96@gmail.com"},"directories":{},"maintainers":[{"name":"bakuenjin","email":"julian.zameit.96@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rpg-content-management_1.0.0_1615819595730_0.04492479917868741"},"_hasShrinkwrap":false}},"time":{"created":"2021-03-15T14:46:35.593Z","1.0.0":"2021-03-15T14:46:35.862Z","modified":"2022-04-04T17:32:19.770Z"},"maintainers":[{"name":"bakuenjin","email":"julian.zameit.96@gmail.com"}],"description":"* [About](#About)\r  * [Installation](#Installation)\r  * [Usage](#Usage)","license":"MIT","readme":"# RPG-Content-Management\r\n\r\n## Table of contents\r\n\r\n * [About](#About)\r\n * [Installation](#Installation)\r\n * [Usage](#Usage)\r\n\r\n## About\r\n\r\nRPG-Content-Management is an implementation for the handling of content for the RPG-Core module.\r\n\r\nThe management of the following content is provided by this module:\r\n\r\n * Attributes\r\n * Items, Weapons, Armors\r\n * Enemies, Dungeons\r\n * CraftingRecipies for Items, Weapons and Armors\r\n * Characters\r\n\r\nThe content is added via JSON Objects and content references each other through their ID.\r\n\r\nBecause of that, keep in mind the following hierarchy:\r\n\r\n1. `Attributes` and `Items` have no dependencies\r\n2. `Weapons` and `Armors` depend on existing `Attributes`\r\n3. `Enemies` depend on existing `Attributes` and `Items`\r\n4. `Dungeons` depend on existing `Enemies` and `Items`\r\n5. `CraftingRecipies` can depend on existing `Attributes`, `Items`, `Weapons` and `Armors`\r\n6. `Characters` depend on existing `Attributes`, `Items`, `Weapons` and `Armors`\r\n\r\n## Installation\r\n\r\nnpm: `npm install @bakuenjin/rpg-content-management`\r\n\r\nyarn: `yarn add @bakuenjin/rpg-content-management`\r\n\r\nRPG-Content-Management comes with type definitions out of the box, so no additional types package needs to be installed.\r\n\r\n## Usage\r\n\r\n```ts\r\nimport { Item, Weapon, Armor } from '@bakuenjin/rpg-core'\r\n\r\nimport {\r\n\tAttributeManager,\r\n\tItemManager,\r\n\tWeaponManager,\r\n\tArmorManager,\r\n\tEnemyManager,\r\n\tDungeonManager,\r\n\tCraftingRecipeManager,\r\n\tCharacterManager\r\n} from '@bakuenjin/rpg-content-management'\r\n\r\nimport { attributes } from './attributes.json'\r\nimport { items } from './items.json'\r\nimport { weapons } from './weapons.json'\r\nimport { armors } from './armors.json'\r\nimport { enemies } from './enemies.json'\r\nimport { dungeons } from './dungeons.json'\r\nimport { itemRecipes, weaponRecipes, armorRecipes } from './recipes.json'\r\nimport { existingCharacter } from './characters.json'\r\n\r\n// The references between managers will be established via params\r\nconst attributeManager \t= new AttributeManager(attributes)\r\nconst itemManager \t\t= new ItemManager(items)\r\nconst weaponManager \t= new WeaponManager(attributeManager, weapons)\r\nconst armorManager \t\t= new ArmorManager(attributeManager, armors)\r\nconst enemyManager\t\t= new EnemyManager(attributeManager, itemManager, enemies)\r\nconst dungeonManager\t= new DungeonManager(enemyManager, itemManager, dungeons)\r\n\r\nconst itemRecipeManager\t= new CraftingRecipeManager<Item>({\r\n\trawRecipes: itemRecipes,\r\n\tresultManager: itemManager,\r\n\tattributeManager,\r\n\titemManager,\r\n\tweaponManager,\r\n\tarmorManager\r\n})\r\n\r\nconst weaponRecipeManager = new CraftingRecipeManager<Weapon>({\r\n\trawRecipes: weaponRecipes,\r\n\tresultManager: weaponManager,\r\n\tattributeManager,\r\n\titemManager,\r\n\tweaponManager,\r\n\tarmorManager\r\n})\r\n\r\nconst armorRecipeManager = new CraftingRecipeManager<Armor>({\r\n\trawRecipes: armorRecipes,\r\n\tresultManager: armorManager,\r\n\tattributeManager,\r\n\titemManager,\r\n\tweaponManager,\r\n\tarmorManager\r\n})\r\n\r\nconst characterManager\t= new CharacterManager({\r\n\tattributeManager,\r\n\titemManager,\r\n\tweaponManager,\r\n\tarmorManager\r\n})\r\n\r\n// Characters are parsed, created or serialized individually\r\nconst character = characterManager.parse(existingCharacter)\r\nconst newCharacter = characterManager.create(42, 'Character Name')\r\nconst newCharacterAsJSON = characterManager.serialize(newCharacter)\r\n```","readmeFilename":"README.md"}