新武将活动:修改字段以及ur武将处理
This commit is contained in:
@@ -119,10 +119,9 @@ export class GachaHandler {
|
||||
const roleId: string = session.get('roleId');
|
||||
|
||||
for (let { hid } of hope) {
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if (hid != 0) {
|
||||
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
if (hid != 0 && dicHero.quality != HERO_QUALITY_TYPE.GOLD) {
|
||||
let dicRecruit = gameData.recruit.get(hid);
|
||||
if (!dicRecruit || !dicRecruit.canHope) {
|
||||
return resResult(STATUS.GACHA_HOPE_NOT_GOLD);
|
||||
}
|
||||
}
|
||||
@@ -274,8 +273,8 @@ export class GachaHandler {
|
||||
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
let index = gameData.recruit.findIndex(cur => cur.actorId == hid);
|
||||
if (index == -1) return resResult(STATUS.GACHA_CAN_NOT_PICK);
|
||||
let dicRecruit = gameData.recruit.get(hid);
|
||||
if (!dicRecruit || !dicRecruit.canVisit) return resResult(STATUS.GACHA_CAN_NOT_PICK);
|
||||
let { pieceId } = dicHero;
|
||||
|
||||
let gachaId = getNormalGachaId();
|
||||
|
||||
@@ -52,7 +52,7 @@ export class HeroHandler {
|
||||
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
|
||||
let dicHero = gameData.hero.get(hid);
|
||||
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
let { pieceId, quality, pieceCount } = dicHero;
|
||||
let { pieceId, pieceCount } = dicHero;
|
||||
// 碎片数量是否足够
|
||||
let costResult = await handleCost(roleId, sid, [{ id: pieceId, count: pieceCount }], ITEM_CHANGE_REASON.COMPOSE_HERO);
|
||||
if (!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
@@ -587,7 +587,7 @@ export class HeroHandler {
|
||||
let dicJob = getJobByGradeAndClass(dicHero.jobClass, 0);
|
||||
|
||||
let newSkins = initSkinTalent(skins);
|
||||
let dicHeroScroll = getScollByStar(dicHero.quality, dicHero.initialStars, dicHero.quality, 0);
|
||||
let dicHeroScroll = getScollByStar(dicHero.quality, dicHero.initialStar, dicHero.quality, dicHero.initialColorStar);
|
||||
let initInfo = HeroModel.getInitInfo(hid, {
|
||||
job: dicJob.jobid, skins: newSkins, skinId, ce,
|
||||
scrollActive: scrollActive,
|
||||
@@ -741,7 +741,7 @@ export class HeroHandler {
|
||||
await RoleModel.updateRoleInfo(roleId, { jewelCount: 0 });
|
||||
let heroInfos = [];
|
||||
|
||||
for(let { actorId } of gameData.recruit) {
|
||||
for(let [actorId] of gameData.recruit) {
|
||||
let dicHero = gameData.hero.get(actorId);
|
||||
if(!dicHero) continue;
|
||||
let { jobid, grade } = gameData.jobClassMaxGrades.get(dicHero.jobClass);
|
||||
|
||||
@@ -302,9 +302,9 @@ export class RoleHandler {
|
||||
};
|
||||
if (!scrollActive) { // 初次激活
|
||||
update.scrollActive = true;
|
||||
update.scrollStar = dicHero.initialStars;
|
||||
update.scrollStar = dicHero.initialStar;
|
||||
update.scrollQuality = dicHero.quality;
|
||||
update.scrollColorStar = 0;
|
||||
update.scrollColorStar = dicHero.initialColorStar;
|
||||
} else {
|
||||
if (star > scrollStar) { // 可以升星
|
||||
update.scrollStar++;
|
||||
|
||||
@@ -483,7 +483,7 @@ export class GachaPull {
|
||||
export function getAllHeroByQuality(quality: number) {
|
||||
let allHero: number[] = [];
|
||||
let allQuality: number[] = [];
|
||||
for (let { actorId } of gameData.recruit) {
|
||||
for (let [actorId] of gameData.recruit) {
|
||||
let dicHero = gameData.hero.get(actorId);
|
||||
if (dicHero.quality == quality) {
|
||||
allHero.push(actorId);
|
||||
|
||||
@@ -27,6 +27,9 @@ import { refreshGacha } from './gachaService';
|
||||
let userGacha: UserGachaType = await UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
|
||||
let dicGacha = gameData.gacha.get(playerData.gachaId);
|
||||
userGacha = await refreshGacha(dicGacha, userGacha);
|
||||
if(!userGacha.pickHero) {
|
||||
userGacha = await UserGachaModel.updateInfo(roleId, playerData.gachaId, activityId, { pickHero: playerData.getDefaultHero() })
|
||||
}
|
||||
playerData.setPlayerRecords(userGacha, dicGacha);
|
||||
|
||||
return playerData;
|
||||
@@ -94,6 +97,15 @@ export async function challengeNewHeroGK(serverId: number, roleId: string, activ
|
||||
*
|
||||
*/
|
||||
export async function newHeroGiftPoint(serverId: number, activityId: number, roleId: string, addPoint: number) {
|
||||
let result = await ActivityNewHeroGiftModel.addPoint(serverId, activityId, roleId, addPoint);
|
||||
return result.totalPoint;
|
||||
let activityData = await getActivityById(activityId);
|
||||
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
let playerData = new NewHeroGiftData(activityData, createTime, serverTime);
|
||||
|
||||
if(playerData.canRecordTaskPoint()) {
|
||||
let result = await ActivityNewHeroGiftModel.addPoint(serverId, activityId, roleId, addPoint);
|
||||
return result.totalPoint;
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -621,8 +621,8 @@ export function getRandRobot(cnt = 1, withAttr = false) {
|
||||
heroes.push(new ComRoleStatusHero({
|
||||
hid: hero.actorId,
|
||||
skinId: hero.actorId,
|
||||
star: hero.star||dicHero.initialStars,
|
||||
colorStar: 0,
|
||||
star: hero.star? hero.star: dicHero.initialStar,
|
||||
colorStar: hero.star? 0: dicHero.initialColorStar,
|
||||
lv: hero.lv,
|
||||
quality: dicHero.quality
|
||||
}));
|
||||
|
||||
@@ -1102,7 +1102,7 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
|
||||
} else if (type == REDIS_KEY.HERO_RANK) {
|
||||
let serverId = args.serverId;
|
||||
|
||||
for (let { actorId: hid } of gameData.recruit) {
|
||||
for (let [hid] of gameData.recruit) {
|
||||
let ranks = await HeroModel.getRank(hid, serverId, HERO_SELECT.RANK_LINEUP);
|
||||
let r = new Rank(type, { serverId, hid });
|
||||
r.setIsInit(true);
|
||||
|
||||
Reference in New Issue
Block a user