-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;
};