战力:地玉&羁绊

This commit is contained in:
luying
2022-04-28 17:08:38 +08:00
parent 05af28cd78
commit 6be0cf1792
2 changed files with 18 additions and 11 deletions

View File

@@ -146,8 +146,7 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
case HERO_SYSTEM_TYPE.CONNECT: // 9. 羁绊
{
for(let [ hid, { connections } ] of heroUpdates) {
let { shipId } = param;
calCe.setConnection(hid, shipId, connections);
calCe.setConnection(hid, connections);
}
break;
}
@@ -262,6 +261,7 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
for(let [hid, { ePlace = [] }] of heroUpdates) {
for(let { id, stones } of ePlace) {
if(ePlaceId == id) {
calCe.setStone(hid, ePlaceId, stones);
calCe.setJewel(hid, id, stones, curJewel);
}
}

View File

@@ -198,17 +198,24 @@ export class CalCe {
}
// 羁绊
public setConnection(hid: number, shipId: number, connections: Connect[]) {
public setConnection(hid: number, connections: Connect[]) {
this.data.clearHeroAttrByHid(hid, 'connect');
let connect = connections.find(cur => cur.shipId == shipId);
let level = connect?.level||0;
let currentShip = getFriendShipById(shipId, level);
if (currentShip) {
for (let { id, number: val } of currentShip.attributes) {
let heroAttr = this.data.getHeroAttrByHidAndId(hid, id);
heroAttr.connect = val;
let map = new Map<number, number>(); // attrId => val;
for(let { shipId, level = 0 } of connections) {
let currentShip = getFriendShipById(shipId, level);
if (currentShip) {
for (let { id, number: val } of currentShip.attributes) {
if(!map.has(id)) {
map.set(id, val);
} else {
map.set(id, map.get(id) + val);
}
}
}
}
for(let [id, val] of map) {
let heroAttr = this.data.getHeroAttrByHidAndId(hid, id);
heroAttr.connect = val;
}
}