diff --git a/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts b/src/__tests__/dailyTasks/dailyTaskScoringValues.test.ts index 89a8e696c..d40d90d44 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,14 @@ 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,7 +156,7 @@ 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); }); diff --git a/src/__tests__/matchmaking/MatchmakingService/flow.test.ts b/src/__tests__/matchmaking/MatchmakingService/flow.test.ts index c45678af3..e44866edf 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( diff --git a/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts b/src/__tests__/rewarder/ClanRewarder/rewardForClanEvent.test.ts index 901271da7..1fd8afb14 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; @@ -49,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 + Score.BATTLE.WIN, - ); + expect(clanAfter.battlePoints).toBe(clanBefore.battlePoints + 30); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -69,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 + Score.BATTLE.LOSS, - ); + expect(clanAfter.battlePoints).toBe(clanBefore.battlePoints - 20); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -143,7 +138,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); diff --git a/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts b/src/__tests__/rewarder/PlayerRewarder/rewardForPlayerEvent.test.ts index 977d9222e..30065817e 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; @@ -32,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 + Score.BATTLE.WIN, - ); + expect(playerAfter.battlePoints).toBe(playerBefore.battlePoints + 30); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); @@ -52,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 + Score.BATTLE.LOSS, - ); + expect(playerAfter.battlePoints).toBe(playerBefore.battlePoints - 20); expect(isSuccess).toBe(true); expect(errors).toBeNull(); }); 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..47ba513c1 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, // Coins are calculated as points * FACTOR. }, TIME: 1000 * 60, // Time to complete the task in milliseconds. }; diff --git a/src/dailyTasks/taskGenerator.service.ts b/src/dailyTasks/taskGenerator.service.ts index 6002dbce9..74940f64a 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'; @@ -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, diff --git a/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts b/src/dailyTasks/uiDailyTasks/uiDailyTasks.ts index efef9e7c0..b1f79e1a6 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,7 +507,7 @@ 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, diff --git a/src/matchmaking/matchmaking.service.ts b/src/matchmaking/matchmaking.service.ts index 7f8b61fc1..4f15d57e2 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) { 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..2e892838a 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, };