Пример #1
0
 public Engine(IWriter writer, IReader reader, IGamePointFactory gamePointFactory)
 {
     this.writer = writer;
     this.reader = reader;
     CustomIO.ConfigureSettings();
     this.gamePointFactory = gamePointFactory;
 }
        public string Execute()
        {
            writer.ClearInterface();
            writer.PrintOnNewLine(MenuMessages.pickedCharacters);
            characters.ToList().ForEach(x => writer.PrintOnLine(x + " "));
            writer.PrintOnNewLine(String.Empty);
            attempt = CustomIO.ReadNewLine();

            return(CommandConstants.CONTINUE_COMMAND);
        }
Пример #3
0
    private void Awake()
    {
        m_hookerUpper = new HookerUpper();
        CustomIO.LoadBaseMesh(m_fileName, NullSetSRT, out m_baseVerts, out m_floatsPerVertex, out m_vertexGroups, out m_objectVariations);
        m_numVertices = m_baseVerts.Length / m_floatsPerVertex;


        m_hookerUpper.InitIndices(m_numVertices);
        m_componentRefs = new List <ComponentRef>(m_listPresize);
    }
Пример #4
0
        private async void LoadSetting()
        {
            (bool res, string ip, string port) = await CustomIO.GetIpAndPort();

            if (res == true)
            {
                IpAddress = ip;
                Port      = port;
            }
        }
Пример #5
0
        private async void RemoveServerSetting()
        {
            var result = await CustomDialog.AskRemoveFile("server setting");

            if (result == ContentDialogResult.Primary)
            {
                await CustomIO.RemoveFile();

                IpAddress = "";
                Port      = "";
            }
        }
Пример #6
0
        private async void CheckServerSettingFile()
        {
            (bool res, string ip, string port) = await CustomIO.GetIpAndPort();

            if (res == false)
            {
                await CustomDialog.ServerSettingLoadError();

                PageStack.Push(page.GetType());
                page.Frame.Navigate(typeof(ServerSettingPage), PageStack);
                return;
            }
        }
Пример #7
0
        private async void ConnectTest()
        {
            ConnectTesting   = true;
            ResultVisibility = Visibility.Collapsed;
            Communication tcp  = new Communication();
            var           stat = await tcp.ConnectAndTest(IpAddress, Port);

            if (stat != Communication.TcpError.NoError)
            {
                await CustomDialog.ServerConnectError();

                tcp.Disconnect();
                ConnectTesting = false;
                return;
            }
            await CustomIO.WriteFile(IpAddress + "," + Port);   // 設定ファイルを読み込み

            ResultVisibility = Visibility.Visible;
            tcp.Disconnect();
            ConnectTesting = false;
        }
Пример #8
0
        private async void Register(object parameter)
        {
            Registering      = true;
            ResultVisibility = Visibility.Collapsed;
            var passwordBox = parameter as PasswordBox;

            switch (CheckInputData(Email, passwordBox.Password))
            {
            case CheckInputDataResult.PasswordTooShort:
                await CustomDialog.UserRegisterPasswordLengthError();

                Registering = false;
                return;

            case CheckInputDataResult.EmailTooShort:
            case CheckInputDataResult.EmailTooLong:
                await CustomDialog.UserRegisterEmailLengthError();

                Registering = false;
                return;
            }

            (bool res, string ip, string port) = await CustomIO.GetIpAndPort();

            if (res == false)
            {
                // 一応ここでもチェックする
                await CustomDialog.ServerSettingLoadError();

                PageStack.Push(page.GetType());
                page.Frame.Navigate(typeof(ServerSettingPage), PageStack);
                Registering = false;
                return;
            }

            Communication tcp  = new Communication();
            var           stat = await tcp.ConnectAndTest(ip, port);

            if (stat != Communication.TcpError.NoError)
            {
                await CustomDialog.ServerConnectError();

                tcp.Disconnect();
                Registering = false;
                return;
            }

            var hash = CalcHash.Sha256(passwordBox.Password);
            await tcp.SendMessageAsync(tcp.GetTcpCommand(Communication.TcpCommandNumber.CmdAddUser));

            Communication.TcpStatus comStat;
            do
            {
                var resMsg = await tcp.ReceiveMessageAsync();

                comStat = tcp.GetStatus(resMsg);
                switch (comStat)
                {
                case Communication.TcpStatus.StatRequestHash:
                    await tcp.SendMessageAsync(hash);

                    break;

                case Communication.TcpStatus.StatRequestEmail:
                    await tcp.SendMessageAsync(Email);

                    break;

                case Communication.TcpStatus.StatFIN:
                    break;

                case Communication.TcpStatus.StatHashConflict:
                    await CustomDialog.UserRegisterHashConflictError();

                    tcp.Disconnect();
                    Registering = false;
                    return;

                default:
                    await CustomDialog.UnknownError();

                    tcp.Disconnect();
                    Registering = false;
                    return;
                }
            } while (comStat != Communication.TcpStatus.StatFIN);

            ResultVisibility     = Visibility.Visible;
            passwordBox.Password = "";
            Email = "";
            await CustomDialog.UserRegisterComplete();

            tcp.Disconnect();
            Registering = false;
        }
