From 17f5ca80e68d011fde78b457213ffd8a181561fd Mon Sep 17 00:00:00 2001 From: CapoMK25 Date: Sun, 27 Sep 2026 09:07:28 +0300 Subject: [PATCH 1/3] Scoring config --- .../dailyTasks/dailyTaskScoringValues.test.ts | 12 +- .../MatchmakingService/flow.test.ts | 15 ++- .../ClanRewarder/rewardForClanEvent.test.ts | 9 +- .../rewardForPlayerEvent.test.ts | 7 +- .../dailyTask/defaultPredefinedDailyTasks.ts | 4 +- src/common/values/scoring.values.ts | 14 --- src/dailyTasks/consts/taskConstants.ts | 37 +++++- src/dailyTasks/taskGenerator.service.ts | 11 +- src/dailyTasks/uiDailyTasks/uiDailyTasks.ts | 116 +++++++++--------- src/matchmaking/matchmaking.service.ts | 26 ++-- src/rewarder/clanRewarder/points.ts | 6 +- src/rewarder/playerRewarder/points.ts | 8 +- 12 files changed, 144 insertions(+), 121 deletions(-) delete mode 100644 src/common/values/scoring.values.ts diff --git a/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts b/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts index 89a8e696c..97ce4f35c 100644 --- a/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts +++ b/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts @@ -1,5 +1,4 @@ import { defaultPredefinedDailyTasks } from '../../box/dailyTask/defaultPredefinedDailyTasks'; -import { Score } from '../../common/values/scoring.values'; import { ACTIVE_SERVER_TASK_DEFINITIONS, MIN_OCCURRENCES_PER_TASK_TYPE, @@ -8,6 +7,7 @@ import { } from '../../dailyTasks/taskGenerator.service'; import { ServerTaskName } from '../../dailyTasks/enum/serverTaskName.enum'; import { uiDailyTasks } from '../../dailyTasks/uiDailyTasks/uiDailyTasks'; +import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants'; describe('daily task scoring values', () => { it('uses the shared completed daily task score for generated server tasks', () => { @@ -15,7 +15,7 @@ describe('daily task scoring values', () => { const task = generator.createTaskRandomValues(); - expect(task.points).toBe(Score.DAILY_TASK.COMPLETED); + expect(task.points).toBe(TASK_CONSTS.POINTS.DAILY_TASK.SMALL); }); it('configures INNER_VOICE as a one-step clan motto task', () => { @@ -141,12 +141,12 @@ describe('daily task scoring values', () => { it('uses the shared completed daily task score for default predefined tasks', () => { expect(defaultPredefinedDailyTasks).toEqual( expect.arrayContaining([ - expect.objectContaining({ points: Score.DAILY_TASK.COMPLETED }), + expect.objectContaining({ points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL }), ]), ); expect( defaultPredefinedDailyTasks.every( - (task) => task.points === Score.DAILY_TASK.COMPLETED, + (task) => task.points === TASK_CONSTS.POINTS.DAILY_TASK.SMALL, ), ).toBe(true); }); @@ -154,8 +154,8 @@ describe('daily task scoring values', () => { it('uses the shared completed daily task score for UI daily tasks', () => { expect( Object.values(uiDailyTasks).every( - (task) => task.points === Score.DAILY_TASK.COMPLETED, + (task) => task.points === TASK_CONSTS.POINTS.DAILY_TASK.SMALL, ), ).toBe(true); }); -}); +}); \ No newline at end of file diff --git a/src/__tests__/matchmaking/MatchmakingService/flow.test.ts b/src/__tests__/matchmaking/MatchmakingService/flow.test.ts index c45678af3..a281a82a3 100644 --- a/src/__tests__/matchmaking/MatchmakingService/flow.test.ts +++ b/src/__tests__/matchmaking/MatchmakingService/flow.test.ts @@ -8,7 +8,6 @@ import { MatchmakingService } from '../../../matchmaking/matchmaking.service'; import { ActiveMatch } from '../../../matchmaking/type/activeMatch.type'; import { SEReason } from '../../../common/service/basicService/SEReason'; import ServiceError from '../../../common/service/basicService/ServiceError'; -import { Score } from '../../../common/values/scoring.values'; import { ServerTaskName } from '../../../dailyTasks/enum/serverTaskName.enum'; class InMemoryRedisService { @@ -1056,14 +1055,14 @@ describe('MatchmakingService flow', () => { }); expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-1', { $inc: { - battlePoints: Score.BATTLE.WIN, + battlePoints: 30, 'gameStatistics.playedBattles': 1, 'gameStatistics.wonBattles': 1, }, }); expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-2', { $inc: { - battlePoints: Score.BATTLE.LOSS, + battlePoints: -20, 'gameStatistics.playedBattles': 1, }, }); @@ -1133,13 +1132,13 @@ describe('MatchmakingService flow', () => { expect(finishedMatch.result).toEqual({ winningSide: TeamSide.B }); expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-1', { $inc: { - battlePoints: Score.BATTLE.LOSS, + battlePoints: -25, 'gameStatistics.playedBattles': 1, }, }); expect(playerService.updatePlayerById).toHaveBeenCalledWith('player-2', { $inc: { - battlePoints: Score.BATTLE.WIN, + battlePoints: 40, 'gameStatistics.playedBattles': 1, 'gameStatistics.wonBattles': 1, }, @@ -1147,13 +1146,13 @@ describe('MatchmakingService flow', () => { expect(clanService.basicService.updateOneById).toHaveBeenCalledWith( 'clan-1', { - $inc: { battlePoints: Score.BATTLE.LOSS }, + $inc: { battlePoints: -25 }, }, ); expect(clanService.basicService.updateOneById).toHaveBeenCalledWith( 'clan-2', { - $inc: { battlePoints: Score.BATTLE.WIN }, + $inc: { battlePoints: 40 }, }, ); expect(emitterService.EmitNewDailyTaskEvent).toHaveBeenCalledWith( @@ -1334,4 +1333,4 @@ describe('MatchmakingService flow', () => { expect.anything(), ); }); -}); +}); \ No newline at end of file diff --git a/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts b/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts index 901271da7..8798e3bd9 100644 --- a/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts +++ b/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts @@ -6,7 +6,6 @@ import { Player } from '../../../player/schemas/player.schema'; import ClanBuilderFactory from '../../clan/data/clanBuilderFactory'; import { Clan } from '../../../clan/clan.schema'; import ClanModule from '../../clan/modules/clan.module'; -import { Score } from '../../../common/values/scoring.values'; describe('ClanRewarder.rewardForClanEvent() test suite', () => { let rewarder: ClanRewarder; @@ -50,7 +49,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { const clanAfter = await clanModel.findById(createdClan._id); expect(clanAfter.points).toBe(clanBefore.points); expect(clanAfter.battlePoints).toBe( - clanBefore.battlePoints + Score.BATTLE.WIN, + clanBefore.battlePoints + 30, ); expect(isSuccess).toBe(true); expect(errors).toBeNull(); @@ -70,7 +69,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { const clanAfter = await clanModel.findById(createdClan._id); expect(clanAfter.points).toBe(clanBefore.points); expect(clanAfter.battlePoints).toBe( - clanBefore.battlePoints + Score.BATTLE.LOSS, + clanBefore.battlePoints - 20, ); expect(isSuccess).toBe(true); expect(errors).toBeNull(); @@ -143,7 +142,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { event, ); - const clanAfter = await clanModel.findById(existingClan._id); + const clanAfter = await clanModel.findById(createdClan._id); expect(clanAfter.points).toBe(clanBefore.points); expect(clanAfter.battlePoints).toBe(0); expect(isSuccess).toBe(false); @@ -205,4 +204,4 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { expect(errors[0].message).toBe('Player does not belong to a clan'); expect(errors[0].field).toBe('clan_id'); }); -}); +}); \ No newline at end of file diff --git a/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts b/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts index 977d9222e..c83b5d273 100644 --- a/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts +++ b/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts @@ -3,7 +3,6 @@ import { PlayerRewarder } from '../../../rewarder/playerRewarder/playerRewarder. import PlayerBuilderFactory from '../../player/data/playerBuilderFactory'; import PlayerModule from '../../player/modules/player.module'; import { Player } from '../../../player/schemas/player.schema'; -import { Score } from '../../../common/values/scoring.values'; describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { let rewarder: PlayerRewarder; @@ -33,7 +32,7 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { const playerAfter = await playerModel.findById(existingPlayer._id); expect(playerAfter.points).toBe(playerBefore.points); expect(playerAfter.battlePoints).toBe( - playerBefore.battlePoints + Score.BATTLE.WIN, + playerBefore.battlePoints + 30, ); expect(isSuccess).toBe(true); expect(errors).toBeNull(); @@ -53,7 +52,7 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { const playerAfter = await playerModel.findById(existingPlayer._id); expect(playerAfter.points).toBe(playerBefore.points); expect(playerAfter.battlePoints).toBe( - playerBefore.battlePoints + Score.BATTLE.LOSS, + playerBefore.battlePoints - 20, ); expect(isSuccess).toBe(true); expect(errors).toBeNull(); @@ -130,4 +129,4 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { expect(errors[0].field).toBe('playerEvent'); expect(errors[0].value).toBe(event); }); -}); +}); \ No newline at end of file diff --git a/src/box/dailyTask/defaultPredefinedDailyTasks.ts b/src/box/dailyTask/defaultPredefinedDailyTasks.ts index dfc8592db..e0ee8968a 100644 --- a/src/box/dailyTask/defaultPredefinedDailyTasks.ts +++ b/src/box/dailyTask/defaultPredefinedDailyTasks.ts @@ -1,6 +1,6 @@ import { ServerTaskName } from '../../dailyTasks/enum/serverTaskName.enum'; import { CreatePredefinedDailyTaskDto } from './dto/createPredefinedDailyTask.dto'; -import { Score } from '../../common/values/scoring.values'; +import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants'; /** * Daily tasks to use as default in box schema. @@ -10,7 +10,7 @@ export const defaultPredefinedDailyTasks: CreatePredefinedDailyTaskDto[] = [ type: ServerTaskName.GO_TO_BATTLE, title: 'Pelaa otteluita', amount: 5, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, timeLimitMinutes: 60, }, diff --git a/src/common/values/scoring.values.ts b/src/common/values/scoring.values.ts deleted file mode 100644 index 1be7e0beb..000000000 --- a/src/common/values/scoring.values.ts +++ /dev/null @@ -1,14 +0,0 @@ -export const Score = { - // battlepoints - BATTLE: { - WIN: 10, // battle win (all kinds of battles) - LOSS: -5, // battle loss (all kinds of battles) - }, - - // points from daily tasks - DAILY_TASK: { - COMPLETED: 10, - COMPLETED_WITH_HINT: 5, - CANCELED: 0, - }, -}; diff --git a/src/dailyTasks/consts/taskConstants.ts b/src/dailyTasks/consts/taskConstants.ts index 04e469b5a..fa1b3a09c 100644 --- a/src/dailyTasks/consts/taskConstants.ts +++ b/src/dailyTasks/consts/taskConstants.ts @@ -19,6 +19,21 @@ * @property COINS.FACTOR - The factor used to calculate coins (points * FACTOR). * * @property TIME - The time to complete the task in milliseconds. + * + * @property DAILY_TASK - Points configuration for daily tasks. + * @property DAILY_TASK.SMALL - Points awarded for small daily tasks. + * @property DAILY_TASK.MEDIUM - Points awarded for medium daily tasks (reserved for future use). + * @property DAILY_TASK.BIG - Points awarded for big daily tasks (reserved for future use). + * @property DAILY_TASK.CANCEL_PENALTY - Points deducted for canceling a daily task. + * + * @property BATTLE - Points configuration for battle tasks. + * @property BATTLE.RANDOM_PAIR - Points configuration for random pair battles. + * @property BATTLE.RANDOM_PAIR.WIN - Points awarded for winning a random pair battle. + * @property BATTLE.RANDOM_PAIR.LOSS - Points deducted for losing a random pair battle. + * @property BATTLE.CLAN_PAIR - Points configuration for clan pair battles. + * @property BATTLE.CLAN_PAIR.WIN - Points awarded for winning a clan pair battle. + * @property BATTLE.CLAN_PAIR.LOSS - Points deducted for losing a clan pair battle. + * */ export const TASK_CONSTS = { AMOUNT: { @@ -26,11 +41,25 @@ export const TASK_CONSTS = { MAX: 20, }, POINTS: { - MIN: 5, - MAX: 100, + DAILY_TASK: { + SMALL: 20, + MEDIUM: 0, // Reserved for future use + BIG: 0, // Reserved for future use + CANCEL_PENALTY: 10, + }, + BATTLE: { + RANDOM_PAIR: { + WIN: 30, + LOSS: -20, + }, + CLAN_PAIR: { + WIN: 40, + LOSS: -25, + }, + }, }, COINS: { - FACTOR: 0.5, // Coins are calculated as points * FACTOR + FACTOR: 0.5, }, - TIME: 1000 * 60, // Time to complete the task in milliseconds. + TIME: 1000 * 60, }; diff --git a/src/dailyTasks/taskGenerator.service.ts b/src/dailyTasks/taskGenerator.service.ts index 741d59e3d..d4d5a5eeb 100644 --- a/src/dailyTasks/taskGenerator.service.ts +++ b/src/dailyTasks/taskGenerator.service.ts @@ -1,5 +1,4 @@ import { Injectable } from '@nestjs/common'; -import { Score } from '../common/values/scoring.values'; import { TASK_CONSTS } from './consts/taskConstants'; import { ServerTaskName } from './enum/serverTaskName.enum'; import { TaskTitle } from './type/taskTitle.type'; @@ -49,9 +48,9 @@ export const ACTIVE_SERVER_TASK_DEFINITIONS: readonly ServerTaskDefinition[] = [ }, { type: ServerTaskName.FORM_AN_INNER_CONNECTION, - createAmount: createRandomAmount, - createTitle: (amount) => ({ - fi: `Lähetä ${amount} viesti klaanichattiin`, + createAmount: () => 1, + createTitle: () => ({ + fi: 'Avaa klaanin chat ja lähetä viesti. Huomaa, miltä tuntuu aloittaa vuorovaikutus. Opit, että viestintä pelissä rakentaa suhteita ja merkityksiä, ei vain siirrä tietoa.', }), }, { @@ -167,7 +166,7 @@ export class TaskGeneratorService { private createTaskValues(type: ServerTaskName): TaskInfo { const definition = this.getDefinition(type); const amount = definition.createAmount(); - const points = Score.DAILY_TASK.COMPLETED; + const points = TASK_CONSTS.POINTS.DAILY_TASK.SMALL; return { amount, @@ -198,4 +197,4 @@ export class TaskGeneratorService { return shuffled; } -} +} \ No newline at end of file diff --git a/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts b/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts index efef9e7c0..400da2a3b 100644 --- a/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts +++ b/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts @@ -1,6 +1,6 @@ import { UITaskName } from '../enum/uiTaskName.enum'; import { TaskTitle } from '../type/taskTitle.type'; -import { Score } from '../../common/values/scoring.values'; +import { TASK_CONSTS } from '../consts/taskConstants'; /** * UI daily task basic information @@ -23,7 +23,7 @@ export const uiDailyTasks: Record = { fi: 'etsi sisäinen toimintahäiriö', }, type: UITaskName.FIND_THE_ERROR, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -33,7 +33,7 @@ export const uiDailyTasks: Record = { fi: 'soita_sävelmä', }, type: UITaskName.PLAY_MELODY, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -43,7 +43,7 @@ export const uiDailyTasks: Record = { fi: 'valitse prologin näkymä, joka herättää eniten tunnistettavan tunteen', }, type: UITaskName.CHOOSE_YOUR_TRUTH, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -53,7 +53,7 @@ export const uiDailyTasks: Record = { fi: 'pysähdy defenssisoturin äärelle ja kuuntele sen taustaa', }, type: UITaskName.HOLD_THE_CHARACTER, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -63,7 +63,7 @@ export const uiDailyTasks: Record = { fi: 'tunnista tila jossa sisäinen tapahtuma tapahtuu', }, type: UITaskName.WHERE_ARE_YOU, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -73,7 +73,7 @@ export const uiDailyTasks: Record = { fi: 'etsi ohjeet jotka oikeasti ohjaavat toimintaasi', }, type: UITaskName.FOLLOW_THE_VOICE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -81,7 +81,7 @@ export const uiDailyTasks: Record = { [UITaskName.READ_THE_SIGNS]: { title: { fi: 'etsi symboli joka ei selitä itseään vaan ehdottaa' }, type: UITaskName.READ_THE_SIGNS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -89,7 +89,7 @@ export const uiDailyTasks: Record = { [UITaskName.FIND_THE_ROOTS]: { title: { fi: 'löydä osa, jossa toisen vaikutus on muokannut sinua' }, type: UITaskName.FIND_THE_ROOTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -97,7 +97,7 @@ export const uiDailyTasks: Record = { [UITaskName.LOOK_INSIDE]: { title: { fi: 'tunnista millainen rakenne sinua ohjaa' }, type: UITaskName.LOOK_INSIDE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -107,7 +107,7 @@ export const uiDailyTasks: Record = { fi: 'missä käyt sisäisen valtataistelusi tai punnitset eri vaihtoehtoja?', }, type: UITaskName.USE_OF_POWER, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -117,7 +117,7 @@ export const uiDailyTasks: Record = { fi: 'mitä olet oppinut joltain toiselta? etsi teitä yhdistävä asia', }, type: UITaskName.COMMON_FACTOR, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -125,7 +125,7 @@ export const uiDailyTasks: Record = { [UITaskName.SPIRITUAL_CURRENCY]: { title: { fi: 'etsi pelistä henkisenvaluutan symboli' }, type: UITaskName.SPIRITUAL_CURRENCY, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -133,7 +133,7 @@ export const uiDailyTasks: Record = { [UITaskName.REWARD_TRAPS]: { title: { fi: 'tunnista, missä syntyy dopamiinia ja onnistumisen tunnetta' }, type: UITaskName.REWARD_TRAPS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -143,7 +143,7 @@ export const uiDailyTasks: Record = { fi: 'etsi kohta, jossa jouduit pohtimaan oikean ja väärän merkitystä', }, type: UITaskName.MORAL_DILEMMAS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -151,7 +151,7 @@ export const uiDailyTasks: Record = { [UITaskName.ECO_FRIENDLY]: { title: { fi: 'huomaa miten toimintasi jättää jäljen tähän maailmaan' }, type: UITaskName.ECO_FRIENDLY, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -159,7 +159,7 @@ export const uiDailyTasks: Record = { [UITaskName.HUNTING_FOR_VALUES]: { title: { fi: 'miten ohjenuorasi rakentuu. minkälaisia arvoja edustat?' }, type: UITaskName.HUNTING_FOR_VALUES, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -167,7 +167,7 @@ export const uiDailyTasks: Record = { [UITaskName.ETHICS_METRICS]: { title: { fi: 'kumpi soturisi kulkee parempaa polkua?' }, type: UITaskName.ETHICS_METRICS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -178,7 +178,7 @@ export const uiDailyTasks: Record = { fi: 'etsi käyttöliittymän kannalta mielestäsi 3 tärkeintä painiketta', }, type: UITaskName.FIND_3_IMPORTANT_BUTTONS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -186,7 +186,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.EXPLODE_CHARACTER_BATTLE]: { title: { fi: 'räjäytä hahmosi ryöstössä' }, type: UITaskName.EXPLODE_CHARACTER_BATTLE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -194,7 +194,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.WHAT_IS_MISSING]: { title: { fi: 'Mitä puuttuu?' }, type: UITaskName.WHAT_IS_MISSING, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -202,7 +202,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.FIND_BUG]: { title: { fi: 'Etsi bugi!' }, type: UITaskName.FIND_BUG, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -210,7 +210,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.FIND_ALL_INSTRUCTION_WINDOWS]: { title: { fi: 'löydä kaikki pelin ohjeistusikkunat ja paina niitä' }, type: UITaskName.FIND_ALL_INSTRUCTION_WINDOWS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -218,7 +218,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.FIND_VARIABLE_VALUE_IN_GAME]: { title: { fi: 'Löydä muuttuja toiminnassa!' }, type: UITaskName.FIND_VARIABLE_VALUE_IN_GAME, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -226,7 +226,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.MAKE_MUSIC_WITH_BUTTONS]: { title: { fi: 'tee näppäimillä musiikkia' }, type: UITaskName.MAKE_MUSIC_WITH_BUTTONS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -234,7 +234,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.INFLUENCE_OPPONENT_GAME_CHAT_EMOJI]: { title: { fi: 'vaikuta vastustajan peliin viestimällä emojeita' }, type: UITaskName.INFLUENCE_OPPONENT_GAME_CHAT_EMOJI, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -242,7 +242,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.PRESS_3_SYMBOL_FURNITURE]: { title: { fi: 'paina kolmea symboliikkaa sisältävää huonekalua' }, type: UITaskName.PRESS_3_SYMBOL_FURNITURE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -252,7 +252,7 @@ export const uiDailyTasks: Record = { fi: 'TUNNETEHTÄVÄ > klikkaa alkutarinasta sinusta vaikuttavinta ruutua', }, type: UITaskName.PRESS_STORY_MOST_IMPRESSIVE_PANELS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -260,7 +260,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.WHERE_GAME_HAPPENS]: { title: { fi: 'missä peli tarinan mukaan tapahtuu?' }, type: UITaskName.WHERE_GAME_HAPPENS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -268,7 +268,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.PRESS_STORY_TELLING_INSTRUCTIONS]: { title: { fi: 'klikkaa tarinaa kertovia ohjeistuksia' }, type: UITaskName.PRESS_STORY_TELLING_INSTRUCTIONS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -277,7 +277,7 @@ export const uiDailyTasks: Record = { [UITaskName.PRESS_CHARACTER_DESCRIPTION]: { title: { fi: 'lue ja paina pelihahmon kuvausta' }, type: UITaskName.PRESS_CHARACTER_DESCRIPTION, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -285,7 +285,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.RECOGNIZE_CHARACTER_MECHANIC]: { title: { fi: 'tunnista pelihahmon tarinallinen mekaniikka' }, type: UITaskName.RECOGNIZE_CHARACTER_MECHANIC, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -293,7 +293,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.CONTINUE_CLAN_STORY]: { title: { fi: 'jatka klaanin tarinaa' }, type: UITaskName.CONTINUE_CLAN_STORY, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -301,7 +301,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.RECOGNIZE_GRAPHIC_HINTS]: { title: { fi: 'tunnista graafiset vihjeet' }, type: UITaskName.RECOGNIZE_GRAPHIC_HINTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -309,7 +309,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.RECOGNIZE_AUDIO_HINTS]: { title: { fi: 'tunnista äänimaailman vihjeet' }, type: UITaskName.RECOGNIZE_AUDIO_HINTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -317,7 +317,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.WRITE_BATTLE_DIALOG]: { title: { fi: 'kirjoita battlen dialogi' }, type: UITaskName.WRITE_BATTLE_DIALOG, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -325,7 +325,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.FIND_UI_SYMBOLIC_GRAPHICS]: { title: { fi: 'löydä käyttöliittymästä symbolista grafiikkaa' }, type: UITaskName.FIND_UI_SYMBOLIC_GRAPHICS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -333,7 +333,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.CHOOSE_FAVORITE_INTERIOR_SERIES]: { title: { fi: 'valitse lemppari sisustus-sarjasi' }, type: UITaskName.CHOOSE_FAVORITE_INTERIOR_SERIES, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -341,7 +341,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.PRESS_YOURSELF_IDENTIFYING_STORIES]: { title: { fi: 'klikkaa tarinoita joihin pystyt samastumaan' }, type: UITaskName.PRESS_YOURSELF_IDENTIFYING_STORIES, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -350,7 +350,7 @@ export const uiDailyTasks: Record = { [UITaskName.WHAT_IS_GAME_STORY]: { title: { fi: 'mikä on pelin viesti? mistä peli kertoo?' }, type: UITaskName.WHAT_IS_GAME_STORY, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -361,7 +361,7 @@ export const uiDailyTasks: Record = { fi: 'etsi ja klikkaa pelin tarinaa laajentavia asioita nettisivuilta', }, type: UITaskName.PRESS_STORY_EXPANDING_OBJECTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -372,7 +372,7 @@ export const uiDailyTasks: Record = { fi: 'klikkaa tunnettuihin teoksiin, ideoihin tai ihmisiin viittaavia asioita', }, type: UITaskName.PRESS_FAMOUS_THINGS_REFERRING_OBJECTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -383,7 +383,7 @@ export const uiDailyTasks: Record = { fi: 'etsi ja klikkaa graafisia elementtejä, jotka viittaavat muihin taiteenlajeihin', }, type: UITaskName.PRESS_OTHER_GRAPHIC_STYLE_ELEMENTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -392,7 +392,7 @@ export const uiDailyTasks: Record = { [UITaskName.WHAT_STYLE_TYPES_GAME_HAS]: { title: { fi: 'mitä lajityyppiä (tai useampaa) peli sinulle edustaa?' }, type: UITaskName.WHAT_STYLE_TYPES_GAME_HAS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -401,7 +401,7 @@ export const uiDailyTasks: Record = { [UITaskName.PRESS_FAMOUS_CHARACTER]: { title: { fi: 'klikkaa pelihahmoa josta tulee mieleen joku tunnettu hahmo' }, type: UITaskName.PRESS_FAMOUS_CHARACTER, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -409,7 +409,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.WHAT_FAMOUS_GAME_REMINDING]: { title: { fi: 'mitä tunnettua peliä tämä peli muistuttaa?' }, type: UITaskName.WHAT_FAMOUS_GAME_REMINDING, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -418,7 +418,7 @@ export const uiDailyTasks: Record = { [UITaskName.CHOOSE_CULTURAL_GUIDELINE_CLAN_DESCRIPTION]: { title: { fi: 'valitse klaanin kuvaukseen toimintakulttuurinen ohje' }, type: UITaskName.CHOOSE_CULTURAL_GUIDELINE_CLAN_DESCRIPTION, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -429,7 +429,7 @@ export const uiDailyTasks: Record = { fi: 'katso kieliasetukset ja klikkaa kohtia jotka muuttuvat eri kielien välillä', }, type: UITaskName.CHANGE_LANGUAGE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -437,7 +437,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.PRESS_MONEY_STUFF]: { title: { fi: 'klikkaa asioita, joissa voi käyttää rahaa' }, type: UITaskName.PRESS_MONEY_STUFF, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -449,7 +449,7 @@ export const uiDailyTasks: Record = { fi: 'käytä matsin aikana vain positiivisia ja kannustavia eleitä', }, type: UITaskName.USE_ONLY_POSITIVE_GESTURES_IN_BATTLE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -457,7 +457,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.USE_ONLY_NEGATIVE_GESTURES_IN_BATTLE]: { title: { fi: 'käytä matsin aikana vain negatiivisia eleitä' }, type: UITaskName.USE_ONLY_NEGATIVE_GESTURES_IN_BATTLE, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -467,7 +467,7 @@ export const uiDailyTasks: Record = { fi: 'tunnista ja paina kohtia, joissa peli palkitsee sinua jotenkin', }, type: UITaskName.PRESS_PRIZE_GIVING_ITEMS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -475,7 +475,7 @@ export const uiDailyTasks: Record = { /*[UITaskName.PRESS_ACCESSIBILITY_SETTINGS]: { title: { fi: 'etsi ja klikkaa kaikkia saavutettavuus-asetuksia' }, type: UITaskName.PRESS_ACCESSIBILITY_SETTINGS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -483,7 +483,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.PRESS_ETHIC_QUESTIONABLE_OBJECTS]: { title: { fi: 'etsi ja klikkaa eettisesti arveluttavia asioita' }, type: UITaskName.PRESS_ETHIC_QUESTIONABLE_OBJECTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -491,7 +491,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.PRESS_RESPONSIBILITY_OBJECTS]: { title: { fi: 'etsi ja klikkaa vastuullisuuteen liittyviä asioita' }, type: UITaskName.PRESS_RESPONSIBILITY_OBJECTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -499,7 +499,7 @@ export const uiDailyTasks: Record = { /* [UITaskName.PRESS_SUSTAINABLE_CONSUMPTION_OBJECTS]: { title: { fi: 'etsi ja klikkaa kestävään kuluttamiseen liittyviä asioita' }, type: UITaskName.PRESS_SUSTAINABLE_CONSUMPTION_OBJECTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, @@ -507,9 +507,9 @@ export const uiDailyTasks: Record = { /*[UITaskName.PRESS_VALUES_OBJECTS]: { title: { fi: 'etsi ja klikkaa arvoihin liittyviä asioita' }, type: UITaskName.PRESS_VALUES_OBJECTS, - points: Score.DAILY_TASK.COMPLETED, + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, coins: 10, amount: 1, timeLimitMinutes: 60, },*/ -}; +}; \ No newline at end of file diff --git a/src/matchmaking/matchmaking.service.ts b/src/matchmaking/matchmaking.service.ts index 7f8b61fc1..354dcad42 100644 --- a/src/matchmaking/matchmaking.service.ts +++ b/src/matchmaking/matchmaking.service.ts @@ -44,7 +44,7 @@ import { } from './type/matchmakingParticipant.type'; import { MatchmakingTeam } from './type/matchmakingTeam.type'; import { Clan } from '../clan/clan.schema'; -import { Score } from '../common/values/scoring.values'; +import { TASK_CONSTS } from '../dailyTasks/consts/taskConstants'; import EventEmitterService from '../common/service/EventEmitterService/EventEmitter.service'; import { ServerTaskName } from '../dailyTasks/enum/serverTaskName.enum'; @@ -1045,7 +1045,10 @@ export class MatchmakingService { private async updatePlayerLeaderboardForFinishedMatch(match: ActiveMatch) { for (const team of match.teams) { const outcome = this.getTeamOutcome(team, match.result.winningSide); - const battlePoints = this.getBattlePointsForOutcome(outcome); + const battlePoints = this.getBattlePointsForOutcome( + outcome, + match.matchType, + ); const playerIds = this.getTeamPlayerIds(team); for (const playerId of playerIds) { @@ -1074,7 +1077,10 @@ export class MatchmakingService { if (!team.clanId) continue; const outcome = this.getTeamOutcome(team, match.result.winningSide); - const battlePoints = this.getBattlePointsForOutcome(outcome); + const battlePoints = this.getBattlePointsForOutcome( + outcome, + match.matchType, + ); const update: UpdateQuery = { $inc: { battlePoints } }; const [, updateErrors] = await this.clanService.basicService.updateOneById>( @@ -1123,10 +1129,16 @@ export class MatchmakingService { return team.side === winningSide ? 'WIN' : 'LOSS'; } - private getBattlePointsForOutcome(outcome: 'WIN' | 'LOSS') { - if (outcome === 'WIN') return Score.BATTLE.WIN; + private getBattlePointsForOutcome( + outcome: 'WIN' | 'LOSS', + matchType: MatchType, + ) { + const isClanPair = matchType === MatchType.CLAN; + const battleConfig = isClanPair + ? TASK_CONSTS.POINTS.BATTLE.CLAN_PAIR + : TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR; - return Score.BATTLE.LOSS; + return outcome === 'WIN' ? battleConfig.WIN : battleConfig.LOSS; } private getTeamPlayerIds(team: MatchmakingTeam) { @@ -1949,4 +1961,4 @@ export class MatchmakingService { ): MatchmakingMqttPlayerDto { return playerMap.get(playerId) ?? this.toMqttPlayerDto(playerId, null); } -} +} \ No newline at end of file diff --git a/src/rewarder/clanRewarder/points.ts b/src/rewarder/clanRewarder/points.ts index c84da798f..e581b926a 100644 --- a/src/rewarder/clanRewarder/points.ts +++ b/src/rewarder/clanRewarder/points.ts @@ -1,7 +1,7 @@ import { ClanEvent } from './enum/ClanEvent.enum'; -import { Score } from '../../common/values/scoring.values'; +import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants'; export const points: Record = { - [ClanEvent.BATTLE_WON]: Score.BATTLE.WIN, - [ClanEvent.BATTLE_LOSE]: Score.BATTLE.LOSS, + [ClanEvent.BATTLE_WON]: TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR.WIN, + [ClanEvent.BATTLE_LOSE]: TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR.LOSS, }; diff --git a/src/rewarder/playerRewarder/points.ts b/src/rewarder/playerRewarder/points.ts index 86fdc9610..d69fca1ea 100644 --- a/src/rewarder/playerRewarder/points.ts +++ b/src/rewarder/playerRewarder/points.ts @@ -1,7 +1,7 @@ import { PlayerEvent } from './enum/PlayerEvent.enum'; -import { Score } from '../../common/values/scoring.values'; +import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants'; export const points: Record = { - [PlayerEvent.BATTLE_WON]: Score.BATTLE.WIN, - [PlayerEvent.BATTLE_LOSE]: Score.BATTLE.LOSS, -}; + [PlayerEvent.BATTLE_WON]: TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR.WIN, + [PlayerEvent.BATTLE_LOSE]: TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR.LOSS, +}; \ No newline at end of file From 0a009039e5a00eaab09203c85aa452c240cc6fca Mon Sep 17 00:00:00 2001 From: CapoMK25 Date: Sun, 27 Sep 2026 09:15:31 +0300 Subject: [PATCH 2/3] linter changes --- .../dailyTasks/dailyTaskScoringValues.test.ts | 6 ++++-- .../matchmaking/MatchmakingService/flow.test.ts | 2 +- .../rewarder/ClanRewarder/rewardForClanEvent.test.ts | 10 +++------- .../PlayerRewarder/rewardForPlayerEvent.test.ts | 10 +++------- src/dailyTasks/consts/taskConstants.ts | 2 +- src/dailyTasks/taskGenerator.service.ts | 2 +- src/dailyTasks/uiDailyTasks/uiDailyTasks.ts | 2 +- src/matchmaking/matchmaking.service.ts | 2 +- src/rewarder/playerRewarder/points.ts | 2 +- 9 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts b/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts index 97ce4f35c..d40d90d44 100644 --- a/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts +++ b/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts @@ -141,7 +141,9 @@ describe('daily task scoring values', () => { it('uses the shared completed daily task score for default predefined tasks', () => { expect(defaultPredefinedDailyTasks).toEqual( expect.arrayContaining([ - expect.objectContaining({ points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL }), + expect.objectContaining({ + points: TASK_CONSTS.POINTS.DAILY_TASK.SMALL, + }), ]), ); expect( @@ -158,4 +160,4 @@ describe('daily task scoring values', () => { ), ).toBe(true); }); -}); \ No newline at end of file +}); diff --git a/src/__tests__/matchmaking/MatchmakingService/flow.test.ts b/src/__tests__/matchmaking/MatchmakingService/flow.test.ts index a281a82a3..e44866edf 100644 --- a/src/__tests__/matchmaking/MatchmakingService/flow.test.ts +++ b/src/__tests__/matchmaking/MatchmakingService/flow.test.ts @@ -1333,4 +1333,4 @@ describe('MatchmakingService flow', () => { expect.anything(), ); }); -}); \ No newline at end of file +}); diff --git a/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts b/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts index 8798e3bd9..1fd8afb14 100644 --- a/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts +++ b/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts @@ -48,9 +48,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { const clanAfter = await clanModel.findById(createdClan._id); expect(clanAfter.points).toBe(clanBefore.points); - expect(clanAfter.battlePoints).toBe( - clanBefore.battlePoints + 30, - ); + expect(clanAfter.battlePoints).toBe(clanBefore.battlePoints + 30); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -68,9 +66,7 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { const clanAfter = await clanModel.findById(createdClan._id); expect(clanAfter.points).toBe(clanBefore.points); - expect(clanAfter.battlePoints).toBe( - clanBefore.battlePoints - 20, - ); + expect(clanAfter.battlePoints).toBe(clanBefore.battlePoints - 20); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -204,4 +200,4 @@ describe('ClanRewarder.rewardForClanEvent() test suite', () => { expect(errors[0].message).toBe('Player does not belong to a clan'); expect(errors[0].field).toBe('clan_id'); }); -}); \ No newline at end of file +}); diff --git a/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts b/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts index c83b5d273..30065817e 100644 --- a/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts +++ b/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts @@ -31,9 +31,7 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { const playerAfter = await playerModel.findById(existingPlayer._id); expect(playerAfter.points).toBe(playerBefore.points); - expect(playerAfter.battlePoints).toBe( - playerBefore.battlePoints + 30, - ); + expect(playerAfter.battlePoints).toBe(playerBefore.battlePoints + 30); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -51,9 +49,7 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { const playerAfter = await playerModel.findById(existingPlayer._id); expect(playerAfter.points).toBe(playerBefore.points); - expect(playerAfter.battlePoints).toBe( - playerBefore.battlePoints - 20, - ); + expect(playerAfter.battlePoints).toBe(playerBefore.battlePoints - 20); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -129,4 +125,4 @@ describe('PlayerRewarder.rewardForPlayerEvent() test suite', () => { expect(errors[0].field).toBe('playerEvent'); expect(errors[0].value).toBe(event); }); -}); \ No newline at end of file +}); diff --git a/src/dailyTasks/consts/taskConstants.ts b/src/dailyTasks/consts/taskConstants.ts index fa1b3a09c..e1163301f 100644 --- a/src/dailyTasks/consts/taskConstants.ts +++ b/src/dailyTasks/consts/taskConstants.ts @@ -19,7 +19,7 @@ * @property COINS.FACTOR - The factor used to calculate coins (points * FACTOR). * * @property TIME - The time to complete the task in milliseconds. - * + * * @property DAILY_TASK - Points configuration for daily tasks. * @property DAILY_TASK.SMALL - Points awarded for small daily tasks. * @property DAILY_TASK.MEDIUM - Points awarded for medium daily tasks (reserved for future use). diff --git a/src/dailyTasks/taskGenerator.service.ts b/src/dailyTasks/taskGenerator.service.ts index d4d5a5eeb..39695318e 100644 --- a/src/dailyTasks/taskGenerator.service.ts +++ b/src/dailyTasks/taskGenerator.service.ts @@ -197,4 +197,4 @@ export class TaskGeneratorService { return shuffled; } -} \ No newline at end of file +} diff --git a/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts b/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts index 400da2a3b..b1f79e1a6 100644 --- a/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts +++ b/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts @@ -512,4 +512,4 @@ export const uiDailyTasks: Record = { amount: 1, timeLimitMinutes: 60, },*/ -}; \ No newline at end of file +}; diff --git a/src/matchmaking/matchmaking.service.ts b/src/matchmaking/matchmaking.service.ts index 354dcad42..4f15d57e2 100644 --- a/src/matchmaking/matchmaking.service.ts +++ b/src/matchmaking/matchmaking.service.ts @@ -1961,4 +1961,4 @@ export class MatchmakingService { ): MatchmakingMqttPlayerDto { return playerMap.get(playerId) ?? this.toMqttPlayerDto(playerId, null); } -} \ No newline at end of file +} diff --git a/src/rewarder/playerRewarder/points.ts b/src/rewarder/playerRewarder/points.ts index d69fca1ea..2e892838a 100644 --- a/src/rewarder/playerRewarder/points.ts +++ b/src/rewarder/playerRewarder/points.ts @@ -4,4 +4,4 @@ import { TASK_CONSTS } from '../../dailyTasks/consts/taskConstants'; export const points: Record = { [PlayerEvent.BATTLE_WON]: TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR.WIN, [PlayerEvent.BATTLE_LOSE]: TASK_CONSTS.POINTS.BATTLE.RANDOM_PAIR.LOSS, -}; \ No newline at end of file +}; From 155c00c56c1314a9f6323f5e1436cb88edcad642 Mon Sep 17 00:00:00 2001 From: CapoMK25 Date: Sun, 27 Sep 2026 09:17:04 +0300 Subject: [PATCH 3/3] added omitted comments back --- src/dailyTasks/consts/taskConstants.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dailyTasks/consts/taskConstants.ts b/src/dailyTasks/consts/taskConstants.ts index e1163301f..47ba513c1 100644 --- a/src/dailyTasks/consts/taskConstants.ts +++ b/src/dailyTasks/consts/taskConstants.ts @@ -59,7 +59,7 @@ export const TASK_CONSTS = { }, }, COINS: { - FACTOR: 0.5, + FACTOR: 0.5, // Coins are calculated as points * FACTOR. }, - TIME: 1000 * 60, + TIME: 1000 * 60, // Time to complete the task in milliseconds. };