ZZZ-Plugin/lib/convert/property.js

125 lines
No EOL
2.5 KiB
JavaScript

import { getMapData } from '../../utils/file.js';
const propertyData = getMapData('Property2Name');
const prop_id = {
111: 'hpmax',
121: 'attack',
131: 'def',
122: 'breakstun',
201: 'crit',
211: 'critdam',
314: 'elementabnormalpower',
312: 'elementmystery',
231: 'penratio',
232: 'penvalue',
305: 'sprecover',
310: 'spgetratio',
115: 'spmax',
315: 'physdmg',
316: 'fire',
317: 'ice',
318: 'thunder',
319: 'dungeonbuffether',
};
const pro_id = {
1: 'attack',
2: 'stun',
3: 'anomaly',
4: 'support',
5: 'defense',
};
/**
* 获取属性css类名
* @param {string} _id 属性id
* @returns {string | null}
*/
export function idToClassName(_id) {
let propId = _id.toString();
propId = propId.slice(0, 3);
const propIcon = prop_id[propId];
if (!propIcon) return null;
return propIcon;
}
/**
* 获取属性标识
* @param {string | number} id 属性id
* @returns {string | null}
*/
export const idToSignName = id => {
const result = propertyData[id];
if (!result) return null;
return result[0];
};
/**
* 获取属性全称
* @param {string | number} id 属性id
* @returns {string | null}
*/
export const idToName = id => {
const result = propertyData[id];
if (!result) return null;
return result[1];
};
/**
* 获取属性2字简称
* @param {string | number} id 属性id
* @returns {string}
*/
export const idToShortName2 = id => {
const result = propertyData[id];
if (!result) return '';
return result[2];
};
/**
* 获取属性2~3字简称
* @param {string | number} id 属性id
* @returns {string}
*/
export const idToShortName3 = id => {
const result = propertyData[id];
if (!result) return '';
return result[3];
};
/**
* 获取属性2~3字简称
* @param {string | number} id 属性id
* @returns {string}
*/
export const nameToShortName3 = propName => {
for (const id in propertyData) {
if (propertyData[id][1] === propName) return propertyData[id][3];
};
return propName;
};
/**
* 属性名转id
* @param {string} propName 属性名
* @returns {number}
*/
export const nameToId = (propName) => {
for (const id in propertyData) {
if (propertyData[id][1] === propName ||
propertyData[id][1].replace('属性', '') === propName
) return Number(id);
};
return 0;
};
/**
* 中文属性名转英文属性名
* @param {string} propNameZH 属性名
* @returns {string}
*/
export const nameZHToNameEN = (propNameZH) => {
for (const id in propertyData) {
if (propertyData[id]?.[1] === propNameZH) return propertyData[id][0];
};
return '';
}