Esempio n. 1
0
        private void ShowNames()
        {
            Sound.Pray();
            MagicCircle.Show(this, 3000, () =>
            {
                Flash.Show(this, 1000, () =>
                {
                    Second.IsVisible = true;
                    var masters      = CodeMasterServce.GetMasters <JobMaster>();
                    var target1      = CodeMasterServce.GetNameRandom();
                    while (_vm.User.Names.Any(item => target1.Attribute == item.Attribute))
                    {
                        target1 = CodeMasterServce.GetNameRandom();
                    }
                    var target2 = masters[MyRandom.GetRandom(masters.Count)];
                    var gotName = new Name(target1, target2);
                    _vm.User.Names.Add(gotName);

                    var name               = new Chu2Name();
                    name.BindingContext    = gotName;
                    name.ShowAttribute     = true;
                    name.ShowAttributeType = true;
                    name.ShowParameter     = true;
                    GetResult.Children.Add(name);

                    var image               = new Charactor();
                    image.BindingContext    = gotName;
                    image.HorizontalOptions = LayoutOptions.End;
                    Second.Children.Insert(0, image);

                    Device.StartTimer(TimeSpan.FromSeconds(3), () =>
                    {
                        if (_vm.User.Names.Count == 2)
                        {
                            Second.IsVisible  = false;
                            Third.IsVisible   = true;
                            _vm.User.MainName = _vm.User.Names[0];
                            _vm.User.SubName  = _vm.User.Names[1];
                            Sound.Normal();
                            _steps.Next();
                        }
                        else
                        {
                            GetResult.Children.Clear();
                            Second.Children.Remove(image);
                            ShowNames();
                        }
                        return(false);
                    });
                });
            });
        }
Esempio n. 2
0
        protected override void OnBindingContextChanged()
        {
            base.OnBindingContextChanged();

            var vm = BindingContext as MainViewModel;

            if (vm == null)
            {
                return;
            }

            var num     = 0;
            var masters = CodeMasterServce.GetMasters <AttributeMaster>();

            foreach (var master in masters)
            {
                var attribute = new Attribute();

                var hasAttribute = vm.User.Names.Any((name) => name.Attribute == master.Code);
                attribute.BindingContext = new
                {
                    CharactorColor = hasAttribute ? Color.FromHex(CodeMasterServce.GetValue <ColorMaster>(master.Code)) : Color.Transparent,
                    AttributeName  = master.Value
                };
                if (!hasAttribute)
                {
                    attribute.Opacity = 0.5;
                }
                if (num < masters.Count / 2)
                {
                    AttributeDisplay.Children.Add(attribute);
                }
                else
                {
                    AttributeDisplay2.Children.Add(attribute);
                }
                num++;
            }
        }
Esempio n. 3
0
 private static void SetOtherUserProfile(IList <UserProfile> others)
 {
     for (var j = 0; j < 10; j++)
     {
         var p = new UserProfile();
         for (var i = 0; i < 5; i++)
         {
             p.Names.Add(new Name()
             {
                 First  = (MyRandom.GetRandom(CodeMasterServce.GetMasters <NameMaster>().Count() - 1) + 1).ToString(),
                 Second = (MyRandom.GetRandom(CodeMasterServce.GetMasters <JobMaster>().Count() - 1) + 1).ToString()
             });
         }
         p.MainName    = p.Names[0];
         p.SubName     = p.Names[1];
         p.WinComment  = "ククク、たわいもない";
         p.LoseComment = "今日のところは勘弁してやろう";
         p.BattleComment.Add("まだまだ");
         p.BattleComment.Add("ここからが本番だぞ");
         p.BattleComment.Add("なかなかやるようだな");
         p.PlayerName = "上田" + j;
         others.Add(p);
     }
 }
Esempio n. 4
0
        private void ShowSecond()
        {
            First.IsVisible = false;
            if (!string.IsNullOrEmpty(_achivementCode))
            {
                StartPrayText.Text = "実績解禁!!";
            }
            StartPray.IsVisible = true;
            Sound.Pray();
            Sound.PrayVoice();
            MagicCircle.Show(this, 3000, () =>
            {
                StartPray.IsVisible = false;
                Flash.Show(this, 1000, () =>
                {
                    Second.IsVisible = true;
                    var masters      = CodeMasterServce.GetMasters <JobMaster>();
                    var target1      = string.IsNullOrEmpty(_achivementCode) ? CodeMasterServce.GetNameRandom() : CodeMasterServce.GetNameRandomByAttribute(_achivementCode);
                    var target2      = masters[MyRandom.GetRandom(masters.Count)];
                    var gotName      = new Name(target1, target2);

                    var name               = new Chu2Name();
                    name.BindingContext    = gotName;
                    name.ShowAttribute     = true;
                    name.ShowAttributeType = true;
                    name.ShowParameter     = true;
                    GetResult.Children.Add(name);

                    var image               = new Charactor();
                    image.BindingContext    = gotName;
                    image.HorizontalOptions = LayoutOptions.End;
                    Second.Children.Insert(0, image);

                    _current.CountUpPray();

                    var hasName = _current.Names.FirstOrDefault(n => n.Attribute == gotName.Attribute);

                    if (hasName != null)
                    {
                        BackButton.IsVisible = false;
                        Device.StartTimer(TimeSpan.FromSeconds(3), () =>
                        {
                            SelectItem.Show(this, "同じ属性の二つ名を既に持っています。二つ名を入れ替えますか?",
                                            new List <SelectItem.Item>()
                            {
                                new SelectItem.Item()
                                {
                                    Label    = "二つ名を入れ替える",
                                    Selected = () => {
                                        _current.Names.Remove(hasName);
                                        AddNewName(gotName);
                                        Device.StartTimer(TimeSpan.FromSeconds(2), () => { Back(); return(false); });
                                    }
                                },
                                new SelectItem.Item()
                                {
                                    Label    = "キャンセル",
                                    Selected = () => {
                                        CutIn.Show(this, "二つ名の取得をキャンセルしました", 3, () => { Back(); });
                                    }
                                }
                            });
                            return(false);
                        });
                    }
                    else
                    {
                        AddNewName(gotName);
                    }
                });
            });
        }
