private static string GetActualFilter(DialogFilter filter) { switch (filter) { case DialogFilter.SQLServerCEDatabaseFile: return(Resources.TXT_SQL_SERVER_COMPACT_EDITION); case DialogFilter.PDF: return(Resources.TXT_PORTABLE_DOCUMENT_FORMAT); case DialogFilter.PlainText: return(Resources.TXT_TEXT_FILE); case DialogFilter.Codecs: return(GetCodecFilter()); case DialogFilter.Data: return(Resources.TXT_DATA_FILE); case DialogFilter.JPG: return(Resources.TXT_JPEG_FILE); case DialogFilter.Empty: return(string.Empty); default: return(Resources.TXT_ALL_FILES); } }
private IQuery <DialogDTO> GetChatQuery(DialogFilter filter) { DialogListQuery query = new DialogListQuery((UnitOfWork)Database); query.ClearSortCriterias(); query.Filter = filter; return(query); }
public static DialogHelperResult SaveFile(DialogFilter filter, string fileName) { var dialog = new SaveFileDialog { InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), FileName = fileName, Filter = GetActualFilter(filter) }; bool?result = dialog.ShowDialog(); return(new DialogHelperResult { Result = result, FileName = dialog.FileName }); }
public async Task <DialogListDTO> ListDialogs(DialogFilter filter, int page = 0) { IQuery <DialogDTO> query = GetChatQuery(filter); query.Skip = (page > 0 ? page - 1 : 0) * DialogPageSize; query.Take = DialogPageSize; query.AddSortCriteria(s => s.Name, SortDirection.Descending); return(new DialogListDTO { RequestedPage = page, ResultCount = query.GetTotalRowCount(), ResultDialogs = query.Execute(), Filter = filter }); }
private IEnumerable <Quote> GetFilteredCharacterQuotes(DialogFilter filter, CharacterType character) { if (!dialogs.ContainsKey(character)) { Debug.Log("Warning : tried to get quotes from unkown character type : " + character); } foreach (var dialogPhrase in dialogs[character]) { if (dialogPhrase.filter == filter) { yield return new Quote() { character = character, phrase = dialogPhrase.phrase } } } ; }
public static async Task ApplyBuff(CharacterControl target, BuffType buffType, int nbrTurn) { DialogFilter filter = nbrTurn > 0 ? DialogFilter.Buff : DialogFilter.Unbuff; /* await CombatManager.Instance.dialogManager.ShowDialog(filter, * CharacterType.None, Dialog.GetCharacterTypeFromCharacterControl(target));*/ var effects = target.statusEffects; Buff effect = (Buff)effects.FirstOrDefault(e => e.type == EffectType.Buff && ((Buff)e)._buffType == buffType); if (effect is null) { effect = new Buff(target, nbrTurn, buffType, nbrTurn); effects.Add(effect); target.effectTypes.Value |= EffectType.Buff; } else { effect.turnsLeft.Value = Math.Max(nbrTurn, effect.turnsLeft.Value); } }
public async Task ShowDialog(DialogFilter filter, CharacterType actionExecutor, CharacterType actionReceiver, Sprite icon, String name) { if (!IsDialogAvailable()) { return; } Quote quote = GetDialogQuote(filter, actionExecutor, actionReceiver); dialogText.text = quote.phrase; dialogText.maxVisibleCharacters = 0; dialogImage.sprite = icon; dialogTitle.text = name; dialogCanvas.DOFade(1, .5f).SetEase(Ease.InOutCubic); await Utils.AwaitObservable( Observable.Timer(TimeSpan.FromMilliseconds(textSpeed)) .Repeat() .Zip(quote.phrase.ToObservable(), (_, y) => y), _ => dialogText.maxVisibleCharacters += 1); await Utils.AwaitObservable(Observable.Timer(TimeSpan.FromSeconds(1))); dialogCanvas.DOFade(0, .5f).SetEase(Ease.InOutCubic); }
private Quote GetDialogQuote(DialogFilter filter, CharacterType actionExecutor, CharacterType actionReceiver) { List <Quote> quotes = new List <Quote>(); // get executors dialog switch (actionExecutor) { //bard/////////////////////////////////////////////// case CharacterType.Bard: //unbuff filter if (filter.HasFlag(DialogFilter.Unbuff)) { switch (actionReceiver) { //fake monsters case CharacterType.Goblins: case CharacterType.Orcs: case CharacterType.OrcsLeader: case CharacterType.Treant: case CharacterType.Golem: filter |= DialogFilter.FakeMonsters; break; //real monsters case CharacterType.Ghost: case CharacterType.Wight: case CharacterType.Wisp: case CharacterType.Brasier: case CharacterType.Skeleton: case CharacterType.AngrySkeleton: case CharacterType.ColdSkeleton: filter |= DialogFilter.RealMonsters; break; } } break; //clients///////////////////////////////////////////// case CharacterType.Client: //unbuff filter if (filter.HasFlag(DialogFilter.Unbuff)) { switch (actionReceiver) { //real monsters case CharacterType.Ghost: case CharacterType.Wight: case CharacterType.Wisp: case CharacterType.Brasier: case CharacterType.Skeleton: case CharacterType.AngrySkeleton: case CharacterType.ColdSkeleton: filter |= DialogFilter.RealMonsters; break; } } break; //fake monsters ///////////////////////////////// case CharacterType.Goblins: case CharacterType.Orcs: case CharacterType.OrcsLeader: case CharacterType.Treant: //unbuff filter if (filter.HasFlag(DialogFilter.Unbuff)) { //get fake monsters dialog foreach (var filteredQuote in GetFilteredCharacterQuotes(filter, actionExecutor)) { quotes.Add(filteredQuote); } // and then add client target condition if (actionReceiver == CharacterType.Client) { filter |= DialogFilter.Clients; } } //enemy vectory if (filter.HasFlag(DialogFilter.Victory)) { filter |= DialogFilter.FakeMonsters; } break; //monsters //////////////////////////////////////// case CharacterType.Ghost: case CharacterType.Wight: case CharacterType.Wisp: case CharacterType.Brasier: case CharacterType.Skeleton: case CharacterType.AngrySkeleton: case CharacterType.ColdSkeleton: //enemy vectory if (filter.HasFlag(DialogFilter.Victory)) { filter |= DialogFilter.RealMonsters; } break; } // get filtered dialogs if (actionExecutor != CharacterType.None) { foreach (var filteredQuote in GetFilteredCharacterQuotes(filter, actionExecutor)) { quotes.Add(filteredQuote); } } // get receivers dialog switch (actionReceiver) { case CharacterType.Client: if (filter.HasFlag(DialogFilter.Damage) || filter.HasFlag(DialogFilter.CriticalDamage) || filter.HasFlag(DialogFilter.Kill) || filter.HasFlag(DialogFilter.Heal) || filter.HasFlag(DialogFilter.Buff) || filter.HasFlag(DialogFilter.Unbuff)) { filter |= DialogFilter.Clients; } break; //fake monsters case CharacterType.Goblins: case CharacterType.Orcs: case CharacterType.OrcsLeader: case CharacterType.Treant: case CharacterType.Golem: if (filter.HasFlag(DialogFilter.Damage) || filter.HasFlag(DialogFilter.CriticalDamage) || filter.HasFlag(DialogFilter.Kill) || filter.HasFlag(DialogFilter.Heal) || filter.HasFlag(DialogFilter.Buff) || filter.HasFlag(DialogFilter.Unbuff)) { filter |= DialogFilter.FakeMonsters; } break; //real monsters case CharacterType.Ghost: case CharacterType.Wight: case CharacterType.Wisp: case CharacterType.Brasier: case CharacterType.Skeleton: case CharacterType.AngrySkeleton: case CharacterType.ColdSkeleton: if (filter.HasFlag(DialogFilter.Damage) || filter.HasFlag(DialogFilter.CriticalDamage) || filter.HasFlag(DialogFilter.Kill) || filter.HasFlag(DialogFilter.Heal) || filter.HasFlag(DialogFilter.Buff) || filter.HasFlag(DialogFilter.Unbuff)) { filter |= DialogFilter.RealMonsters; } break; } if (actionReceiver != CharacterType.None) { foreach (var filteredQuote in GetFilteredCharacterQuotes(filter, actionReceiver)) { quotes.Add(filteredQuote); } } // when all characters are involved if (actionExecutor == CharacterType.None && actionReceiver == CharacterType.None) { foreach (var character in dialogs.Keys) { foreach (var filteredQuote in GetFilteredCharacterQuotes(filter, character)) { quotes.Add(filteredQuote); } } } if (quotes.Count != 0) { int rand = Random.Range(0, quotes.Count); closedList.Add(quotes[rand].phrase); return(quotes[rand]); } return(new Quote()); }
public void DialogFilter() { // Typical string s = new DialogFilter() .AddAll("All files") .AddSupported("Supported files") .Add("XML files", "*.xml") .Add("Text files", "*.txt") .ToString(); Assert.IsTrue(s == "All files (*.*)|*.*|Supported files (*.xml;*.txt)|*.xml;*.txt|XML files (*.xml)|*.xml|Text files (*.txt)|*.txt"); // No all items or supported items s = new DialogFilter() .Add("XML files", "*.xml") .Add("Text files", "*.txt") .ToString(); Assert.IsTrue(s == "XML files (*.xml)|*.xml|Text files (*.txt)|*.txt"); // Specific item and all items s = new DialogFilter() .Add("XML files", "*.xml") .AddAll("All files") .ToString(); Assert.IsTrue(s == "XML files (*.xml)|*.xml|All files (*.*)|*.*"); // Supported items first and all items last s = new DialogFilter() .AddSupported("Supported files") .Add("XML files", "*.xml") .Add("Text files", "*.txt") .AddAll("All files") .ToString(); Assert.IsTrue(s == "Supported files (*.xml;*.txt)|*.xml;*.txt|XML files (*.xml)|*.xml|Text files (*.txt)|*.txt|All files (*.*)|*.*"); // Only all items s = new DialogFilter() .AddAll("All files") .ToString(); Assert.IsTrue(s == "All files (*.*)|*.*"); // No items s = new DialogFilter() .ToString(); Assert.IsTrue(s == ""); // No placeholder s = new DialogFilter() .Add("XML files", "*.xml", false) .ToString(); Assert.IsTrue(s == "XML files|*.xml"); // Custom placeholder s = new DialogFilter() .Add("XML files [{0}]", "*.xml") .ToString(); Assert.IsTrue(s == "XML files [*.xml]|*.xml"); // Another custom pattern s = new DialogFilter() .Add("{0} files", "*.xml") .ToString(); Assert.IsTrue(s == "*.xml files|*.xml"); }