✨ feat(拍卖行): 拍品按照建筑物等级生成
https://bantugame.feishu.cn/wiki/wikcn1qfpNYNUnOvuKiyK69eqqg?lang=zh-CN&open_in_browser=true
This commit is contained in:
@@ -33,6 +33,7 @@ import { CounterModel } from "../../db/Counter";
|
||||
import { setInterval } from "timers";
|
||||
import { DicRaceActivity } from "../../pubUtils/dictionary/DicRaceActivity";
|
||||
import { dispatch } from "../../pubUtils/dispatcher";
|
||||
import { GuildModel } from "../../db/Guild";
|
||||
|
||||
let gateActivityObj: GateActivityObject;
|
||||
let cityActivityObj: CityActivityObject;
|
||||
@@ -389,7 +390,8 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
|
||||
let guildScore = await r.getMyScore({ guildCode });
|
||||
// console.log('****** ranks', rank, 'guildScore', guildScore);
|
||||
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, rank);
|
||||
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv');
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, rank, guild?.lv);
|
||||
// console.log('***** rewards', JSON.stringify(rewards));
|
||||
|
||||
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, index, {
|
||||
@@ -468,7 +470,8 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
|
||||
await GuildActivityCityModel.guard(serverId, cityId, "", "", index + 1); // 无人能占领
|
||||
}
|
||||
}
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, cityId);
|
||||
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv');
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, guild?.lv, cityId);
|
||||
let members = obj.getMembersOfGuild(guildCode);
|
||||
|
||||
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, index, {
|
||||
@@ -539,7 +542,8 @@ export async function participants(guildCode: string, sourceType: number, source
|
||||
let rec = await GuildActivityRecordModel.findBySourceCode(guildCode, sourceType, sourceCode);
|
||||
if (!rec) return [];
|
||||
|
||||
let baseNum = getGuildAuctionBasicNum(rec.aid, rec.rank, rec.challengeCityId);
|
||||
let guild = await GuildModel.findByCode(guildCode, null, 'lv');
|
||||
let baseNum = getGuildAuctionBasicNum(rec.aid, rec.rank, guild?.lv, rec.challengeCityId);
|
||||
let members = rec.members || [];
|
||||
return members.map(cur => {
|
||||
return { roleId: cur.roleId, job: cur.job, baseNum }
|
||||
@@ -682,7 +686,8 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
|
||||
let isSuccess = distance >= GUILDACTIVITY.RACEACTIVITY_LENGTH; // 血条未击破则没有占领军团
|
||||
let members = obj.getMembersOfGuild(guildCode);
|
||||
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, rank);
|
||||
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv');
|
||||
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, rank, guild?.lv);
|
||||
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, joinIndex, {
|
||||
memberCnt: members.length, members,
|
||||
isSuccess, isCompleted: true, rank,
|
||||
|
||||
@@ -659,15 +659,15 @@ export function getTodayGuildActivity() {
|
||||
* @param aid 活动id
|
||||
* @param rank 排名
|
||||
*/
|
||||
function getGuildAuction(aid: number, rank: number, cityId: number = 0) {
|
||||
let ranksReward = gameData.guildAuction.get(`${aid}_${cityId}`) || [];
|
||||
function getGuildAuction(aid: number, rank: number, struLv: number, cityId: number = 0) {
|
||||
let ranksReward = gameData.guildAuction.get(`${aid}_${struLv}_${cityId}`) || [];
|
||||
return ranksReward.find(cur => {
|
||||
return rank >= cur.min && (rank <= cur.max || cur.max == 0);
|
||||
});
|
||||
}
|
||||
|
||||
export function getGuildAuctionRewards(aid: number, rank: number, cityId: number = 0) {
|
||||
let dic = getGuildAuction(aid, rank, cityId);
|
||||
export function getGuildAuctionRewards(aid: number, rank: number, struLv: number, cityId: number = 0) {
|
||||
let dic = getGuildAuction(aid, rank, struLv, cityId);
|
||||
if(dic) {
|
||||
return getAuctionRewardByPoolId(dic.rewards);
|
||||
} else {
|
||||
@@ -675,8 +675,8 @@ export function getGuildAuctionRewards(aid: number, rank: number, cityId: number
|
||||
}
|
||||
}
|
||||
|
||||
export function getGuildAuctionBasicNum(aid: number, rank: number, cityId: number = 0) {
|
||||
let dic = getGuildAuction(aid, rank, cityId);
|
||||
export function getGuildAuctionBasicNum(aid: number, rank: number, struLv: number, cityId: number = 0) {
|
||||
let dic = getGuildAuction(aid, rank, struLv, cityId);
|
||||
return dic?.basicDividend||0;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ export interface DicGuildAuction {
|
||||
|
||||
// 活动类型 1-蛮夷入侵 2-诸侯混战 3-粮草先行
|
||||
readonly id: number;
|
||||
// 建筑物等级
|
||||
readonly struLv: number;
|
||||
// 最低名次
|
||||
readonly min: number;
|
||||
// 最高名次
|
||||
@@ -30,9 +32,9 @@ export function loadGuildAuction() {
|
||||
cityIds = [0];
|
||||
}
|
||||
for(let cityId of cityIds) {
|
||||
let rank = dicGuildAuction.get(`${o.id}_${cityId}`)||[];
|
||||
let rank = dicGuildAuction.get(`${o.id}_${o.struLv}_${cityId}`)||[];
|
||||
rank.push(o);
|
||||
dicGuildAuction.set(`${o.id}_${cityId}`, rank);
|
||||
dicGuildAuction.set(`${o.id}_${o.struLv}_${cityId}`, rank);
|
||||
}
|
||||
});
|
||||
arr = undefined;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "蛮夷入侵",
|
||||
"struLv":2,
|
||||
"min": 1,
|
||||
"max": 1,
|
||||
"rewards": 4,
|
||||
@@ -11,6 +12,7 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "蛮夷入侵",
|
||||
"struLv":2,
|
||||
"min": 2,
|
||||
"max": 3,
|
||||
"rewards": 5,
|
||||
@@ -20,6 +22,7 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "蛮夷入侵",
|
||||
"struLv":2,
|
||||
"min": 4,
|
||||
"max": 0,
|
||||
"rewards": 6,
|
||||
@@ -29,6 +32,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 1,
|
||||
"max": 1,
|
||||
"rewards": 16,
|
||||
@@ -38,6 +42,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 2,
|
||||
"max": 3,
|
||||
"rewards": 17,
|
||||
@@ -47,6 +52,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 4,
|
||||
"max": 0,
|
||||
"rewards": 18,
|
||||
@@ -56,6 +62,7 @@
|
||||
{
|
||||
"id": 3,
|
||||
"name": "粮草先行",
|
||||
"struLv":2,
|
||||
"min": 1,
|
||||
"max": 1,
|
||||
"rewards": 10,
|
||||
@@ -65,6 +72,7 @@
|
||||
{
|
||||
"id": 3,
|
||||
"name": "粮草先行",
|
||||
"struLv":2,
|
||||
"min": 2,
|
||||
"max": 3,
|
||||
"rewards": 11,
|
||||
@@ -74,6 +82,7 @@
|
||||
{
|
||||
"id": 3,
|
||||
"name": "粮草先行",
|
||||
"struLv":2,
|
||||
"min": 4,
|
||||
"max": 0,
|
||||
"rewards": 12,
|
||||
@@ -83,6 +92,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 1,
|
||||
"max": 1,
|
||||
"rewards": 13,
|
||||
@@ -92,6 +102,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 2,
|
||||
"max": 3,
|
||||
"rewards": 14,
|
||||
@@ -101,6 +112,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 4,
|
||||
"max": 0,
|
||||
"rewards": 15,
|
||||
@@ -110,6 +122,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 1,
|
||||
"max": 1,
|
||||
"rewards": 7,
|
||||
@@ -119,6 +132,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 2,
|
||||
"max": 3,
|
||||
"rewards": 8,
|
||||
@@ -128,6 +142,7 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "诸侯混战",
|
||||
"struLv":2,
|
||||
"min": 4,
|
||||
"max": 0,
|
||||
"rewards": 9,
|
||||
|
||||
Reference in New Issue
Block a user