private void UpdateSaints(IEnumerable <Saint> saints) { var party = LiveDataService.ReadParty().ToList(); var saintList = saints.ToList(); if (saintList.Any()) { var sb = new StringBuilder(); foreach (var saint in saintList) { sb.AppendLine(saint.Clue); var alreadyKnown = (from c in party where c.HasSaint(saint.Id) select c.ShortName).ToList(); if (alreadyKnown.Any()) { sb.AppendLine("Known by: " + string.Join(", ", alreadyKnown) + "."); } sb.AppendLine(); } Messages = sb.ToString(); } }
private static void DoListenMenu(string[] args) { StartLiveDataService(() => { LiveDataService.MonitorCurrentScreen(menu => { Console.WriteLine(); Console.WriteLine(menu); }); }); }
public void Start() { if (!IsListening) { IsListening = true; LiveDataService.MonitorCurrentScreen(OnScreenUpdated); LiveDataService.MonitorFormulae(UpdateFormulae); LiveDataService.MonitorSaints(UpdateSaints); } }
private void OnConnected(bool isConnected) { Title = "Darklands Companion - " + (isConnected ? "Connected" : "Looking for Darklands process..."); IsConnected = isConnected; if (isConnected && !MessageVm.IsListening) { MessageVm.Start(); LiveDataService.MonitorDate(OnDateChanged); } }
public bool Start() { var path = ConfigurationService.GetDarklandsPath(ConfigType.DarklandsCompanion); if (StaticDataService.SetDarklandsPath(path)) { LiveDataService.ConnectionMonitor += OnConnected; LiveDataService.Connect(); return(true); } MessageVm.Messages = "Error: Cannot find Darklands from the folder '" + path + "'"; return(false); }
private static void StartLiveDataService(Action callback) { LiveDataService.ConnectionMonitor += connected => { if (connected) { Console.WriteLine("Darklands process found."); callback(); } else { Console.WriteLine("Searching for Darklands process..."); } }; LiveDataService.Connect(); }
private void UpdateFormulae(IEnumerable <Formula> formulae) { var formulaList = formulae.ToList(); if (_currentScreen == ScreenType.Alchemist && formulaList.Count == 4) // ackward hack #1 { // #1 when entring the the alchemy screen memory section contains // 3 last formulaList and text 'potions'. Skip that. var party = LiveDataService.ReadParty().ToList(); var sb = new StringBuilder(); foreach (var f in formulaList) { var formula = f; var ingredientsWithNames = from ing in formula.Ingrediens let item = StaticDataService.ItemDefinitions.FirstOrDefault(i => i.Id == ing.ItemCode) select string.Format("{0} ({1})", (item != null ? item.ShortName : "???"), ing.Quantity); var alreadyKnown = (from c in party where c.HasFormula(formula.Id) select c.ShortName).ToList(); sb.AppendLine(f.FullName + " (" + f.Quality + ") " + (alreadyKnown.Any() ? string.Join(", ", alreadyKnown) : string.Empty)); sb.AppendLine(string.Join(", ", ingredientsWithNames)); sb.AppendLine(f.Description); sb.AppendLine(); } Messages = sb.ToString(); } }
private static void DoListFormulae(string[] args) { if (args.Length == 1 || args[1] == "list") { foreach (var l in StaticDataService.Formulae) { Console.WriteLine(l); } } else if (args[1] == "listen") { StartLiveDataService(() => { LiveDataService.MonitorFormulae(formulae => { Console.WriteLine(); foreach (var f in formulae) { Console.WriteLine(f); } }); }); } }
private static void DoListSaints(string[] args) { if (args.Length == 1 || args[1] == "list") { foreach (var l in StaticDataService.Saints) { Console.WriteLine(l); } } else if (args[1] == "listen") { StartLiveDataService(() => { LiveDataService.MonitorSaints(saints => { Console.WriteLine(); foreach (var s in saints) { Console.WriteLine(s); } }); }); } }
private static void DoMonitorMemory(string[] args) { StartLiveDataService(() => { var numEv = 0x50; LiveDataService.MonitorMemory(0x8B0A070, numEv * 0x40, bytes => { Console.WriteLine(DateTime.Now); var s = new ByteStream(bytes); var ev = new List <Event>(numEv); for (var i = 0; i < numEv; i++) { var offset = i * (Event.EventSize + 0x40 - Event.EventSize); var e = new Event(s, offset); if (e.IsActiveQuest) { Console.WriteLine(e.CreateDate + " - " + e.ExpireDate); } ev.Add(e); } }); }); }
public void Stop() { LiveDataService.Stop(); }
public CardsController(ILogger <CardsController> logger, LiveDataService liveDataService) { _logger = logger; _liveDataService = liveDataService; }
public LivedataController(ILogger <LivedataController> logger, LiveDataService liveDataService) { _logger = logger; _liveDataService = liveDataService; }
private void UpdateResults() { var sb = new StringBuilder(); if (string.IsNullOrEmpty(Filter)) { sb.AppendLine(DefaultText); } else if (Filter.ToLower().StartsWith("help")) { sb.AppendLine(_helpText); } else { var buffFilter = SaintBuffManager.FindFilter(Filter); if (buffFilter == null) { return; } var party = LiveDataService.ReadParty().ToList(); IEnumerable <int> knownSaintIds = null; if (KnownOnly) { knownSaintIds = (from c in party select c.SaintBitmask.SaintIds).SelectMany(s => s).Distinct(); } var matchingSaints = StaticDataService.FilterSaints(buffFilter, knownSaintIds).ToList(); if (matchingSaints.Any()) { sb.AppendLine("Known saints with bonus to '" + buffFilter.Name + "': "); sb.AppendLine(); foreach (var s in matchingSaints) { var saint = s; sb.AppendFormat("{0}: {1}", saint.ShortName, saint.GetBuff(buffFilter.Name)); var knownBy = (from c in party where c.SaintBitmask.HasSaint(saint.Id) select c.ShortName).ToList(); if (knownBy.Any()) { sb.AppendFormat(" ({0})", string.Join(", ", knownBy)); } sb.AppendLine(); } } else { sb.AppendLine("No one in the party knows saints with buff to '" + buffFilter.Name + "'."); } } if (sb.Length > 0) { Result = sb.ToString(); } }
public SSEController(ILogger <SSEController> logger, LiveDataService livedata) { _logger = logger; _livedata = livedata; }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger <Startup> logger, LiveDataService liveDataService) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); } app.UseStaticFiles(); app.UseSpaStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller}/{action=Index}/{id?}"); if (env.IsDevelopment()) { endpoints.MapToVueCliProxy( "{*path}", new SpaOptions { SourcePath = "ClientApp" }, npmScript: "serve", regex: "Compiled successfully"); } // Add MapRazorPages if the app uses Razor Pages. Since Endpoint Routing includes support for many frameworks, adding Razor Pages is now opt -in. endpoints.MapRazorPages(); }); app.UseSpa(spa => { spa.Options.SourcePath = "ClientApp"; }); try{ liveDataService.InitService(); } catch (System.Exception e) { logger.LogError($"Folders or files could not be created at startup :\n{e}"); } }
public PlayersController(ILogger <PlayersController> logger, LiveDataService liveDataService) { _logger = logger; _liveDataService = liveDataService; }
private void OnScreenUpdated(string screenName) { _currentScreen = LiveDataService.GetScreen(screenName); }