import {
  IEquipmentSet,
  IItem,
  ItemRarities,
  // IItem,
  ItemSlotType,
  ItemSubType,
  ItemType,
} from '@rpg-engine/shared';

interface IEquipmentSetItems {
  leftHand: IItem;
  head: IItem;
  armor: IItem;
  legs: IItem;
  boot: IItem;
  neck: IItem;
  ring: IItem;
  accessory: IItem;
  inventory: IItem;
  rightHand: IItem;
}

export const items: IEquipmentSetItems = {
  leftHand: {
    _id: '0',
    type: ItemType.Weapon,
    subType: ItemSubType.Sword,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.LeftHand, ItemSlotType.RightHand],
    maxStackSize: 1,
    isUsable: false,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'basilisk-sword',
    texturePath: 'swords/basilisk-sword.png',
    textureKey: 'basilisk-sword',
    name: 'basilisk sword',
    description:
      'You see a short sword. It is a single-handed sword with a handle that just features a grip.',
    attack: 5,
    defense: 0,
    weight: 10,
    tiledId: 66,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription:
      'You see a short sword. It is a single-handed sword with a handle that just features a grip.',
    isEquipable: true,
    isStackable: false,
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  head: {
    _id: '1',
    type: ItemType.Armor,
    subType: ItemSubType.Helmet,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Head],
    maxStackSize: 1,
    isUsable: false,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'iron-helmet',
    texturePath: 'helmets/iron-helmet.png',
    textureKey: 'iron-helmet',
    name: 'Helmet',
    description: 'You see a broad bow.',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'You see a board bow.',
    isEquipable: true,
    isStackable: false,
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  armor: {
    _id: '2',
    type: ItemType.Armor,
    subType: ItemSubType.Armor,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Torso],
    isEquipable: false,
    isStackable: false,
    maxStackSize: 99,

    isUsable: true,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'board-sword-22',
    texturePath: 'armors/golden-armor.png',
    textureKey: 'golden-armor',
    name: 'golden armor',
    description: 'Recover your life',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'Recover your life',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  legs: {
    _id: '3',
    type: ItemType.Armor,
    subType: ItemSubType.Legs,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Legs],
    isEquipable: false,
    isStackable: false,
    maxStackSize: 99,
    stackQty: 13,
    isUsable: true,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'leather-legs',
    texturePath: 'legs/leather-legs.png',
    textureKey: 'leather-legs',
    name: 'Leather legs',
    description: 'Protect your legs',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'Leather legs',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  boot: {
    _id: '4',
    type: ItemType.Armor,
    subType: ItemSubType.Boot,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Feet],
    isEquipable: false,
    isStackable: false,
    maxStackSize: 999,
    isUsable: true,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'board-sword-22',
    texturePath: 'boots/golden-boots.png',
    textureKey: 'golden-boots',
    name: 'golden-boots',
    description: 'Open the gates, but use the key!',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'Key to open things',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  neck: {
    _id: '5',
    type: ItemType.Armor,
    subType: ItemSubType.Accessory,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Neck],
    isEquipable: false,
    isStackable: false,
    maxStackSize: 999,

    isUsable: false,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'sapphire-necklace',
    texturePath: 'accessories/sapphire-necklace.png',
    textureKey: 'sapphire-necklace',
    name: 'sapphire-necklace',
    description: 'Use this to craft things!',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'Somes shard, some crafts.',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  ring: {
    _id: '6',
    type: ItemType.Accessory,
    subType: ItemSubType.Armor,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Ring],
    isEquipable: false,
    isStackable: false,
    maxStackSize: 999,

    isUsable: false,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'jade-ring',
    texturePath: '"rings/jade-ring.png',
    textureKey: 'jade-ring',
    name: 'jade-ring',
    description: 'Chop chop.',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'Use this axe to chop wood and stuffs.',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  accessory: {
    _id: '392acek4j7c8e80d2fs60404',
    hasUseWith: false,
    type: ItemType.Accessory,
    subType: ItemSubType.Ranged,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Accessory],
    isEquipable: true,
    isStackable: true,
    maxStackSize: 999,
    stackQty: 275,
    isUsable: false,
    isStorable: true,
    isTwoHanded: false,
    layer: 1,
    isItemContainer: true,
    isSolid: false,
    key: 'stone',
    texturePath: 'ranged-weapons/stone-qty-5.png',
    textureKey: 'stone',
    name: 'stone',
    generateContainerSlots: 10,
    description: 'You see a stone. It is used with slingshot.',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'You see a stone. It is used with slingshot',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    rarity: ItemRarities.Common,
  },
  inventory: {
    _id: '8',
    type: ItemType.Container,
    subType: ItemSubType.Other,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.Inventory],
    isEquipable: false,
    isStackable: false,
    maxStackSize: 999,
    isUsable: true,
    isStorable: true,
    layer: 1,
    isItemContainer: true,
    isSolid: false,
    key: 'backpack',
    texturePath: 'containers/backpack.png',
    textureKey: 'containers/backpack.png',
    name: 'backpack',
    description: 'Open the gates, but use the key!',
    attack: 7,
    defense: 3,
    weight: 13,
    tiledId: 67,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription: 'Key to open things',
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    generateContainerSlots: 10,
    itemContainer: {
      _id: '62aebdb5785a9f0089a4f8cf',
      slotQty: 10,
      allowedItemTypes: [],
      parentItem: '8',
      slots: {},
      owner: '62aebdb2785a9f0089a4f869',
      createdAt: '2022-06-19T06:09:57.971Z',
      updatedAt: '2022-06-19T06:09:57.971Z',
      isEmpty: true,
    },
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
  rightHand: {
    _id: '629acef1c7c8e8002ff60736',
    type: ItemType.Armor,
    subType: ItemSubType.Shield,
    textureAtlas: 'items',
    allowedEquipSlotType: [ItemSlotType.LeftHand, ItemSlotType.RightHand],
    maxStackSize: 1,
    isUsable: false,
    isStorable: true,
    layer: 1,
    isItemContainer: false,
    isSolid: false,
    key: 'plate-shield',
    texturePath: 'shields/plate-shield.png',
    textureKey: 'plate-shield',
    name: 'Plate Shield',
    description:
      'You see a short sword. It is a single-handed sword with a handle that just features a grip.',
    attack: 5,
    defense: 0,
    weight: 10,
    tiledId: 66,
    x: 320,
    y: 144,
    scene: 'MainScene',
    fullDescription:
      'You see a short sword. It is a single-handed sword with a handle that just features a grip.',
    isEquipable: true,
    isStackable: false,
    createdAt: '2022-06-04T03:18:09.335Z',
    updatedAt: '2022-06-04T18:16:49.056Z',
    isTwoHanded: false,
    hasUseWith: false,
    rarity: ItemRarities.Common,
  },
};

export const equipmentSetMock: IEquipmentSet = {
  _id: '629acef1c7c8e8002ff60736',
  head: undefined,
  armor: items.armor,
  legs: undefined,
  boot: items.boot,
  leftHand: items.leftHand,
  rightHand: items.rightHand,
  neck: undefined,
  ring: undefined,
  accessory: items.accessory,
  inventory: items.inventory,
};
