aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games/games/game_stalker2heartofchornobyl.py
blob: c6d4abba5c2832539a0d2176d6df22ce652c1e9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from typing import List, Tuple
from PyQt6.QtCore import QFileInfo
import mobase
from ..basic_game import BasicGame
from ..basic_features import BasicModDataChecker, GlobPatterns, BasicLocalSavegames


class S2HoCGame(BasicGame, mobase.IPluginFileMapper):

    Name = "Stalker 2: Heart of Chornobyl Plugin"
    Author = "Archon"
    Version = "0.1.0a"
    GameName = "Stalker 2: Heart of Chornobyl"
    GameShortName = "stalker2heartofchornobyl"
    GameNexusName = "stalker2heartofchornobyl"
    GameDocumentsDirectory = "%USERPROFILE%/AppData/Local/Stalker2"
    GameSavesDirectory = "%GAME_DOCUMENTS%/Saved/Steam/SaveGames/Data"
    GameSaveExtension = "sav"
    GameNexusId = 6944
    GameSteamId = 1643320
    GameGogId = 1529799785
    GameBinary = "Stalker2.exe"
    GameDataPath = "%GAME_PATH%/Stalker2"
    GameIniFiles = [
        "%GAME_DOCUMENTS%/Saved/Config/Windows/Game.ini",
        "%GAME_DOCUMENTS%/Saved/Config/Windows/GameUserSettings.ini",
        "%GAME_DOCUMENTS%/Saved/Config/Windows/Engine.ini"
    ]

    def __init__(self):
        super().__init__()
        mobase.IPluginFileMapper.__init__(self)

    def init(self, organizer: mobase.IOrganizer) -> bool:
        super().init(organizer)
        if hasattr(self, '_featureMap'):
            self._featureMap[mobase.ModDataChecker] = S2HoCModDataChecker()
        else:
            self._register_feature(S2HoCModDataChecker())
        return True

    def mappings(self) -> list[mobase.Mapping]:
        return []

class S2HoCModDataChecker(BasicModDataChecker):
    def __init__(self, patterns: GlobPatterns = GlobPatterns()):
        super().__init__(
            GlobPatterns(
                valid=["Content"],
                move={"*.pak": "Content/Paks/~mods/", "*.utoc": "Content/Paks/~mods/", "*.ucas": "Content/Paks/~mods/"},
            ).merge(patterns),
        )