public CrewProgressionManager(MessageBroker aBroker, List <Account> accountList, CrewProgressionManagerSettings settings) { log(() => $"***INITIALIZE CPM"); broker = aBroker; this.settings = settings; ccm = new ChatCommandManager(generateInitialChatCommands()); this.verbose = settings.verbose; log(() => $"***loading accounts: {Serializer.Serialize(accountList)}"); log(() => $"***settings: {Serializer.Serialize(settings)}"); this.accounts = new Dictionary <string, Account>(); accountList.ForEach(SaveAccount); var playerIds = accountList .Where(x => x.type == AccountType.Player) .Select(x => int.Parse(x.id)); initializedPlayerIds = new HashSet <int>(playerIds); log(() => $"***loaded with accounts: {Serializer.Serialize(this.accounts)}"); this.NextCheckin = aBroker.GameAPI.Game_GetTickTime(); CrewInfoTracker = new Dictionary <int, CrewInfo>(); actionManifest = new Dictionary <string, Action>() { { "Normalize Players", SimpleUpdate }, { "Update Points", UpdateWithPointIncrement }, { "Evaluate Research Teams", updateCrewResearchTeams }, { "Save Accounts", () => Account.SaveAccountListToFile(this.accounts.Values.ToList(), "Content/Mods/CPM/accounts.json") } }; EventList = generateEventList(settings.actions); }
public void Game_Start(ModGameAPI dediAPI) { GameAPI = dediAPI; dediAPI.Console_Write("!!CREW PROGRESSION MOD LOADED!!"); broker = new MessageBroker(dediAPI); var accounts = Account.AccountsFromFile("Content/Mods/CPM/accounts.json"); settings = CrewProgressionManagerSettings.SettingsFromFile("Content/Mods/CPM/settings.json"); GameAPI.Console_Write($"SETTINGS****: {Serializer.Serialize(settings)}"); cpm = new CrewProgressionManager(broker, accounts, settings); ccm = new ChatCommandManager(cpm.generateInitialChatCommands()); }