chore(release): 0.0.3
[risinglegends.git] / src / shared / inventory.ts
index 0f81a4c2a652e7fcf4436c163e39b056c71a9156..c3b58b6faba4fc9c783d74804ba03c9d82a4a774 100644 (file)
@@ -1,36 +1,46 @@
-import {Profession} from "./player";
+import {Profession} from "./profession";
+import {SkillID} from "./skills";
 
-export type InventoryType = 'ARMOUR' | 'WEAPON';
+export type InventoryType = 'ARMOUR' | 'WEAPON' | 'SPELL';
 
-export type SubType = ArmourType | WeaponType;
+export type ArmourEquipmentSlot = 'HEAD' | 'LEGS' | 'ARMS' | 'CHEST';
+export type WeaponEquipmentSlot = 'LEFT_HAND' | 'RIGHT_HAND' | 'TWO_HANDED' | 'ANY_HAND';
 
-export type ArmourType = 'HELM' | 'CHEST' | 'ARMS' | 'LEGS';
-export type WeaponType = 'BLADE' | 'BLUNT';
+export type EquipmentSlot = ArmourEquipmentSlot | WeaponEquipmentSlot;
 
 
-export type ShopItem = {
-  id: string;
+export type InventoryItem = {
+  item_id: string;
+  player_id: string;
   name: string;
   type: InventoryType;
-  subType: SubType;
   profession:  Profession;
+  equipment_slot: EquipmentSlot;
   cost: number;
   count: number;
-  requirement_level: number;
-  requirement_strength: number;
-  requirement_constitution: number;
-  requirement_dexterity: number;
-  requirement_intelligence: number;
-  boost_strength: number;
-  boost_constitution: number;
-  boost_dexterity: number;
-  boost_intelligence: number;
-  boost_damage: number;
+  requirements: {
+    level: number,
+    strength: number,
+    constitution: number,
+    dexterity: number,
+    intelligence: number
+  },
+  boosts: {
+    strength: number;
+    constitution: number;
+    dexterity: number;
+    intelligence: number;
+    damage: number;
+    damage_mitigation: number;
+  }
   currentAp: number;
   maxAp: number;
+  affectedSkills: SkillID[];
 }
 
-export type InventoryItem = Omit<ShopItem, 'id'> & {
-  item_id: string;
-  player_id: string;
+// shop items have a numeric id since they're tracked in a separate spreadsheet 
+// and they are also tied to a specific location
+export type ShopItem = Omit<InventoryItem, 'id' | 'player_id'> & {
+  id: number;
+  location_id: number;
 };