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