import { Categorys, Equip, EquipBase, Quality } from './bean'; import { entry_initor, EntryInitor, extra_entry_num, extra_quality, extra_quality_lv, qualitys } from './constant'; export const createBase = (quality, lv, category, coefficient, extraQuality) => { const entry = new Array(); category.entry.forEach((item) => { const initor: EntryInitor = entry_initor[item.type]; const qualityCoefficient = coefficient[quality]; entry.push(initor.init(lv, qualityCoefficient, item.valCoefficient, extraQuality)); }); return new EquipBase(category.name, category.icon, entry, category.skill); }; export const createExtraEntry = (quality, lv, extraEntrys, coefficient, extraQuality) => { const type = extraEntrys[Math.floor(Math.random() * extraEntrys.length)]; const initor: EntryInitor = entry_initor[type]; const qualityCoefficient = coefficient[quality]; return initor.init(lv, qualityCoefficient, 1, extraQuality); }; export const createSamples = (categorys: Categorys[], uniqueCategorys: Categorys[], colorfulCategorys: Categorys[], type, coefficient) => { const samples = { taigu: new Array(), yuangu: new Array(), colorful: new Array(), unique: new Array(), epic: new Array(), artifact: new Array(), }; colorfulCategorys.forEach((item) => { samples.taigu.push(createSample('colorful', item, type, coefficient, extra_quality[1])); }); colorfulCategorys.forEach((item) => { samples.yuangu.push(createSample('colorful', item, type, coefficient, extra_quality[0])); }); colorfulCategorys.forEach((item) => { samples.colorful.push(createSample('colorful', item, type, coefficient, '')); }); uniqueCategorys.forEach((item) => { samples.unique.push(createSample('unique', item, type, coefficient, '')); }); categorys.forEach((item) => { samples.epic.push(createSample('epic', item, type, coefficient, '')); samples.artifact.push(createSample('artifact', item, type, coefficient, '')); }); return samples; }; const createSample = (quality, category, type, coefficient, extraQuality): Equip => { const lv = extraQuality ? 100 + extra_quality_lv : 100; const qualityBean = new Quality(quality, coefficient[quality], extraQuality); const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const sample = new Equip(type, lv, qualityBean, base, extraEntry); sample.reRoll = category.reRoll; return sample; };