Browse Source

新增远古神话和太古神话品质

2.0
许孟阳 2 months ago
parent
commit
a6a7f9a512
  1. 5
      src/components/equip.vue
  2. 19
      src/config/equips/armor.ts
  3. 34
      src/config/equips/base.ts
  4. 6
      src/config/equips/bean.ts
  5. 14
      src/config/equips/bracers.ts
  6. 40
      src/config/equips/constant.ts
  7. 14
      src/config/equips/jewelry.ts
  8. 14
      src/config/equips/neck.ts
  9. 14
      src/config/equips/pants.ts
  10. 14
      src/config/equips/ring.ts
  11. 14
      src/config/equips/shoes.ts
  12. 14
      src/config/equips/weapon.ts
  13. 6
      src/config/i18n/zh/euips.ts
  14. 7
      src/config/i18n/zh/index.ts
  15. 2
      src/config/skill/armor.ts
  16. 22
      src/tool/random.ts
  17. 3
      src/views/backpack/strengthen.vue
  18. 8
      src/views/illustrated/equips.vue
  19. 22
      src/views/illustrated/illustrated.vue

5
src/components/equip.vue

@ -8,7 +8,10 @@
</div> </div>
</div> </div>
<div class='type'> <div class='type'>
<div :class="equip.quality.quality">{{ t('quality.' + equip.quality.quality) }}</div> <div :class="equip.quality.quality">
{{ t('extraQuality.' + equip.quality.extraQuality) }}
{{ t('quality.' + equip.quality.quality) }}
</div>
<div>{{ t(equip.type + '.type') }}</div> <div>{{ t(equip.type + '.type') }}</div>
</div> </div>
<div class='lv'> <div class='lv'>

19
src/config/equips/armor.ts

