feat(拍卖行): 拍品按照建筑物等级生成

https://bantugame.feishu.cn/wiki/wikcn1qfpNYNUnOvuKiyK69eqqg?lang=zh-CN&open_in_browser=true
This commit is contained in:
luying
2022-10-23 17:51:44 +08:00
parent 44787d68a5
commit 8aadccca84
4 changed files with 34 additions and 12 deletions

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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,