achievement-watcher/celes

View on GitHub
src/lib/plugins/Darksiders.ts

Summary

Maintainability
A
0 mins
Test Coverage
import {
    DarksidersAchievementList,
    Source,
    UnlockedOrInProgressAchievement
} from '../../types';
import {SteamEmulatorScraper} from './utils/SteamEmulatorScraper';
import {generateActiveAchievement} from '../utils/generator';

class Darksiders extends SteamEmulatorScraper {
    readonly source: Source = 'Darksiders';
    readonly achievementWatcherRootPath: string;
    readonly achievementLocationFiles: string[] = [
        'stats.ini'
    ];

    constructor(achievementWatcherRootPath: string) {
        super();
        this.achievementWatcherRootPath = achievementWatcherRootPath;
    }

    normalizeActiveAchievements(achievementList: DarksidersAchievementList): UnlockedOrInProgressAchievement[] {
        const activeAchievements: UnlockedOrInProgressAchievement[] = [];

        Object.keys(achievementList.Achievements).forEach((achievementName: string) => {
            activeAchievements.push(
                generateActiveAchievement(
                    achievementName,
                    parseInt(achievementList.AchievementsUnlockTimes[achievementName]) * 1000
                )
            );
        });

        return activeAchievements;
    }

    getSpecificFoldersToScan(): string[] {
        return [];
    }
}

export {Darksiders};