@ -1,6 +1,6 @@
import { createExtraEntry, createBase, createSamples } from './base'; import { createExtraEntry, createBase, createSamples } from './base';
import { Entry, Quality, EquipBase, Equip, Categorys } from './bean'; 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 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 }; 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: 'bloc', valCoefficient: 2.8 },
{ type: 'def', valCoefficient: 1.0 }, { type: 'def', valCoefficient: 1.0 },
], ],
'LaoBuKePo' 'LaoBuKePo',
0.6
), ),
]; ];
@ -124,26 +125,26 @@ export const armorCategorys: ArmorCategory[] = [
export const initialArmor = () => { export const initialArmor = () => {
const type = 'armor'; 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 base = new EquipBase('initial', 'A_A3.png', [new Entry('def', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('hp', 10, '+10', 10, 10)]; const extraEntry = [new Entry('hp', 10, '+10', 10, 10)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'armor';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const armorExtraEntry = (quality, lv) => { export const armorExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const armorSamples = createSamples(armorCategorys, armorUniqueCategorys, armorColorfulCategorys, 'armor', coefficient); export const armorSamples = createSamples(armorCategorys, armorUniqueCategorys, armorColorfulCategorys, 'armor', coefficient);

34
src/config/equips/base.ts

@ -1,46 +1,54 @@
import { Categorys, Equip, EquipBase, Quality } from './bean'; 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(); const entry = new Array();
category.entry.forEach((item) => { category.entry.forEach((item) => {
const initor: EntryInitor = entry_initor[item.type]; const initor: EntryInitor = entry_initor[item.type];
const qualityCoefficient = coefficient[quality]; 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); 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 type = extraEntrys[Math.floor(Math.random() * extraEntrys.length)];
const initor: EntryInitor = entry_initor[type]; const initor: EntryInitor = entry_initor[type];
const qualityCoefficient = coefficient[quality]; 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) => { export const createSamples = (categorys: Categorys[], uniqueCategorys: Categorys[], colorfulCategorys: Categorys[], type, coefficient) => {
const samples = { const samples = {
taigu: new Array(),
yuangu: new Array(),
colorful: new Array(), colorful: new Array(),
unique: new Array(), unique: new Array(),
epic: new Array(), epic: new Array(),
artifact: new Array(), artifact: new Array(),
}; };
colorfulCategorys.forEach((item) => { 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) => { uniqueCategorys.forEach((item) => {
samples.unique.push(createSample('unique', item, type, coefficient)); samples.unique.push(createSample('unique', item, type, coefficient, ''));
}); });
categorys.forEach((item) => { categorys.forEach((item) => {
samples.epic.push(createSample('epic', item, type, coefficient)); samples.epic.push(createSample('epic', item, type, coefficient, ''));
samples.artifact.push(createSample('artifact', item, type, coefficient)); samples.artifact.push(createSample('artifact', item, type, coefficient, ''));
}); });
return samples; return samples;
}; };
const createSample = (quality, category, type, coefficient): Equip => { const createSample = (quality, category, type, coefficient, extraQuality): Equip => {
const lv = 100; const lv = extraQuality ? 100 + extra_quality_lv : 100;
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const sample = new Equip(type, lv, qualityBean, base, extraEntry); const sample = new Equip(type, lv, qualityBean, base, extraEntry);
sample.reRoll = category.reRoll; sample.reRoll = category.reRoll;

6
src/config/equips/bean.ts

@ -21,13 +21,13 @@ export class Entry {
export class Quality { export class Quality {
quality: string; quality: string;
qualityCoefficient: number; qualityCoefficient: number;
// color: string;
extraEntryNum: number; extraEntryNum: number;
constructor(quality: string, coefficient: number) { extraQuality: string;
constructor(quality: string, coefficient: number, extraQuality: string) {
this.quality = quality; this.quality = quality;
this.qualityCoefficient = coefficient; this.qualityCoefficient = coefficient;
// this.color = quality_collor[quality];
this.extraEntryNum = extra_entry_num[quality]; this.extraEntryNum = extra_entry_num[quality];
this.extraQuality = extraQuality;
} }
} }

14
src/config/equips/bracers.ts

@ -112,26 +112,26 @@ export const bracersCategorys: BracersCategory[] = [
export const initialbracers = () => { export const initialbracers = () => {
const type = 'bracers'; 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 base = new EquipBase('shiwangsy', 'bracers/新手.png', [new Entry('atk', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('hp', 20, '+20', 20, 20)]; const extraEntry = [new Entry('hp', 20, '+20', 20, 20)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'bracers';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const bracersExtraEntry = (quality, lv) => { export const bracersExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const bracersSamples = createSamples(bracersCategorys, bracersUniqueCategorys, bracersColorfulCategorys, 'bracers', coefficient); export const bracersSamples = createSamples(bracersCategorys, bracersUniqueCategorys, bracersColorfulCategorys, 'bracers', coefficient);

40
src/config/equips/constant.ts

@ -3,8 +3,8 @@ import { Entry } from './bean';
//装备质量 //装备质量
export const qualitys = ['shabby', 'ordinary', 'artifact', 'epic', 'unique', 'colorful']; export const qualitys = ['shabby', 'ordinary', 'artifact', 'epic', 'unique', 'colorful'];
export const extra_quality = ['yuangu', 'taigu']; export const extra_quality = ['yuangu', 'taigu'];
export const extra_quality_rate = [0.1, 0.1]; export const extra_quality_rate = [0.1, 0.01];
export const extra_quality_lv = 20; export const extra_quality_lv = 50;
//装备颜色 //装备颜色
export const quality_collor = { export const quality_collor = {
@ -53,15 +53,13 @@ class BaseInitor implements EntryInitor {
factor1: number; factor1: number;
factor2: number; factor2: number;
constant: number; constant: number;
defCoefficient: number = 1;
constructor(type: string, factor1: number, factor2: number, constant: number) { constructor(type: string, factor1: number, factor2: number, constant: number) {
this.type = type; this.type = type;
this.factor1 = factor1; this.factor1 = factor1;
this.factor2 = factor2; this.factor2 = factor2;
this.constant = constant; this.constant = constant;
} }
init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { init(lv: number, qualityCoefficient: number, valCoefficient: number, extraQuality?: string): Entry {
valCoefficient = valCoefficient || this.defCoefficient;
const num1 = lv * valCoefficient * this.factor1; const num1 = lv * valCoefficient * this.factor1;
const num2 = Math.random() * lv * this.factor2 + this.constant; const num2 = Math.random() * lv * this.factor2 + this.constant;
const manNum2 = 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 value = Math.round((num1 + num2) * qualityCoefficient) || 1;
const max = Math.round((num1 + manNum2) * qualityCoefficient) || 1; const max = Math.round((num1 + manNum2) * qualityCoefficient) || 1;
const min = Math.round((num1 + minNum2) * 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);
} }
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);
} }
class PercentInitor extends BaseInitor { return new Entry(this.type, value, '+' + value + unity, max, min);
init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry {
const entry = super.init(lv, qualityCoefficient, valCoefficient, extraQuality);
entry.showVal += '%';
return entry;
} }
} }
class CritInitor extends BaseInitor { class CritInitor extends BaseInitor {
constructor(type: string, factor1: number, factor2: number, constant: number) { constructor(type: string, factor1: number, factor2: number, constant: number) {
super(type, factor1, factor2, constant); super(type, factor1, factor2, constant);
this.defCoefficient = 0;
} }
init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { init(lv: number, qualityCoefficient: number, valCoefficient: number, extraQuality?: string): Entry {
valCoefficient = valCoefficient || this.defCoefficient;
const value = this.call(Math.random() * this.factor1, lv, valCoefficient, qualityCoefficient); const value = this.call(Math.random() * this.factor1, lv, valCoefficient, qualityCoefficient);
const max = this.call(this.factor1, lv, valCoefficient, qualityCoefficient); const max = this.call(this.factor1, lv, valCoefficient, qualityCoefficient);
const min = this.call(0, 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 { call(num1, lv, valCoefficient, qualityCoefficient): number {
const lvFactor = (0.5 * lv) / 100 + 0.5; const lvFactor = (0.5 * lv) / 100 + 0.5;
@ -98,24 +95,23 @@ class CritInitor extends BaseInitor {
} }
} }
class DmgInitor extends BaseInitor { class DmgInitor extends BaseInitor {
init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry { init(lv: number, qualityCoefficient: number, valCoefficient: number, extraQuality?: string): Entry {
valCoefficient = valCoefficient || 1;
const value = Math.round((lv * this.factor1 * (Math.random() + this.factor2) + this.constant) * qualityCoefficient * valCoefficient) || 1; 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 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; 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 = { export const entry_initor = {
atk: new BaseInitor('atk', 1, 0.5, 1), 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), 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), 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), 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), crit: new CritInitor('crit', 5, 2, 5),
critDmg: new CritInitor('critDmg', 15, 7, 16), critDmg: new CritInitor('critDmg', 15, 7, 16),
critAvoid: new CritInitor('critAvoid', 5, 0, 7), critAvoid: new CritInitor('critAvoid', 5, 0, 7),

14
src/config/equips/jewelry.ts

@ -125,26 +125,26 @@ export const jewelryCategorys: JewelryCategory[] = [
export const initialJewelry = () => { export const initialJewelry = () => {
const type = 'jewelry'; 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 base = new EquipBase('shiwangsy', 'jewelry/狮王手印.png', [new Entry('atk', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)]; const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'jewelry';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const jewelryExtraEntry = (quality, lv) => { export const jewelryExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const jewelrySamples = createSamples(jewelryCategorys, jewelryUniqueCategorys, jewelryColorfulCategorys, 'jewelry', coefficient); export const jewelrySamples = createSamples(jewelryCategorys, jewelryUniqueCategorys, jewelryColorfulCategorys, 'jewelry', coefficient);

14
src/config/equips/neck.ts

@ -98,26 +98,26 @@ export const neckCategorys: NeckCategory[] = [
export const initialNeck = () => { export const initialNeck = () => {
const type = 'neck'; 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 base = new EquipBase('initial', 'Ac_3.png', [new Entry('atk', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)]; const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'neck';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const neckExtraEntry = (quality, lv) => { export const neckExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const neckSamples = createSamples(neckCategorys, neckUniqueCategorys, neckColorfulCategorys, 'neck', coefficient); export const neckSamples = createSamples(neckCategorys, neckUniqueCategorys, neckColorfulCategorys, 'neck', coefficient);

14
src/config/equips/pants.ts

@ -105,26 +105,26 @@ export const pantsCategorys: PantsCategory[] = [
export const initialpants = () => { export const initialpants = () => {
const type = 'pants'; 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 base = new EquipBase('initial', 'pants/新手.png', [new Entry('def', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('hp', 10, '+10', 10, 10)]; const extraEntry = [new Entry('hp', 10, '+10', 10, 10)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'pants';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const pantsExtraEntry = (quality, lv) => { export const pantsExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const pantsSamples = createSamples(pantsCategorys, pantsUniqueCategorys, pantsColorfulCategorys, 'pants', coefficient); export const pantsSamples = createSamples(pantsCategorys, pantsUniqueCategorys, pantsColorfulCategorys, 'pants', coefficient);

14
src/config/equips/ring.ts

@ -105,26 +105,26 @@ export const ringCategorys = [
export const initialRing = () => { export const initialRing = () => {
const type = 'ring'; 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 base = new EquipBase('initial', 'Ac_10.png', [new Entry('atk', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)]; const extraEntry = [new Entry('crit', 10, '+10%', 10, 10)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'ring';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const ringExtraEntry = (quality, lv) => { export const ringExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const ringSamples = createSamples(ringCategorys, ringUniqueCategorys, ringColorfulCategorys, 'ring', coefficient); export const ringSamples = createSamples(ringCategorys, ringUniqueCategorys, ringColorfulCategorys, 'ring', coefficient);

14
src/config/equips/shoes.ts

@ -71,26 +71,26 @@ export const shoesCategorys: ShoesCategory[] = [
export const initialshoes = () => { export const initialshoes = () => {
const type = 'shoes'; 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 base = new EquipBase('initial', 'shoes/新手.png', [new Entry('moveSpeed', 10, '+10%', 10, 10)]);
const extraEntry = [new Entry('hp', 10, '+10', 10, 10)]; const extraEntry = [new Entry('hp', 10, '+10', 10, 10)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'shoes';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const shoesExtraEntry = (quality, lv) => { export const shoesExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const shoesSamples = createSamples(shoesCategorys, shoesUniqueCategorys, shoesColorfulCategorys, 'shoes', coefficient); export const shoesSamples = createSamples(shoesCategorys, shoesUniqueCategorys, shoesColorfulCategorys, 'shoes', coefficient);

14
src/config/equips/weapon.ts

@ -93,26 +93,26 @@ export const weaponCategorys: WeaponCategory[] = [
export const initialWeapon = () => { export const initialWeapon = () => {
const type = 'weapon'; 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 base = new EquipBase('zhanma', 'weapon/初拥.png', [new Entry('atk', 1, '+1', 1, 1)]);
const extraEntry = [new Entry('atk', 1, '+1', 1, 1)]; const extraEntry = [new Entry('atk', 1, '+1', 1, 1)];
return new Equip(type, 1, qualityBean, base, extraEntry); 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 type = 'weapon';
const qualityBean = new Quality(quality, coefficient[quality]); const qualityBean = new Quality(quality, coefficient[quality], extraQuality);
const base = createBase(quality, lv, category, coefficient); const base = createBase(quality, lv, category, coefficient, extraQuality);
const extraEntry = new Array(); const extraEntry = new Array();
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
for (let i = 0; i < extraEntryNum; i++) { 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); return new Equip(type, lv, qualityBean, base, extraEntry);
}; };
export const weaponExtraEntry = (quality, lv) => { export const weaponExtraEntry = (quality, lv, extraQuality) => {
return createExtraEntry(quality, lv, extraEntrys, coefficient); return createExtraEntry(quality, lv, extraEntrys, coefficient, extraQuality);
}; };
export const weaponSamples = createSamples(weaponCategorys, weaponUniqueCategorys, weaponColorfulCategorys, 'weapon', coefficient); export const weaponSamples = createSamples(weaponCategorys, weaponUniqueCategorys, weaponColorfulCategorys, 'weapon', coefficient);

6
src/config/i18n/zh/euips.ts

@ -6,9 +6,9 @@ export const quality = {
unique: '神器', unique: '神器',
colorful: '神话', colorful: '神话',
}; };
export const extra_quality = { export const extraQuality = {
1: '远古', yuangu: '远古',
2: '太古', taigu: '太古',
}; };
export const weapon = { export const weapon = {
type: '武器', type: '武器',

7
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'; import * as skills from './skills';
export default class Zh { export default class Zh {
@ -26,6 +26,7 @@ export default class Zh {
shoes = shoes; shoes = shoes;
bracers = bracers; bracers = bracers;
quality = quality; quality = quality;
extraQuality = extraQuality;
skill = skills; skill = skills;
lv = '等级'; lv = '等级';
@ -115,8 +116,8 @@ export default class Zh {
'BOSS有概率额外掉落神器装备,难度越高爆率越高', 'BOSS有概率额外掉落神器装备,难度越高爆率越高',
'100以后开放小秘境和大秘境', '100以后开放小秘境和大秘境',
'大小秘境有概率掉落神话品质装备', '大小秘境有概率掉落神话品质装备',
'神话品质装备有概率提升为远古(lv+20)或太古(lv+20且满ROLL)', '神话品质装备有概率提升为远古神话或太古神话',
'大秘境有概率掉落强化保护卷', '大秘境有概率掉落强化相关卷轴(未实装)',
]; ];
dungeonAction = ['重复挑战', '向上挑战', '开始挑战']; dungeonAction = ['重复挑战', '向上挑战', '开始挑战'];

2
src/config/skill/armor.ts

@ -69,7 +69,7 @@ export class JinGuangHuShen extends CounterSkill {
owner.battleLog(replace(t('skill.jinguanghushen.2'), [this.hpPercent])); owner.battleLog(replace(t('skill.jinguanghushen.2'), [this.hpPercent]));
} }
} }
//laobukepo //牢不可破
export class LaoBuKePo extends PrePassiveSkill { export class LaoBuKePo extends PrePassiveSkill {
name: string = 'laobukepo'; name: string = 'laobukepo';
percent: number = 200; percent: number = 200;

22
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'; import * as Equips from '@/config/equips';
const types = ['weapon', 'arrmor', 'neck', 'ring', 'jewelry', 'bracers', 'pants', 'shoes']; const types = ['weapon', 'arrmor', 'neck', 'ring', 'jewelry', 'bracers', 'pants', 'shoes'];
@ -33,9 +33,11 @@ export const randomEquip = (rates, lv) => {
const quality = randomQuality(rates); const quality = randomQuality(rates);
if (quality) { if (quality) {
lv = randomLv(lv, quality); lv = randomLv(lv, quality);
const extraQuality = randomExtraQuality(quality);
extraQuality && (lv += extra_quality_lv);
const category = randomCategory(quality); const category = randomCategory(quality);
const creator = Equips['create' + category.type]; const creator = Equips['create' + category.type];
return creator(quality, lv, category); return creator(quality, lv, category, extraQuality);
} else { } else {
return null; return null;
} }
@ -49,6 +51,22 @@ const randomLv = (lv, quality) => {
lv = lv > 100 ? 100 : lv; lv = lv > 100 ? 100 : lv;
return 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 randomQuality = (rates) => {
const r = Math.random(); const r = Math.random();
let tmp = 0; let tmp = 0;

3
src/views/backpack/strengthen.vue

@ -168,10 +168,11 @@ const reforge = () => {
} }
const equip = prop.equip; const equip = prop.equip;
const quality = equip.quality.quality; const quality = equip.quality.quality;
const extraQuality = equip.quality.extraQuality;
const extraEntryNum = extra_entry_num[quality]; const extraEntryNum = extra_entry_num[quality];
const extraEntry = new Array(); const extraEntry = new Array();
for (let i = 0; i < extraEntryNum; i++) { 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); extraEntry.push(entry);
} }
commit("add_player_coins", -1 * reforgeNeed.value); commit("add_player_coins", -1 * reforgeNeed.value);

8
src/views/illustrated/equips.vue

@ -1,5 +1,7 @@
<template> <template>
<div v-if="samples.length > 0" :class="['title', quality]">{{ t('quality.' + quality) }}{{ t(type + '.type') }} <div v-if="samples.length > 0" :class="['title', quality]">
{{ t('extraQuality.' + extraQuality) }}
{{ t('quality.' + quality) }}{{ t(type + '.type') }}
</div> </div>
<div class="equips"> <div class="equips">
<div class="equip" v-for="item in samples" :key="item.name"> <div class="equip" v-for="item in samples" :key="item.name">
@ -28,6 +30,10 @@ const props = defineProps({
type: String, type: String,
default: '' default: ''
}, },
extraQuality: {
type: String,
default: ''
},
samples: { samples: {
type: Array as () => any[], type: Array as () => any[],
default: [], default: [],

22
src/views/illustrated/illustrated.vue

@ -6,6 +6,8 @@
<Drawer :title="t('illustrated.0')" v-model="showIllustrated"> <Drawer :title="t('illustrated.0')" v-model="showIllustrated">
<Tabs :tabs="tabs"> <Tabs :tabs="tabs">
<tab v-for="item in tabs" :name="item.name"> <tab v-for="item in tabs" :name="item.name">
<Equips :type="item.name" quality="colorful" extraQuality="taigu" :samples="taigu[item.name]" />
<Equips :type="item.name" quality="colorful" extraQuality="yuangu" :samples="yuangu[item.name]" />
<Equips :type="item.name" quality="colorful" :samples="colorful[item.name]" /> <Equips :type="item.name" quality="colorful" :samples="colorful[item.name]" />
<Equips :type="item.name" quality="unique" :samples="uniques[item.name]" /> <Equips :type="item.name" quality="unique" :samples="uniques[item.name]" />
<Equips :type="item.name" quality="epic" :samples="epics[item.name]" /> <Equips :type="item.name" quality="epic" :samples="epics[item.name]" />
@ -28,6 +30,26 @@ const { state, commit, dispatch } = useStore();
const showIllustrated = computed(() => { const showIllustrated = computed(() => {
return state.curMenu == 'illustrated'; return state.curMenu == 'illustrated';
}); });
const taigu = {
weapon: weaponSamples.taigu,
armor: armorSamples.taigu,
neck: neckSamples.taigu,
ring: ringSamples.taigu,
jewelry: jewelrySamples.taigu,
pants: pantsSamples.taigu,
shoes: shoesSamples.taigu,
bracers: bracersSamples.taigu,
}
const yuangu = {
weapon: weaponSamples.yuangu,
armor: armorSamples.yuangu,
neck: neckSamples.yuangu,
ring: ringSamples.yuangu,
jewelry: jewelrySamples.yuangu,
pants: pantsSamples.yuangu,
shoes: shoesSamples.yuangu,
bracers: bracersSamples.yuangu,
}
const colorful = { const colorful = {
weapon: weaponSamples.colorful, weapon: weaponSamples.colorful,
armor: armorSamples.colorful, armor: armorSamples.colorful,

Loading…
Cancel
Save