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 @@ @@ -8,7 +8,10 @@
</div>
</div>
<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>
<div class='lv'>

19
src/config/equips/armor.ts

@ -1,6 +1,6 @@ @@ -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[] = [ @@ -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[] = [ @@ -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);

34
src/config/equips/base.ts

@ -1,46 +1,54 @@ @@ -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;

6
src/config/equips/bean.ts

@ -21,13 +21,13 @@ export class Entry { @@ -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;
}
}

14
src/config/equips/bracers.ts

@ -112,26 +112,26 @@ export const bracersCategorys: BracersCategory[] = [ @@ -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);

40
src/config/equips/constant.ts

@ -3,8 +3,8 @@ import { Entry } from './bean'; @@ -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 { @@ -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 { @@ -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);
}
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 {
init(lv: number, qualityCoefficient: number, valCoefficient?: number, extraQuality?: string): Entry {
const entry = super.init(lv, qualityCoefficient, valCoefficient, extraQuality);
entry.showVal += '%';
return entry;
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 { @@ -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),

14
src/config/equips/jewelry.ts

@ -125,26 +125,26 @@ export const jewelryCategorys: JewelryCategory[] = [ @@ -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);

14
src/config/equips/neck.ts

@ -98,26 +98,26 @@ export const neckCategorys: NeckCategory[] = [ @@ -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);

14
src/config/equips/pants.ts

@ -105,26 +105,26 @@ export const pantsCategorys: PantsCategory[] = [ @@ -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);

14
src/config/equips/ring.ts

@ -105,26 +105,26 @@ export const ringCategorys = [ @@ -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);

14
src/config/equips/shoes.ts

@ -71,26 +71,26 @@ export const shoesCategorys: ShoesCategory[] = [ @@ -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);

14
src/config/equips/weapon.ts

@ -93,26 +93,26 @@ export const weaponCategorys: WeaponCategory[] = [ @@ -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);

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

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

7
src/config/i18n/zh/index.ts

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

2
src/config/skill/armor.ts

@ -69,7 +69,7 @@ export class JinGuangHuShen extends CounterSkill { @@ -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;

22
src/tool/random.ts

@ -1,4 +1,4 @@ @@ -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) => { @@ -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) => { @@ -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;

3
src/views/backpack/strengthen.vue

@ -168,10 +168,11 @@ const reforge = () => { @@ -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);

8
src/views/illustrated/equips.vue

@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
<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 class="equips">
<div class="equip" v-for="item in samples" :key="item.name">
@ -28,6 +30,10 @@ const props = defineProps({ @@ -28,6 +30,10 @@ const props = defineProps({
type: String,
default: ''
},
extraQuality: {
type: String,
default: ''
},
samples: {
type: Array as () => any[],
default: [],

22
src/views/illustrated/illustrated.vue

@ -6,6 +6,8 @@ @@ -6,6 +6,8 @@
<Drawer :title="t('illustrated.0')" v-model="showIllustrated">
<Tabs :tabs="tabs">
<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="unique" :samples="uniques[item.name]" />
<Equips :type="item.name" quality="epic" :samples="epics[item.name]" />
@ -28,6 +30,26 @@ const { state, commit, dispatch } = useStore(); @@ -28,6 +30,26 @@ const { state, commit, dispatch } = useStore();
const showIllustrated = computed(() => {
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 = {
weapon: weaponSamples.colorful,
armor: armorSamples.colorful,

Loading…
Cancel
Save