public Task <IEnumerable <Sheet> > GetSheetsByStatus(SheetStatus status) { var result = this.Client.CreateDocumentQuery <Sheet>( UriFactory.CreateDocumentCollectionUri("store", "sheet")) .ToArray() .Where(x => x.Status == status); return(Task.FromResult(result)); }
///////////////////////////////////////////// /// Functions ///////////////////////////////////////////// //initialize variables and turn the sheet off public void Setup() { nameButton = transform.Find(NAME_OBJ).Find(TEXT_OBJ).GetComponent <TextMeshProUGUI>(); statBlock = transform.Find(STAT_OBJ).GetComponent <TextMeshProUGUI>(); nextLabel = transform.Find(NEXT_LABEL_OBJ).GetComponent <TextMeshProUGUI>(); track1Next = transform.Find(TRACK_1_NEXT_OBJ).Find(TEXT_OBJ).GetComponent <TextMeshProUGUI>(); track1Current = transform.Find(TRACK_1_CURRENT_OBJ).Find(TEXT_OBJ).GetComponent <TextMeshProUGUI>(); track2Next = transform.Find(TRACK_2_NEXT_OBJ).Find(TEXT_OBJ).GetComponent <TextMeshProUGUI>(); track2Current = transform.Find(TRACK_2_CURRENT_OBJ).Find(TEXT_OBJ).GetComponent <TextMeshProUGUI>(); availCards = transform.Find(AVAILABLE_CARDS_OBJ).GetComponent <TextMeshProUGUI>(); charPortrait = transform.Find(PORTRAIT_OBJ).GetComponent <Image>(); Services.Events.Register <InputEvent>(HandleClicks); CurrentStatus = SheetStatus.Hidden; ChangeSheetState(); }
public void FilterAttachElementFromStatuses(Dictionary <string, List <SheetStatus> > statuses) { SheetStatus attachElement = new SheetStatus() { DefaultDuration = "25", Effects = "Replaces Attack command, increases {Element} damage dealt by 50/80/120% (abilities) or 80/100/120% (Soul Breaks), {Element} resistance +20%" }; SheetStatus attachElementStacking = new SheetStatus() { DefaultDuration = "25", Effects = "Allow to stack Attach {Element}, up to Attach {Element} 3" }; SheetStatus buffElement = new SheetStatus() { DefaultDuration = "15", Effects = "Increases {Element} damage dealt by 10%, cumulable" }; SheetStatus imperilElement = new SheetStatus() { DefaultDuration = "15", Effects = "{Element} Resistance -10%, cumulable" }; var attachElements = statuses .Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Attach") && !y.Name.Contains("Stacking")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); var stackingElements = statuses.Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Attach") && y.Name.Contains("Stacking")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); var buffElements = statuses.Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Buff")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); var imperilElements = statuses.Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Imperil")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); if (attachElements.Count() == 0 && stackingElements.Count() == 0 && buffElements.Count() == 0 && imperilElements.Count() == 0) { return; } if (attachElements.Count() > 0) { var elements = new List <string>(); foreach (var source in attachElements) { //var matchingElements = statuses[source.Key].Where(x => source.Value.Any(y => y.Name == x.Name)); foreach (var element in source.Value) { statuses[source.Key].Remove(element); elements.AddRange(Constants.Constants.elementList.Where(x => element.Name.Contains(x))); } } var omni = attachElement; omni.Name = $"Attach {string.Join(", ", elements)}"; omni.Effects = omni.Effects.Replace("{Element}", string.Join(", ", elements)); statuses[statuses.First().Key].Add(omni); } if (stackingElements.Count() > 0) { var elements = new List <string>(); foreach (var source in stackingElements) { //var matchingElements = statuses[source.Key].Where(x => source.Value.Any(y => y.Name == x.Name)); foreach (var element in source.Value) { statuses[source.Key].Remove(element); elements.AddRange(Constants.Constants.elementList.Where(x => element.Name.Contains(x))); } var omni = attachElementStacking; omni.Name = $"Attach {string.Join(", ", elements)} With Stacking"; omni.Effects = omni.Effects.Replace("{Element}", string.Join(", ", elements)); statuses[statuses.First().Key].Add(omni); } } if (buffElements.Count() > 0) { var elements = new List <string>(); foreach (var source in buffElements) { //var matchingElements = statuses[source.Key].Where(x => source.Value.Any(y => y.Name == x.Name)); foreach (var element in source.Value) { statuses[source.Key].Remove(element); elements.AddRange(Constants.Constants.elementList.Where(x => element.Name.Contains(x))); } } var omni = buffElement; omni.Name = $"Buff {string.Join(", ", elements)}"; omni.Effects = omni.Effects.Replace("{Element}", string.Join(", ", elements)); statuses[statuses.First().Key].Add(omni); } if (imperilElements.Count() > 0) { var elements = new List <string>(); foreach (var source in imperilElements) { //var matchingElements = statuses[source.Key].Where(x => source.Value.Any(y => y.Name == x.Name)); foreach (var element in source.Value) { statuses[source.Key].Remove(element); elements.AddRange(Constants.Constants.elementList.Where(x => element.Name.Contains(x))); } } var omni = imperilElement; omni.Name = $"Imperil {string.Join(", ", elements)}"; omni.Effects = omni.Effects.Replace("{Element}", string.Join(", ", elements)); statuses[statuses.First().Key].Add(omni); } }
public void FilterAttachElementFromStatuses(Dictionary <string, List <SheetStatus> > statuses) { SheetStatus attachElementTemplate = new SheetStatus() { DefaultDuration = "25", Effects = "Replaces Attack command, increases {Element} damage dealt by 50/80/120% (abilities) or 80/100/120% (Soul Breaks), {Element} resistance +20%" }; SheetStatus attachElementStackingTemplate = new SheetStatus() { DefaultDuration = "25", Effects = "Allow to stack Attach {Element}, up to Attach {Element} 3" }; SheetStatus buffElementTemplate = new SheetStatus() { DefaultDuration = "15", Effects = "Increases {Element} damage dealt by 10%, cumulable" }; SheetStatus imperilElementTemplate = new SheetStatus() { DefaultDuration = "15", Effects = "{Element} Resistance -10%, cumulable" }; var attachElements = statuses .Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Attach") && !y.Name.Contains("Stacking")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); var stackingElements = statuses.Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Attach") && y.Name.Contains("Stacking")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); var buffElements = statuses.Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Buff")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); var imperilElements = statuses.Select(x => new KeyValuePair <string, List <SheetStatus> > (x.Key, x.Value.Where(y => y.Name.Contains("Imperil")) .ToList())) .Where(x => x.Value.Count() != 0 && x.Value.Count() != 1) .ToList(); if (attachElements.Count() == 0 && stackingElements.Count() == 0 && buffElements.Count() == 0 && imperilElements.Count() == 0) { return; } //Add Attached Elements AddElements(statuses, attachElementTemplate, attachElements, "Attach {Element}"); //Add Stacking Attached Elements AddElements(statuses, attachElementStackingTemplate, stackingElements, "Attach {Element} With Stacking"); //Add Buffed Elements AddElements(statuses, buffElementTemplate, buffElements, "Buff {Element}"); //Add Impleril Elements AddElements(statuses, imperilElementTemplate, imperilElements, "Imperil {Element}"); }
private static void AddElements(Dictionary <string, List <SheetStatus> > statuses, SheetStatus templateStatus, List <KeyValuePair <string, List <SheetStatus> > > elementalStatuses, string nameTemplate) { if (elementalStatuses.Count() == 0) { return; } var elements = new List <string>(); foreach (var source in elementalStatuses) { foreach (var element in source.Value) { statuses[source.Key].Remove(element); elements.AddRange(Constants.Constants.elementList.Where(x => element.Name.Contains(x)).Distinct()); } } elements = elements.Distinct().ToList <string>(); var omni = templateStatus; omni.Name = nameTemplate.Replace("{Element}", string.Join(", ", elements)); omni.Effects = omni.Effects.Replace("{Element}", string.Join(", ", elements)); statuses[statuses.First().Key].Add(omni); }
public void ChangeCurrentStatus(SheetStatus newStatus) { CurrentStatus = newStatus; }