diff --git a/src/components/equip.vue b/src/components/equip.vue index 3b78e4b..7e01745 100644 --- a/src/components/equip.vue +++ b/src/components/equip.vue @@ -8,7 +8,10 @@
-
{{ t('quality.' + equip.quality.quality) }}
+
+ {{ t('extraQuality.' + equip.quality.extraQuality) }} + {{ t('quality.' + equip.quality.quality) }} +
{{ t(equip.type + '.type') }}
diff --git a/src/config/equips/armor.ts b/src/config/equips/armor.ts index 4af702d..0a52494 100644 --- a/src/config/equips/armor.ts +++ b/src/config/equips/armor.ts @@ -1,6 +1,6 @@ import { createExtraEntry, createBase, createSamples } from './base'; import { Entry, Quality, EquipBase, Equip, Categorys } from './bean'; -import { qualitys, entry_initor, extra_entry_num } from './constant'; +import { qualitys, extra_entry_num } from './constant'; const extraEntrys = ['atk', 'hp', 'def', 'defPercent', 'hpPercent', 'dmgReduc', 'critAvoid', 'critDmgReduc']; const coefficient = { shabby: 0.7, ordinary: 1, artifact: 1.5, epic: 1.8, unique: 2, colorful: 2 }; @@ -57,7 +57,8 @@ export const armorColorfulCategorys: Categorys[] = [ { type: 'bloc', valCoefficient: 2.8 }, { type: 'def', valCoefficient: 1.0 }, ], - 'LaoBuKePo' + 'LaoBuKePo', + 0.6 ), ]; @@ -124,26 +125,26 @@ export const armorCategorys: ArmorCategory[] = [ export const initialArmor = () => { const type = 'armor'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('initial', 'A_A3.png', [new Entry('def', 1, '+1', 1, 1)]); const extraEntry = [new Entry('hp', 10, '+10', 10, 10)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createarmor = (quality, lv, category) => { +export const createarmor = (quality, lv, category, extraQuality) => { const type = 'armor'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(armorExtraEntry(quality, lv)); + extraEntry.push(armorExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const armorExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const armorExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const armorSamples = createSamples(armorCategorys, armorUniqueCategorys, armorColorfulCategorys, 'armor', coefficient); diff --git a/src/config/equips/base.ts b/src/config/equips/base.ts index f9518f4..7442ca0 100644 --- a/src/config/equips/base.ts +++ b/src/config/equips/base.ts @@ -1,46 +1,54 @@ import { Categorys, Equip, EquipBase, Quality } from './bean'; -import { entry_initor, EntryInitor, extra_entry_num, qualitys } from './constant'; +import { entry_initor, EntryInitor, extra_entry_num, extra_quality, extra_quality_lv, qualitys } from './constant'; -export const createBase = (quality, lv, category, coefficient) => { +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)); + 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) => { +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); + 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.colorful.push(createSample('colorful', item, type, coefficient)); + 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)); + 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)); + samples.epic.push(createSample('epic', item, type, coefficient, '')); + samples.artifact.push(createSample('artifact', item, type, coefficient, '')); }); return samples; }; -const createSample = (quality, category, type, coefficient): Equip => { - const lv = 100; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); +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; diff --git a/src/config/equips/bean.ts b/src/config/equips/bean.ts index 0bc2e0f..4171310 100644 --- a/src/config/equips/bean.ts +++ b/src/config/equips/bean.ts @@ -21,13 +21,13 @@ export class Entry { export class Quality { quality: string; qualityCoefficient: number; - // color: string; extraEntryNum: number; - constructor(quality: string, coefficient: number) { + extraQuality: string; + constructor(quality: string, coefficient: number, extraQuality: string) { this.quality = quality; this.qualityCoefficient = coefficient; - // this.color = quality_collor[quality]; this.extraEntryNum = extra_entry_num[quality]; + this.extraQuality = extraQuality; } } diff --git a/src/config/equips/bracers.ts b/src/config/equips/bracers.ts index ee51049..627bd8f 100644 --- a/src/config/equips/bracers.ts +++ b/src/config/equips/bracers.ts @@ -112,26 +112,26 @@ export const bracersCategorys: BracersCategory[] = [ export const initialbracers = () => { const type = 'bracers'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('shiwangsy', 'bracers/新手.png', [new Entry('atk', 1, '+1', 1, 1)]); const extraEntry = [new Entry('hp', 20, '+20', 20, 20)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createbracers = (quality, lv, category): Equip => { +export const createbracers = (quality, lv, category, extraQuality): Equip => { const type = 'bracers'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(bracersExtraEntry(quality, lv)); + extraEntry.push(bracersExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const bracersExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const bracersExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const bracersSamples = createSamples(bracersCategorys, bracersUniqueCategorys, bracersColorfulCategorys, 'bracers', coefficient); diff --git a/src/config/equips/constant.ts b/src/config/equips/constant.ts index 3f7a6fb..cd03978 100644 --- a/src/config/equips/constant.ts +++ b/src/config/equips/constant.ts @@ -3,8 +3,8 @@ import { Entry } from './bean'; //装备质量 export const qualitys = ['shabby', 'ordinary', 'artifact', 'epic', 'unique', 'colorful']; export const extra_quality = ['yuangu', 'taigu']; -export const extra_quality_rate = [0.1, 0.1]; -export const extra_quality_lv = 20; +export const extra_quality_rate = [0.1, 0.01]; +export const extra_quality_lv = 50; //装备颜色 export const quality_collor = { @@ -53,15 +53,13 @@ class BaseInitor implements EntryInitor { factor1: number; factor2: number; constant: number; - defCoefficient: number = 1; constructor(type: string, factor1: number, factor2: number, constant: number) { this.type = type; this.factor1 = factor1; this.factor2 = factor2; this.constant = constant; } - init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { - valCoefficient = valCoefficient || this.defCoefficient; + init(lv: number, qualityCoefficient: number, valCoefficient: number, extraQuality?: string): Entry { const num1 = lv * valCoefficient * this.factor1; const num2 = Math.random() * lv * this.factor2 + this.constant; const manNum2 = lv * this.factor2 + this.constant; @@ -69,27 +67,26 @@ class BaseInitor implements EntryInitor { const value = Math.round((num1 + num2) * qualityCoefficient) || 1; const max = Math.round((num1 + manNum2) * qualityCoefficient) || 1; const min = Math.round((num1 + minNum2) * qualityCoefficient) || 1; - return new Entry(this.type, value, '+' + value, max, min); + return this.createEntry(value, max, min, extraQuality); } -} -class PercentInitor extends BaseInitor { - init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { - const entry = super.init(lv, qualityCoefficient, valCoefficient, extraQuality); - entry.showVal += '%'; - return entry; + + createEntry(value, max, min, extraQuality): Entry { + const unity = attr_unitys[this.type] || ''; + if (extraQuality == extra_quality[1]) { + return new Entry(this.type, max, '+' + max + unity, max, max); + } + return new Entry(this.type, value, '+' + value + unity, max, min); } } class CritInitor extends BaseInitor { constructor(type: string, factor1: number, factor2: number, constant: number) { super(type, factor1, factor2, constant); - this.defCoefficient = 0; } - init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { - valCoefficient = valCoefficient || this.defCoefficient; + init(lv: number, qualityCoefficient: number, valCoefficient: number, extraQuality?: string): Entry { const value = this.call(Math.random() * this.factor1, lv, valCoefficient, qualityCoefficient); const max = this.call(this.factor1, lv, valCoefficient, qualityCoefficient); const min = this.call(0, lv, valCoefficient, qualityCoefficient); - return new Entry(this.type, value, '+' + value + '%', max, min); + return this.createEntry(value, max, min, extraQuality); } call(num1, lv, valCoefficient, qualityCoefficient): number { const lvFactor = (0.5 * lv) / 100 + 0.5; @@ -98,24 +95,23 @@ class CritInitor extends BaseInitor { } } class DmgInitor extends BaseInitor { - init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { - valCoefficient = valCoefficient || 1; + init(lv: number, qualityCoefficient: number, valCoefficient: number, extraQuality?: string): Entry { const value = Math.round((lv * this.factor1 * (Math.random() + this.factor2) + this.constant) * qualityCoefficient * valCoefficient) || 1; const max = Math.round((lv * this.factor1 * (1 + this.factor2) + this.constant) * qualityCoefficient * valCoefficient) || 1; const min = Math.round((lv * this.factor1 * this.factor2 + this.constant) * qualityCoefficient * valCoefficient) || 1; - return new Entry(this.type, value, '+' + value + '%', max, min); + return this.createEntry(value, max, min, extraQuality); } } export const entry_initor = { atk: new BaseInitor('atk', 1, 0.5, 1), - atkPercent: new PercentInitor('atkPercent', 0.11, 0.1, 4), + atkPercent: new BaseInitor('atkPercent', 0.11, 0.1, 4), hp: new BaseInitor('hp', 5, 0.5, 1), - hpPercent: new PercentInitor('hpPercent', 0.1, 0.1, 4), + hpPercent: new BaseInitor('hpPercent', 0.1, 0.1, 4), def: new BaseInitor('def', 1, 0.5, 1), - defPercent: new PercentInitor('defPercent', 0.13, 0.1, 4), + defPercent: new BaseInitor('defPercent', 0.13, 0.1, 4), bloc: new BaseInitor('bloc', 0.25, 1 / 3, 1), - blocPercent: new PercentInitor('blocPercent', 0.1, 0.1, 4), + blocPercent: new BaseInitor('blocPercent', 0.1, 0.1, 4), crit: new CritInitor('crit', 5, 2, 5), critDmg: new CritInitor('critDmg', 15, 7, 16), critAvoid: new CritInitor('critAvoid', 5, 0, 7), diff --git a/src/config/equips/jewelry.ts b/src/config/equips/jewelry.ts index 92c5533..b985830 100644 --- a/src/config/equips/jewelry.ts +++ b/src/config/equips/jewelry.ts @@ -125,26 +125,26 @@ export const jewelryCategorys: JewelryCategory[] = [ export const initialJewelry = () => { const type = 'jewelry'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('shiwangsy', 'jewelry/狮王手印.png', [new Entry('atk', 1, '+1', 1, 1)]); const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createjewelry = (quality, lv, category): Equip => { +export const createjewelry = (quality, lv, category, extraQuality): Equip => { const type = 'jewelry'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(jewelryExtraEntry(quality, lv)); + extraEntry.push(jewelryExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const jewelryExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const jewelryExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const jewelrySamples = createSamples(jewelryCategorys, jewelryUniqueCategorys, jewelryColorfulCategorys, 'jewelry', coefficient); diff --git a/src/config/equips/neck.ts b/src/config/equips/neck.ts index e047bf0..0c79619 100644 --- a/src/config/equips/neck.ts +++ b/src/config/equips/neck.ts @@ -98,26 +98,26 @@ export const neckCategorys: NeckCategory[] = [ export const initialNeck = () => { const type = 'neck'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('initial', 'Ac_3.png', [new Entry('atk', 1, '+1', 1, 1)]); const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createneck = (quality, lv, category) => { +export const createneck = (quality, lv, category, extraQuality) => { const type = 'neck'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(neckExtraEntry(quality, lv)); + extraEntry.push(neckExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const neckExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const neckExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const neckSamples = createSamples(neckCategorys, neckUniqueCategorys, neckColorfulCategorys, 'neck', coefficient); diff --git a/src/config/equips/pants.ts b/src/config/equips/pants.ts index de5728a..b34f192 100644 --- a/src/config/equips/pants.ts +++ b/src/config/equips/pants.ts @@ -105,26 +105,26 @@ export const pantsCategorys: PantsCategory[] = [ export const initialpants = () => { const type = 'pants'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('initial', 'pants/新手.png', [new Entry('def', 1, '+1', 1, 1)]); const extraEntry = [new Entry('hp', 10, '+10', 10, 10)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createpants = (quality, lv, category) => { +export const createpants = (quality, lv, category, extraQuality) => { const type = 'pants'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(pantsExtraEntry(quality, lv)); + extraEntry.push(pantsExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const pantsExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const pantsExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const pantsSamples = createSamples(pantsCategorys, pantsUniqueCategorys, pantsColorfulCategorys, 'pants', coefficient); diff --git a/src/config/equips/ring.ts b/src/config/equips/ring.ts index cc72582..6641059 100644 --- a/src/config/equips/ring.ts +++ b/src/config/equips/ring.ts @@ -105,26 +105,26 @@ export const ringCategorys = [ export const initialRing = () => { const type = 'ring'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('initial', 'Ac_10.png', [new Entry('atk', 1, '+1', 1, 1)]); const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createring = (quality, lv, category) => { +export const createring = (quality, lv, category, extraQuality) => { const type = 'ring'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(ringExtraEntry(quality, lv)); + extraEntry.push(ringExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const ringExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const ringExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const ringSamples = createSamples(ringCategorys, ringUniqueCategorys, ringColorfulCategorys, 'ring', coefficient); diff --git a/src/config/equips/shoes.ts b/src/config/equips/shoes.ts index a15a66a..928c7ec 100644 --- a/src/config/equips/shoes.ts +++ b/src/config/equips/shoes.ts @@ -71,26 +71,26 @@ export const shoesCategorys: ShoesCategory[] = [ export const initialshoes = () => { const type = 'shoes'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('initial', 'shoes/新手.png', [new Entry('moveSpeed', 10, '+10%', 10, 10)]); const extraEntry = [new Entry('hp', 10, '+10', 10, 10)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createshoes = (quality, lv, category) => { +export const createshoes = (quality, lv, category, extraQuality) => { const type = 'shoes'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(shoesExtraEntry(quality, lv)); + extraEntry.push(shoesExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const shoesExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const shoesExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const shoesSamples = createSamples(shoesCategorys, shoesUniqueCategorys, shoesColorfulCategorys, 'shoes', coefficient); diff --git a/src/config/equips/weapon.ts b/src/config/equips/weapon.ts index d950a26..9255762 100644 --- a/src/config/equips/weapon.ts +++ b/src/config/equips/weapon.ts @@ -93,26 +93,26 @@ export const weaponCategorys: WeaponCategory[] = [ export const initialWeapon = () => { const type = 'weapon'; - const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]]); + const qualityBean = new Quality(qualitys[0], coefficient[qualitys[0]], ''); const base = new EquipBase('zhanma', 'weapon/初拥.png', [new Entry('atk', 1, '+1', 1, 1)]); const extraEntry = [new Entry('atk', 1, '+1', 1, 1)]; return new Equip(type, 1, qualityBean, base, extraEntry); }; -export const createweapon = (quality, lv, category) => { +export const createweapon = (quality, lv, category, extraQuality) => { const type = 'weapon'; - const qualityBean = new Quality(quality, coefficient[quality]); - const base = createBase(quality, lv, category, coefficient); + const qualityBean = new Quality(quality, coefficient[quality], extraQuality); + const base = createBase(quality, lv, category, coefficient, extraQuality); const extraEntry = new Array(); const extraEntryNum = extra_entry_num[quality]; for (let i = 0; i < extraEntryNum; i++) { - extraEntry.push(weaponExtraEntry(quality, lv)); + extraEntry.push(weaponExtraEntry(quality, lv, extraQuality)); } return new Equip(type, lv, qualityBean, base, extraEntry); }; -export const weaponExtraEntry = (quality, lv) => { - return createExtraEntry(quality, lv, extraEntrys, coefficient); +export const weaponExtraEntry = (quality, lv, extraQuality) => { + return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality); }; export const weaponSamples = createSamples(weaponCategorys, weaponUniqueCategorys, weaponColorfulCategorys, 'weapon', coefficient); diff --git a/src/config/i18n/zh/euips.ts b/src/config/i18n/zh/euips.ts index e9cb69d..02ccd57 100644 --- a/src/config/i18n/zh/euips.ts +++ b/src/config/i18n/zh/euips.ts @@ -6,9 +6,9 @@ export const quality = { unique: '神器', colorful: '神话', }; -export const extra_quality = { - 1: '远古', - 2: '太古', +export const extraQuality = { + yuangu: '远古', + taigu: '太古', }; export const weapon = { type: '武器', diff --git a/src/config/i18n/zh/index.ts b/src/config/i18n/zh/index.ts index 6e628ae..7c0d054 100644 --- a/src/config/i18n/zh/index.ts +++ b/src/config/i18n/zh/index.ts @@ -1,4 +1,4 @@ -import { weapon, armor, neck, ring, jewelry, pants, shoes, bracers, quality } from './euips'; +import { weapon, armor, neck, ring, jewelry, pants, shoes, bracers, quality, extraQuality } from './euips'; import * as skills from './skills'; export default class Zh { @@ -26,6 +26,7 @@ export default class Zh { shoes = shoes; bracers = bracers; quality = quality; + extraQuality = extraQuality; skill = skills; lv = '等级'; @@ -115,8 +116,8 @@ export default class Zh { 'BOSS有概率额外掉落神器装备,难度越高爆率越高', '100以后开放小秘境和大秘境', '大小秘境有概率掉落神话品质装备', - '神话品质装备有概率提升为远古(lv+20)或太古(lv+20且满ROLL)', - '大秘境有概率掉落强化保护卷', + '神话品质装备有概率提升为远古神话或太古神话', + '大秘境有概率掉落强化相关卷轴(未实装)', ]; dungeonAction = ['重复挑战', '向上挑战', '开始挑战']; diff --git a/src/config/skill/armor.ts b/src/config/skill/armor.ts index c35abc5..c802d22 100644 --- a/src/config/skill/armor.ts +++ b/src/config/skill/armor.ts @@ -69,7 +69,7 @@ export class JinGuangHuShen extends CounterSkill { owner.battleLog(replace(t('skill.jinguanghushen.2'), [this.hpPercent])); } } -//laobukepo +//牢不可破 export class LaoBuKePo extends PrePassiveSkill { name: string = 'laobukepo'; percent: number = 200; diff --git a/src/tool/random.ts b/src/tool/random.ts index 110fdbe..9cd278c 100644 --- a/src/tool/random.ts +++ b/src/tool/random.ts @@ -1,4 +1,4 @@ -import { difficultys, Categorys, qualitys } from '@/config'; +import { difficultys, Categorys, qualitys, extra_quality, extra_quality_rate, extra_quality_lv } from '@/config'; import * as Equips from '@/config/equips'; const types = ['weapon', 'arrmor', 'neck', 'ring', 'jewelry', 'bracers', 'pants', 'shoes']; @@ -33,9 +33,11 @@ export const randomEquip = (rates, lv) => { const quality = randomQuality(rates); if (quality) { lv = randomLv(lv, quality); + const extraQuality = randomExtraQuality(quality); + extraQuality && (lv += extra_quality_lv); const category = randomCategory(quality); const creator = Equips['create' + category.type]; - return creator(quality, lv, category); + return creator(quality, lv, category, extraQuality); } else { return null; } @@ -49,6 +51,22 @@ const randomLv = (lv, quality) => { lv = lv > 100 ? 100 : lv; return lv; }; +const randomExtraQuality = (quality) => { + const r = Math.random(); + let tmp = 0; + let extraQuality = ''; + if (quality != qualitys[5]) { + return extraQuality; + } + for (let i = 0; i < extra_quality_rate.length; i++) { + tmp += extra_quality_rate[i]; + if (r < tmp) { + extraQuality = extra_quality[i]; + break; + } + } + return extraQuality; +}; const randomQuality = (rates) => { const r = Math.random(); let tmp = 0; diff --git a/src/views/backpack/strengthen.vue b/src/views/backpack/strengthen.vue index d265105..95c859e 100644 --- a/src/views/backpack/strengthen.vue +++ b/src/views/backpack/strengthen.vue @@ -33,7 +33,7 @@

{{ t('stren.0') }}:{{ needCoins }}

+ }}

{{ t('stren.0') }}:{{ needCoins }}

@@ -168,10 +168,11 @@ const reforge = () => { } const equip = prop.equip; const quality = equip.quality.quality; + const extraQuality = equip.quality.extraQuality; const extraEntryNum = extra_entry_num[quality]; const extraEntry = new Array(); for (let i = 0; i < extraEntryNum; i++) { - const entry = reforger[equip.type](quality, equip.lv); + const entry = reforger[equip.type](quality, equip.lv, extraQuality); extraEntry.push(entry); } commit("add_player_coins", -1 * reforgeNeed.value); diff --git a/src/views/illustrated/equips.vue b/src/views/illustrated/equips.vue index 1ea00b4..89ef8c3 100644 --- a/src/views/illustrated/equips.vue +++ b/src/views/illustrated/equips.vue @@ -1,5 +1,7 @@