天晶:添加稀有属性

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
+3
View File
@@ -374,6 +374,9 @@ export class CalCe {
seids.push(seid, rand); seids.push(seid, rand);
} }
} }
for(let { seid, rand } of jewel.rareSe) {
seids.push(seid, rand);
}
} }
let { ratioUp } = this.addSeidEffect(seids); let { ratioUp } = this.addSeidEffect(seids);
let map = new Map<number, number>(); // attrId => val let map = new Map<number, number>(); // attrId => val
@@ -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, }) { export async function getAddJewelInfo(roleId: string, roleName: string, jewel: { id: number, }) {
let { id, } = jewel; 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 randomResult: number[] = getRandEelm(randomEffect, effectCount);
let rareResult: number[] = getRandEelm(rareEffect, 1);
let randSe: Array<RandSe> = randomResult.map((id: number, index: number) => { let randSe: Array<RandSe> = randomResult.map((id: number, index: number) => {
return getJewelRandSe(index + 1, id); 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 };
} }
/** /**
+12 -8
View File
@@ -8,13 +8,22 @@ import { CounterModel } from './Counter';
import { COUNTER } from '../consts'; import { COUNTER } from '../consts';
import { HeroModel } from './Hero'; import { HeroModel } from './Hero';
export class RandSe { export class JewelSe {
@prop({ required: true }) @prop({ required: true })
id: number; // 随机属性位置id id: number; // 随机属性位置id
@prop({ required: true }) @prop({ required: true })
seid: number; // 随机属性池id seid: number; // 随机属性池id
@prop({ required: true }) @prop({ required: true })
rand: number; // 随机属性内需要随机的值 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 }) @prop({ required: true })
preRand?: number; // 淬炼失败的是随机出的值 preRand?: number; // 淬炼失败的是随机出的值
@prop({ required: true }) @prop({ required: true })
@@ -24,13 +33,6 @@ export class RandSe {
quenched: boolean = false; // 是否淬炼了 quenched: boolean = false; // 是否淬炼了
@prop({ required: false, default: 0 }) @prop({ required: false, default: 0 })
quenchCnt: number = 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 }) @index({ roleId: 1, hid: 1, id: 1 })
@@ -54,6 +56,8 @@ export default class Jewel extends BaseModel {
@prop({ required: false, default: 0 }) @prop({ required: false, default: 0 })
ePlaceId: number; // 武将装备的部位 ePlaceId: number; // 武将装备的部位
@prop({ required: false, type: JewelSe, default: [], _id: false })
rareSe: JewelSe[]; // 强化随机属性
@prop({ required: false, type: RandSe, default: [], _id: false }) @prop({ required: false, type: RandSe, default: [], _id: false })
randSe: RandSe[]; // 强化随机属性 randSe: RandSe[]; // 强化随机属性
@prop({ required: false, type: RandSe, default: [], _id: false }) @prop({ required: false, type: RandSe, default: [], _id: false })
+3 -1
View File
@@ -1,6 +1,6 @@
import { Connect, EPlace, HeroSkin, HeroType, HeroUpdate, Talent } from '../../db/Hero'; 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'; import { gameData } from '../../pubUtils/data';
export interface CreateHeroParam extends HeroUpdate { export interface CreateHeroParam extends HeroUpdate {
hid: number; hid: number;
@@ -104,6 +104,7 @@ export class JewelParam {
ePlaceId: number; // 装备在哪个位置 ePlaceId: number; // 装备在哪个位置
randSe: RandSe[]; randSe: RandSe[];
rareSe: JewelSe[];
count: number; count: number;
inc: number; inc: number;
reason: number; reason: number;
@@ -115,6 +116,7 @@ export class JewelParam {
this.hid = jewel.hid; this.hid = jewel.hid;
this.ePlaceId = jewel.ePlaceId; this.ePlaceId = jewel.ePlaceId;
this.randSe = jewel.randSe; this.randSe = jewel.randSe;
this.rareSe = jewel.rareSe;
if(isPush) { if(isPush) {
this.count = 1; this.count = 1;
this.inc = 1; this.inc = 1;
+3
View File
@@ -20,6 +20,8 @@ export interface DicJewel {
readonly effectCount: number; readonly effectCount: number;
// 套装效果 // 套装效果
readonly randomEffect: number[]; readonly randomEffect: number[];
// 稀有属性
readonly rareEffect: number[];
// 对应藏宝图id // 对应藏宝图id
readonly mapGoodId: number; readonly mapGoodId: number;
// 淬炼消耗 // 淬炼消耗
@@ -40,6 +42,7 @@ export function loadJewel() {
arr.forEach(o => { arr.forEach(o => {
o.randomEffect = parseNumberList(o.randomEffect); o.randomEffect = parseNumberList(o.randomEffect);
o.rareEffect = parseNumberList(o.rareEffect);
o.quenchConsume = parseGoodStr(o.quenchConsume); o.quenchConsume = parseGoodStr(o.quenchConsume);
o.inheritConsume = parseGoodStr(o.inheritConsume); o.inheritConsume = parseGoodStr(o.inheritConsume);
dicJewel.set(o.good_id, o); dicJewel.set(o.good_id, o);