Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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
            });
        }
Exemplo n.º 5
0
 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
                    }
         }
     }
     ;
 }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
    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());
    }
Exemplo n.º 9
0
        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");
        }