Esempio n. 5
0
        private async Task LoadAsync()
        {
            CodeMasterServce.Load();
            _vm = new MainViewModel();
            await _vm.LoadAsync();

            if (_vm.User == null)
            {
                _steps.Add(() =>
                {
                    First.IsVisible = true;
                    Explain.Text    = "このゲームをプレイしてくださりありがとうございます" + Environment.NewLine;
                    Explain.Text   += "このゲームは二つ名を集めるゲームです" + Environment.NewLine;
                }).Add(() =>
                {
                    Explain.Text  = "二つ名には火、闇といった属性があり、全属性の二つ名を集めることでゲームクリアとなります" + Environment.NewLine + Environment.NewLine;
                    Explain.Text += "二つ名は祈りを捧げるか、運命の戦いで勝つことで手に入れることができます";
                }).Add(() =>
                {
                    Explain.Text  = "二つ名には通常二つ名、レア二つ名、実績二つ名の3種類があります" + Environment.NewLine + Environment.NewLine;
                    Explain.Text += "実績二つ名は何かを成し遂げることで手に入れることができ、これだけは通常の手段では手に入りません";
                }).Add(() =>
                {
                    Explain.Text  = "まずはユーザー名とセリフを入力してください" + Environment.NewLine;
                    Explain.Text += "プレイヤー名は後で変更できませんのでご注意ください" + Environment.NewLine;
                    Explain.Text += "初期値はランダムで設定されています" + Environment.NewLine;
                }).Add(() =>
                {
                    First.IsVisible     = false;
                    InputArea.IsVisible = true;
                    NameEntry.Text      = CodeMasterServce.DefaultNames[MyRandom.GetRandom(CodeMasterServce.DefaultNames.Count)];
                    WinEntry.Text       = CodeMasterServce.DefaultWinComment[MyRandom.GetRandom(CodeMasterServce.DefaultWinComment.Count)];
                    LoseEntry.Text      = CodeMasterServce.DefaultLoseComment[MyRandom.GetRandom(CodeMasterServce.DefaultLoseComment.Count)];
                    BattleEntry1.Text   = CodeMasterServce.DefaultBattleComment[MyRandom.GetRandom(CodeMasterServce.DefaultBattleComment.Count)];
                    BattleEntry2.Text   = CodeMasterServce.DefaultBattleComment[MyRandom.GetRandom(CodeMasterServce.DefaultBattleComment.Count)];
                    BattleEntry3.Text   = CodeMasterServce.DefaultBattleComment[MyRandom.GetRandom(CodeMasterServce.DefaultBattleComment.Count)];
                }).Add(() =>
                {
                    First.IsVisible     = true;
                    InputArea.IsVisible = false;
                    _vm.CreateUser();
                    _vm.User.PlayerName  = NameEntry.Text;
                    _vm.User.WinComment  = WinEntry.Text;
                    _vm.User.LoseComment = LoseEntry.Text;
                    _vm.User.BattleComment.Add(BattleEntry1.Text);
                    _vm.User.BattleComment.Add(BattleEntry2.Text);
                    _vm.User.BattleComment.Add(BattleEntry3.Text);
                    Explain.Text  = "一定期間ご利用がないとデータは消去されますのでご注意ください" + Environment.NewLine + Environment.NewLine;
                    Explain.Text += "それではゲームスタートです";
                }).Add(() =>
                {
                    First.IsVisible = false;
                    Device.StartTimer(TimeSpan.FromSeconds(1), () =>
                    {
                        _steps.Next();
                        return(false);
                    });
                }).Add(() =>
                {
                    ThirdLabel.Text = "汝、二つ名を欲するものよ" + Environment.NewLine + "汝に二つ名を授けよう";
                    Third.IsVisible = true;
                }).Add(() =>
                {
                    ThirdLabel.Text = "";
                    Third.IsVisible = false;
                    Sound.PrayVoice();
                    ShowNames();
                });
            }
            else if (!_vm.User.CanBattle)
            {
                _steps.Add(() =>
                {
                    Third.IsVisible = true;
                    ThirdLabel.Text = "激しい戦いの末、二つ名を奪われたか・・・" + Environment.NewLine + "二つ名が不足しているようだ" + Environment.NewLine + "汝に新たな二つ名を授けよう";
                }).Add(() =>
                {
                    Explain.Text    = "";
                    Third.IsVisible = false;
                    Sound.PrayVoice();
                    ShowNames();
                });
            }

            _steps.Add(() =>
            {
                var comment     = new NameModelViewModel();
                ThirdLabel.Text = "さぁ、" + _vm.User.DisplayName + "よ" + Environment.NewLine + "栄光ある未来目指していざ行かん";
                if (MyRandom.GetRandom(10) > 5)
                {
                    ThirdLabel.Text += Environment.NewLine + Environment.NewLine + "ちなみに今日のラッキーカラーは「" + comment.Color + "」だ";
                }
                else
                {
                    ThirdLabel.Text += Environment.NewLine + Environment.NewLine + "ちなみに今日のラッキースポットは「" + comment.Spot + "」だ";
                }
                Third.IsVisible = true;
            }).Add(() =>
            {
                _vm.User.TodaysLogin();
                _vm.Save();
                App.Transition(new MainPage(_vm));
            }).Next();
        }