活动:新武将抽卡活动
This commit is contained in:
@@ -310,3 +310,41 @@ function getSuitPaper(lv: number) {
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据contentId获得抽卡结果 新武将抽卡活动
|
||||
* @param contentId dic_zyz_gachaContent的id
|
||||
* @param lv 玩家等级
|
||||
* @param goodId 大于0指定id,0:随机
|
||||
*/
|
||||
export function getResultFromContentIdNewHeroActivity(contentId: number, goodId: number, lv: number,) {
|
||||
let dic = gameData.gachaContent.get(contentId);
|
||||
let { type, param, count } = dic;
|
||||
if (type == GACHA_CONTENT_TYPE.HERO) {
|
||||
let result = new GachaResult(contentId);
|
||||
result.setHero(goodId);
|
||||
return result
|
||||
} else {
|
||||
let pool: number[] = [];
|
||||
if (type == GACHA_CONTENT_TYPE.HERO_PIECE) {
|
||||
pool = getAllItemByQuality(IT_TYPE.HERO_PIECE, param[0], lv);
|
||||
} else if (type == GACHA_CONTENT_TYPE.BLUEPRT) {
|
||||
pool = getAllItemByQuality(IT_TYPE.BLUEPRT, param[0], lv);
|
||||
} else if (type == GACHA_CONTENT_TYPE.JEWEL) {
|
||||
pool = getAllJewelByLv(param[0]);
|
||||
} else if (type == GACHA_CONTENT_TYPE.TERAPH_MATERIAL) {
|
||||
pool = param;
|
||||
} else if (type == GACHA_CONTENT_TYPE.SUIT_PAPER) {
|
||||
pool = getSuitPaper(lv);
|
||||
}
|
||||
let item = getRandEelm(pool);
|
||||
let result = new GachaResult(contentId);
|
||||
result.setItem(item[0], count);
|
||||
if (goodId > 0) {
|
||||
result.setItem(goodId, count);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
import { ACTIVITY_TYPE } from '../../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../../db/Activity';
|
||||
import { ActivityNewHeroGachaModel, ActivityNewHeroGachaModelType } from '../../db/ActivityNewHeroGacha';
|
||||
import { ServerlistModel } from '../../db/Serverlist';
|
||||
import { NewHeroGachaData } from '../../domain/activityField/newHeroGachaField';
|
||||
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} activityId 活动Id
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function newHeroGachaActivity(serverId: number, roleId: string) {
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let activityDataArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.NEW_HERO_GACHA, new Date());
|
||||
if (activityDataArray.length === 0) {
|
||||
return null;
|
||||
}
|
||||
let activityData: ActivityModelType = activityDataArray[0];
|
||||
let playerRecord: ActivityNewHeroGachaModelType[] = await ActivityNewHeroGachaModel.findData(serverId, activityData.activityId, roleId);
|
||||
let playerData = new NewHeroGachaData(activityData);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
return playerData;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 玩家玩家活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} activityId 活动Id
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function getPlayerNewHeroGachaData(activityId: number, serverId: number, roleId: string) {
|
||||
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
|
||||
let playerRecord: ActivityNewHeroGachaModelType[] = await ActivityNewHeroGachaModel.findData(serverId, activityId, roleId);
|
||||
|
||||
let playerData = new NewHeroGachaData(activityData);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
|
||||
return playerData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -121,14 +121,16 @@ export async function makeOrder(localOrderID: string, sid: string, orderInfo: Us
|
||||
if (orderInfo.paramStr) {//大富翁商店结算
|
||||
let paramObj = JSON.parse(orderInfo.paramStr);
|
||||
let activityId = paramObj.activityId;//大富翁活动id; orderInfo.activityId是大富翁中的商店活动id
|
||||
let playerMonopolyData: ActivityMonopolyModelType = await ActivityMonopolyModel.findData(orderInfo.serverId, activityId, roleId);
|
||||
let playerLandData: ActivityMonopolyLandModelType = await ActivityMonopolyLandModel.findDataByPosition(orderInfo.serverId, activityId, roleId, playerMonopolyData.curPosition);
|
||||
let roundIndex = playerLandData.stopCount;
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, roundIndex)
|
||||
|
||||
} else {//正常商店结算
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, 0)
|
||||
if (activityId) {
|
||||
let playerMonopolyData: ActivityMonopolyModelType = await ActivityMonopolyModel.findData(orderInfo.serverId, activityId, roleId);
|
||||
let playerLandData: ActivityMonopolyLandModelType = await ActivityMonopolyLandModel.findDataByPosition(orderInfo.serverId, activityId, roleId, playerMonopolyData.curPosition);
|
||||
let roundIndex = playerLandData.stopCount;
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, roundIndex)
|
||||
break;
|
||||
}
|
||||
}
|
||||
//正常商店结算
|
||||
rewardResult = await makeRefreshShopReward(roleId, roleInfo.roleName, sid, orderInfo.serverId, roleInfo.funcs, orderInfo.activityId, orderInfo.productID, 0)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user