chore(release): 0.0.3
[risinglegends.git] / src / shared / inventory.ts
1 import {Profession} from "./profession";
2 import {SkillID} from "./skills";
3
4 export type InventoryType = 'ARMOUR' | 'WEAPON' | 'SPELL';
5
6 export type ArmourEquipmentSlot = 'HEAD' | 'LEGS' | 'ARMS' | 'CHEST';
7 export type WeaponEquipmentSlot = 'LEFT_HAND' | 'RIGHT_HAND' | 'TWO_HANDED' | 'ANY_HAND';
8
9 export type EquipmentSlot = ArmourEquipmentSlot | WeaponEquipmentSlot;
10
11
12 export type InventoryItem = {
13   item_id: string;
14   player_id: string;
15   name: string;
16   type: InventoryType;
17   profession:  Profession;
18   equipment_slot: EquipmentSlot;
19   cost: number;
20   count: number;
21   requirements: {
22     level: number,
23     strength: number,
24     constitution: number,
25     dexterity: number,
26     intelligence: number
27   },
28   boosts: {
29     strength: number;
30     constitution: number;
31     dexterity: number;
32     intelligence: number;
33     damage: number;
34     damage_mitigation: number;
35   }
36   currentAp: number;
37   maxAp: number;
38   affectedSkills: SkillID[];
39 }
40
41 // shop items have a numeric id since they're tracked in a separate spreadsheet 
42 // and they are also tied to a specific location
43 export type ShopItem = Omit<InventoryItem, 'id' | 'player_id'> & {
44   id: number;
45   location_id: number;
46 };