diff --git a/packages/spelunker-api/src/lib/entities/Item.mjs b/packages/spelunker-api/src/lib/entities/Item.mjs index 935a2dc..afee578 100644 --- a/packages/spelunker-api/src/lib/entities/Item.mjs +++ b/packages/spelunker-api/src/lib/entities/Item.mjs @@ -2,6 +2,7 @@ import DatabaseEntity from '../db/Entity.mjs'; import { worldConnection } from '../db/connections.mjs'; import GameObjectLoot from './GameObjectLoot.mjs'; +import ItemClass from './ItemClass.mjs'; import ItemDisplayInfo from './ItemDisplayInfo.mjs'; import ItemLoot from './ItemLoot.mjs'; import ItemSet from './ItemSet.mjs'; @@ -62,6 +63,10 @@ class Item extends DatabaseEntity { return NPCLoot.query.where({ Item: this.id }).orderBy('Chance', 'desc'); } + itemClass() { + return ItemClass.find(this.data.class); + } + itemSet() { return ItemSet.find(this.data.itemset); } diff --git a/packages/spelunker-api/src/lib/entities/ItemClass.mjs b/packages/spelunker-api/src/lib/entities/ItemClass.mjs new file mode 100644 index 0000000..9da9368 --- /dev/null +++ b/packages/spelunker-api/src/lib/entities/ItemClass.mjs @@ -0,0 +1,9 @@ +import DBCEntity from '../dbc/Entity.mjs'; + +class ItemClass extends DBCEntity { + static get dbc() { + return 'ItemClass'; + } +} + +export default ItemClass; diff --git a/packages/spelunker-api/src/lib/graph/schema/entities/ItemClassType.mjs b/packages/spelunker-api/src/lib/graph/schema/entities/ItemClassType.mjs new file mode 100644 index 0000000..2cde9f1 --- /dev/null +++ b/packages/spelunker-api/src/lib/graph/schema/entities/ItemClassType.mjs @@ -0,0 +1,14 @@ +import { + GraphQLInt, + GraphQLNonNull, + GraphQLObjectType, + GraphQLString, +} from '../../../graphql/index.mjs'; + +export default new GraphQLObjectType({ + name: 'ItemClass', + fields: () => ({ + id: { type: new GraphQLNonNull(GraphQLInt) }, + name: { type: new GraphQLNonNull(GraphQLString) }, + }), +}); diff --git a/packages/spelunker-api/src/lib/graph/schema/entities/ItemType.mjs b/packages/spelunker-api/src/lib/graph/schema/entities/ItemType.mjs index b23eab0..d8537fa 100644 --- a/packages/spelunker-api/src/lib/graph/schema/entities/ItemType.mjs +++ b/packages/spelunker-api/src/lib/graph/schema/entities/ItemType.mjs @@ -9,6 +9,7 @@ import CollectionType from '../CollectionType.mjs'; import CurrencyType from '../CurrencyType.mjs'; import GameObjectLootType from './GameObjectLootType.mjs'; +import ItemClassType from './ItemClassType.mjs'; import ItemDisplayInfoType from './ItemDisplayInfoType.mjs'; import ItemLootType from './ItemLootType.mjs'; import ItemQualityType from './ItemQualityType.mjs'; @@ -23,6 +24,7 @@ export default new GraphQLObjectType({ id: { type: new GraphQLNonNull(GraphQLInt) }, name: { type: new GraphQLNonNull(GraphQLString) }, buyPrice: { type: CurrencyType }, + itemClass: { type: ItemClassType }, itemSet: { type: ItemSetType }, sellPrice: { type: CurrencyType }, quality: { type: ItemQualityType },