From abed080892b7de1750ceaa2eebc61924b6803a57 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 26 Aug 2020 17:05:50 +0200 Subject: [PATCH] fixed decay for absents bug --- src/backend/Components/Item/ItemManager.ts | 7 +++++-- src/backend/Components/Raid/RaidManager.ts | 8 +++++++- .../pages/rules/rules.component.html | 19 +++++++++++++++---- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/backend/Components/Item/ItemManager.ts b/src/backend/Components/Item/ItemManager.ts index 9374381..802597f 100644 --- a/src/backend/Components/Item/ItemManager.ts +++ b/src/backend/Components/Item/ItemManager.ts @@ -369,6 +369,8 @@ export class ItemManager } decayTokens = async (tier: Tiers, amount = 1) => { + getLogger('ItemManager#decayTokens').debug(tier) + await this.admin .knex(tier + 'tokens') .decrement('level', Math.max(amount, 1)) @@ -379,13 +381,14 @@ export class ItemManager .del() } - decayTokensOfCharacter = async (tier: Tiers, character:Character, amount = 1) => { + decayTokensOfCharacter = async (tier: Tiers, character:Character) => { + getLogger('ItemManager#decayTokensOfCharacter').debug(character, tier) await this.admin .knex(tier + 'tokens') .where({ characterid: character.id }) - .decrement('level', Math.max(amount, 1)) + .decrement('level') await this.admin .knex(tier + 'tokens as t') diff --git a/src/backend/Components/Raid/RaidManager.ts b/src/backend/Components/Raid/RaidManager.ts index 509d9c1..84b71ff 100644 --- a/src/backend/Components/Raid/RaidManager.ts +++ b/src/backend/Components/Raid/RaidManager.ts @@ -174,7 +174,13 @@ export class RaidManager startRaid = async (raid: Raid): Promise => { const data = await this.getRaidData(raid) - data.participants.absent.map(p => this.itemManager.decayTokensOfCharacter(raid.tier, p, 1)) + await Promise.all(data.participants.absent.map(p => this.itemManager.decayTokensOfCharacter(raid.tier, { + charactername: p.charactername, + id: p.characterid, + race: p.race, + specid: p.specid, + userid: p.userid + }, 1))) await this.itemManager.decayTokens(data.tier) const archived = await this.archiveRaid(raid) diff --git a/src/frontend/src/app/frontcraft/pages/rules/rules.component.html b/src/frontend/src/app/frontcraft/pages/rules/rules.component.html index c72ae6d..0bef281 100644 --- a/src/frontend/src/app/frontcraft/pages/rules/rules.component.html +++ b/src/frontend/src/app/frontcraft/pages/rules/rules.component.html @@ -15,7 +15,7 @@ raid start.
  • - When you sign up to a raid you can spend your reserves on an item + When you sign up to a raid you can spend your reserves on an item.
  • Every week you can re-reserve the same item to build a streak on it @@ -27,8 +27,7 @@

    Priorities

    • - Some classes and races may get an initial boost to specific streaks. The list is on the - right + Some classes and races may get an initial boost to specific streaks.
    • If an item was not reserved at all, players may roll according to their priority
      (e.g. @@ -37,8 +36,20 @@

    -

    Streaks

    +

    Streaks & Decay

      +
    • + Spending your reserves will increase your streak by 1+#reserves. This number is affected by decay +
    • +
    • + Every time a raid starts, ALL streaks in that raid tier are reduced by 1 (this evens out the streak-gain for attendees back to 1) +
    • +
    • + Players that are marked absent have their streaks decay by 2 instead (which leaves the total unchanged) +
    • +
    • + If a player does not sign up as either "Attending" or "Absent" they are still subject to the decay, thereby decreasing the streak by 1 +
    • Switching the selected item destroys previous streaks. (Streaks must be continued without switchup)