Пример #9
0
        private async Task BeginBuyProducts(string hash)
        {
            Connecting = true;
            (bool res, string ip, string port) = await CustomIO.GetIpAndPort();

            if (res == false)
            {
                // 一応ここでもチェックする
                await CustomDialog.ServerSettingLoadError();

                PageStack.Push(page.GetType());
                page.Frame.Navigate(typeof(ServerSettingPage), PageStack);
                Connecting = false;
                PasswordInputPanelVisibility = Visibility.Collapsed;
                return;
            }

            Communication tcp  = new Communication();
            var           stat = await tcp.ConnectAndTest(ip, port);

            if (stat != Communication.TcpError.NoError)
            {
                await CustomDialog.ServerConnectError();

                tcp.Disconnect();
                Connecting = false;
                PasswordInputPanelVisibility = Visibility.Collapsed;
                return;
            }


            await tcp.SendMessageAsync(tcp.GetTcpCommand(Communication.TcpCommandNumber.CmdBuyProduct));

            Communication.TcpStatus comStat;
            var         products = CreateStack();
            ProductInfo p        = new ProductInfo("", 0);

            do
            {
                var resMsg = await tcp.ReceiveMessageAsync();

                comStat = tcp.GetStatus(resMsg);
                switch (comStat)
                {
                case Communication.TcpStatus.StatRequestHash:
                    await tcp.SendMessageAsync(hash);

                    break;

                case Communication.TcpStatus.StatRequestBuyProductName:
                    if (products.Count == 0)
                    {
                        await tcp.SendMessageAsync(tcp.GetTcpCommand(Communication.TcpCommandNumber.CmdClientFIN));

                        break;
                    }
                    p = products.Pop();
                    await tcp.SendMessageAsync(p.Name);

                    break;

                case Communication.TcpStatus.StatRequestBuyProductAmount:
                    if (p.Name == "")
                    {
                        await CustomDialog.UnknownError();

                        tcp.Disconnect();
                        Connecting = false;
                        PasswordInputPanelVisibility = Visibility.Collapsed;
                    }
                    await tcp.SendMessageAsync(p.Amount.ToString());

                    if (products.Count == 0)
                    {
                        await tcp.SendMessageAsync(tcp.GetTcpCommand(Communication.TcpCommandNumber.CmdClientFIN));
                    }
                    break;

                case Communication.TcpStatus.StatFIN:
                    break;

                case Communication.TcpStatus.StatNoEnoughMoney:
                    await CustomDialog.NoEnoughMoney();

                    tcp.Disconnect();
                    Connecting = false;
                    PasswordInputPanelVisibility = Visibility.Collapsed;
                    PageStack.Push(page.GetType());
                    page.Frame.Navigate(typeof(MoneyChargePage), PageStack);
                    return;

                case Communication.TcpStatus.StatNoUser:
                    await CustomDialog.NoUserError();

                    tcp.Disconnect();
                    Connecting = false;
                    PasswordInputPanelVisibility = Visibility.Collapsed;
                    return;

                default:
                    await CustomDialog.UnknownError();

                    tcp.Disconnect();
                    Connecting = false;
                    PasswordInputPanelVisibility = Visibility.Collapsed;
                    return;
                }
            } while (comStat != Communication.TcpStatus.StatFIN);

            Connecting = false;
            PasswordInputPanelVisibility = Visibility.Collapsed;
            await CustomDialog.PurchaseComplete();

            page.Frame.Navigate(typeof(MainPage));
        }
Пример #10
0
        private async Task BeginChargeMoney(string hash)
        {
            Connecting = true;
            (bool res, string ip, string port) = await CustomIO.GetIpAndPort();

            if (res == false)
            {
                // 一応ここでもチェックする
                await CustomDialog.ServerSettingLoadError();

                PageStack.Push(page.GetType());
                page.Frame.Navigate(typeof(ServerSettingPage), PageStack);
                amountOfCharge = 0;
                Connecting     = false;
                PasswordInputPanelVisibility = Visibility.Collapsed;
                return;
            }

            Communication tcp  = new Communication();
            var           stat = await tcp.ConnectAndTest(ip, port);

            if (stat != Communication.TcpError.NoError)
            {
                await CustomDialog.ServerConnectError();

                tcp.Disconnect();
                amountOfCharge = 0;
                Connecting     = false;
                PasswordInputPanelVisibility = Visibility.Collapsed;
                return;
            }


            await tcp.SendMessageAsync(tcp.GetTcpCommand(Communication.TcpCommandNumber.CmdChargeMoney));

            Communication.TcpStatus comStat;
            do
            {
                var resMsg = await tcp.ReceiveMessageAsync();

                comStat = tcp.GetStatus(resMsg);
                switch (comStat)
                {
                case Communication.TcpStatus.StatRequestHash:
                    await tcp.SendMessageAsync(hash);

                    break;

                case Communication.TcpStatus.StatRequestAmountOfMoney:
                    await tcp.SendMessageAsync(amountOfCharge.ToString());

                    break;

                case Communication.TcpStatus.StatFIN:
                    break;

                case Communication.TcpStatus.StatNoUser:
                    await CustomDialog.NoUserError();

                    tcp.Disconnect();
                    amountOfCharge = 0;
                    Connecting     = false;
                    PasswordInputPanelVisibility = Visibility.Collapsed;
                    return;

                default:
                    await CustomDialog.UnknownError();

                    tcp.Disconnect();
                    amountOfCharge = 0;
                    Connecting     = false;
                    PasswordInputPanelVisibility = Visibility.Collapsed;
                    return;
                }
            } while (comStat != Communication.TcpStatus.StatFIN);


            amountOfCharge = 0;
            Connecting     = false;
            PasswordInputPanelVisibility = Visibility.Collapsed;
            await CustomDialog.ChargeComplete();
        }