创建初始装备
This commit is contained in:
@@ -14,10 +14,16 @@ export class EquipHandler {
|
||||
|
||||
// TODO 合成装备
|
||||
public async composeEquip(msg: { gid: number, originalEquip: number[]}, session: BackendSession) {
|
||||
let roleId: string = session.get('roleId');
|
||||
let roleName: string = session.get('roleName');
|
||||
let sid: string = session.get('sid');
|
||||
// 消耗材料
|
||||
// 获得装备
|
||||
let {gid, } = msg;
|
||||
|
||||
// 1. 获得部位
|
||||
let items = [{id: gid, count: 1}];
|
||||
let goods = await addItems(roleId, roleName, sid, items);
|
||||
return resResult(STATUS.SUCCESS, { goods });
|
||||
}
|
||||
|
||||
// TODO 装备栏强化
|
||||
|
||||
@@ -16,17 +16,17 @@ export class RoleHandler {
|
||||
}
|
||||
|
||||
async initEquips(roleId: string, roleName: string) {
|
||||
const seqId = await CounterModel.getNewCounter(COUNTER.EID);
|
||||
const equipInfo = {
|
||||
roleId,
|
||||
roleName,
|
||||
id: 1,
|
||||
name: '倚天剑',
|
||||
seqId,
|
||||
type: 1
|
||||
}
|
||||
const equip = await EquipModel.createEquip(equipInfo);
|
||||
await HeroModel.addEquip(roleId, 12, equip._id);
|
||||
// const seqId = await CounterModel.getNewCounter(COUNTER.EID);
|
||||
// const equipInfo = {
|
||||
// roleId,
|
||||
// roleName,
|
||||
// id: 1,
|
||||
// name: '倚天剑',
|
||||
// seqId,
|
||||
// type: 1
|
||||
// }
|
||||
// const equip = await EquipModel.createEquip(equipInfo);
|
||||
// await HeroModel.addEquip(roleId, 12, equip._id);
|
||||
}
|
||||
|
||||
async initHeros(roleId: string, roleName: string) {
|
||||
|
||||
@@ -9,6 +9,8 @@ import { ItemModel } from '../db/Item';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
import { pinus } from 'pinus';
|
||||
import { addEquips, addBags, addSkins } from '../pubUtils/itemUtils';
|
||||
import { EquipInter } from '../pubUtils/interface';
|
||||
import { gameData } from '../pubUtils/data';
|
||||
const _ = require('underscore');
|
||||
|
||||
export async function handleFixedReward(roleId: string, roleName: string, rewardStr: string, multi: number) {
|
||||
@@ -62,21 +64,21 @@ async function rewardWeapons (roleId: string, roleName: string, dicGood: any, w
|
||||
|
||||
let weaponsData = [];
|
||||
let cnt = weapon.cnt;
|
||||
while (cnt > 0) {
|
||||
const seqId = await CounterModel.getNewCounter(COUNTER.EID);
|
||||
const equipInfo = {
|
||||
roleId,
|
||||
roleName,
|
||||
id: weapon.id,
|
||||
name: dicGood.name,
|
||||
seqId,
|
||||
quality: dicGood.lv,
|
||||
type: dicGood.goodType
|
||||
}
|
||||
const equip = await EquipModel.createEquip(equipInfo);
|
||||
cnt -= 1;
|
||||
weaponsData.push(equip);
|
||||
}
|
||||
// while (cnt > 0) {
|
||||
// const seqId = await CounterModel.getNewCounter(COUNTER.EID);
|
||||
// const equipInfo = {
|
||||
// roleId,
|
||||
// roleName,
|
||||
// id: weapon.id,
|
||||
// name: dicGood.name,
|
||||
// seqId,
|
||||
// quality: dicGood.lv,
|
||||
// type: dicGood.goodType
|
||||
// }
|
||||
// const equip = await EquipModel.createEquip(equipInfo);
|
||||
// cnt -= 1;
|
||||
// weaponsData.push(equip);
|
||||
// }
|
||||
return weaponsData;
|
||||
}
|
||||
|
||||
@@ -125,7 +127,6 @@ async function rewardCurrency (roleId: string, dicGood: any, data: {id:number,cn
|
||||
return goods;
|
||||
}
|
||||
interface Item {id?: number, count?: number, seqId?: number, type?: number};
|
||||
interface Equip {id: number, name: string, quality: number, type: number};
|
||||
interface Bag {id: number, itemName: string, count: number, type: number, hid:number};
|
||||
export async function handleCost(roleId: string, sid: string, goods: Array<Item>) {
|
||||
let currencysMap: any = {};
|
||||
@@ -208,7 +209,7 @@ function sortConsumes(goods: Array<Item>, bags: Array<Item>, currencysMap: any,
|
||||
export async function addItems(roleId: string, roleName: string, sid: string, goods: Array<Item>) {
|
||||
let showItems: Array<Item> = [];
|
||||
let currencysMap: any = {};
|
||||
let equips: Array<Equip> = [];
|
||||
let equips: Array<EquipInter> = [];
|
||||
let bags: Array<Bag> = [];
|
||||
let skins: Array<number> = [];
|
||||
let uids = [{uid: roleId, sid}];
|
||||
@@ -216,7 +217,7 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
||||
let equipInfos = [];
|
||||
for (let equip of equips) {
|
||||
let equipInfo = await addEquips(roleId, roleName, equip);
|
||||
showItems.push({id: equip.id, count: 1});
|
||||
showItems.push({seqId: equipInfo.seqId, id: equip.id, count: 1});
|
||||
equipInfos.push(equipInfo);
|
||||
}
|
||||
//装备推送
|
||||
@@ -262,12 +263,12 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
||||
return showItems;
|
||||
}
|
||||
|
||||
function sortItems (goods: Array<Item>, bags: Array<Bag>, skins: Array<number>, currencysMap: any, equips: Array<Equip>, showItems: Array<Item>) {
|
||||
function sortItems (goods: Array<Item>, bags: Array<Bag>, skins: Array<number>, currencysMap: any, equips: Array<EquipInter>, showItems: Array<Item>) {
|
||||
for (let good of goods) {
|
||||
let goodInfo = getGoodById(good.id);
|
||||
let goodInfo = gameData.goods.get(good.id);
|
||||
if (goodInfo.goodType == GOOD_TYPE.EQUIP) { // 装备
|
||||
for (let i = 0; i < good.count; i++) {
|
||||
equips.push({id: good.id, name: goodInfo.name, quality: goodInfo.lv, type: goodInfo.goodType});
|
||||
equips.push({id: good.id, ...goodInfo});
|
||||
}
|
||||
} else {
|
||||
let {type, isCurrency} = ITID.get(goodInfo.itid);
|
||||
|
||||
Reference in New Issue
Block a user