天晶:添加稀有属性

This commit is contained in:
luying
2022-07-19 17:13:59 +08:00
parent a47d9facc3
commit 0ac40d1660
5 changed files with 27 additions and 11 deletions

View File

@@ -374,6 +374,9 @@ export class CalCe {
seids.push(seid, rand);
}
}
for(let { seid, rand } of jewel.rareSe) {
seids.push(seid, rand);
}
}
let { ratioUp } = this.addSeidEffect(seids);
let map = new Map<number, number>(); // attrId => val

View File

@@ -397,16 +397,20 @@ export async function addJewels(roleId: string, roleName: string, jewels: { id:
export async function getAddJewelInfo(roleId: string, roleName: string, jewel: { id: number, }) {
let { id, } = jewel;
let { name, randomEffect, effectCount } = gameData.jewel.get(id);
let { name, randomEffect, effectCount, rareEffect } = gameData.jewel.get(id);
// 随机属性
let randomResult: number[] = getRandEelm(randomEffect, effectCount);
let rareResult: number[] = getRandEelm(rareEffect, 1);
let randSe: Array<RandSe> = randomResult.map((id: number, index: number) => {
return getJewelRandSe(index + 1, id);
});
let rareSe: Array<RandSe> = rareResult.map((id: number, index: number) => {
return getJewelRandSe(index + 1, id);
});
return { roleId, roleName, id, name, randSe };
return { roleId, roleName, id, name, randSe, rareSe };
}
/**

View File

@@ -8,13 +8,22 @@ import { CounterModel } from './Counter';
import { COUNTER } from '../consts';
import { HeroModel } from './Hero';
export class RandSe {
export class JewelSe {
@prop({ required: true })
id: number; // 随机属性位置id
@prop({ required: true })
seid: number; // 随机属性池id
@prop({ required: true })
rand: number; // 随机属性内需要随机的值
constructor(id: number, seid: number, rand: number) {
this.id = id;
this.seid = seid;
this.rand = rand;
}
}
export class RandSe extends JewelSe {
@prop({ required: true })
preRand?: number; // 淬炼失败的是随机出的值
@prop({ required: true })
@@ -24,13 +33,6 @@ export class RandSe {
quenched: boolean = false; // 是否淬炼了
@prop({ required: false, default: 0 })
quenchCnt: number = 0; // 淬炼次数
constructor(id: number, seid: number, rand: number) {
this.id = id;
this.seid = seid;
this.rand = rand;
}
}
@index({ roleId: 1, hid: 1, id: 1 })
@@ -54,6 +56,8 @@ export default class Jewel extends BaseModel {
@prop({ required: false, default: 0 })
ePlaceId: number; // 武将装备的部位
@prop({ required: false, type: JewelSe, default: [], _id: false })
rareSe: JewelSe[]; // 强化随机属性
@prop({ required: false, type: RandSe, default: [], _id: false })
randSe: RandSe[]; // 强化随机属性
@prop({ required: false, type: RandSe, default: [], _id: false })

View File

@@ -1,6 +1,6 @@
import { Connect, EPlace, HeroSkin, HeroType, HeroUpdate, Talent } from '../../db/Hero';
import { JewelType, RandSe } from '../../db/Jewel';
import { JewelSe, JewelType, RandSe } from '../../db/Jewel';
import { gameData } from '../../pubUtils/data';
export interface CreateHeroParam extends HeroUpdate {
hid: number;
@@ -104,6 +104,7 @@ export class JewelParam {
ePlaceId: number; // 装备在哪个位置
randSe: RandSe[];
rareSe: JewelSe[];
count: number;
inc: number;
reason: number;
@@ -115,6 +116,7 @@ export class JewelParam {
this.hid = jewel.hid;
this.ePlaceId = jewel.ePlaceId;
this.randSe = jewel.randSe;
this.rareSe = jewel.rareSe;
if(isPush) {
this.count = 1;
this.inc = 1;

View File

@@ -20,6 +20,8 @@ export interface DicJewel {
readonly effectCount: number;
// 套装效果
readonly randomEffect: number[];
// 稀有属性
readonly rareEffect: number[];
// 对应藏宝图id
readonly mapGoodId: number;
// 淬炼消耗
@@ -40,6 +42,7 @@ export function loadJewel() {
arr.forEach(o => {
o.randomEffect = parseNumberList(o.randomEffect);
o.rareEffect = parseNumberList(o.rareEffect);
o.quenchConsume = parseGoodStr(o.quenchConsume);
o.inheritConsume = parseGoodStr(o.inheritConsume);
dicJewel.set(o.good_id, o);