import { findIndex } from '@/utils/array';
import { bodyMaps, equipmentFields, idMaps } from '@/convert/equipment/map';
import { getEquipId, getEquipmentName, getEquipmentStar } from '@/convert/equipment/equipment';
import { gemFields } from '@/convert/gem/map';

export function getBodyName(id: number): string {
  const index = findIndex(id, bodyMaps);
  if (index === false) {
    return `-`;
  }

  return bodyMaps[index].label;
}

export function genGemTableColumns(gem: [gemFields], equips: [equipmentFields]): [gemFields] {
  for (let i = 0; i < gem.length; i++) {
    gem[i] = getGemAttributes(gem[i], equips);
  }

  return gem;
}

export function getGemAttributes(fields: gemFields, equips: [equipmentFields]): gemFields {
  // 获取装备名称
  let equipName = `-`;
  let equipStar = `-`;
  if (fields.equip !== '') {
    // @ts-ignore
    const equipId = getEquipId(fields.equip, equips);
    if (equipId > 0) {
      equipName = getEquipmentName(equipId);
      equipStar = getEquipmentStar(equipId);
    }
  }

  fields = {
    part: fields.part,
    partName: getBodyName(fields.part),
    equip: fields.equip,
    step: fields.step,
    slot: fields.slot,
    level: fields.level,
    equipName: equipName,
    equipStar: equipStar,
    suits: fields.suits,
  };

  return fields;
}
