Beispiel #1
0
        public IPacket ReadPacket(IMinecraftDataReader reader)
        {
            Action = (TitleAction)reader.ReadVarInt();

            switch (Action)
            {
            case TitleAction.Title:
                Title = new TitleTitle();
                Title.FromReader(reader);
                break;

            case TitleAction.Subtitle:
                Title = new TitleSubtitle();
                Title.FromReader(reader);
                break;

            case TitleAction.Times:
                Title = new TitleTimes();
                Title.FromReader(reader);
                break;

            case TitleAction.Clear:
                Title = new TitleClear();
                Title.FromReader(reader);
                break;

            case TitleAction.Reset:
                Title = new TitleReset();
                Title.FromReader(reader);
                break;
            }

            return(this);
        }
        /// <summary>
        /// Each option found will be executed. Before execution the validation will be called
        /// and if it reports true (validation ok) the option's execute operation will be done.
        /// </summary>
        /// <param name="args"></param>
        public void ExecuteOperation(string[] args = null)
        {
            if (HaveArgumentsBeenParsed == false)
            {
                Parse(args);
            }

            // Do we show the altnerate (user title?)
            if ((HasShowTitleAndDescriptionsOnNoAction) && (HasOperationActionToDo == false))
            {
                TitleAction?.Invoke(this);
                DescriptionActionBefore?.Invoke(this);
                DescriptionAction?.Invoke(this);
                DescriptionActionAfter?.Invoke(this);
            }

            if (HasOperationActionToDo)
            {
                PreAction?.Invoke(this);

                Options.Where(opt => opt.ArgumentMatched)
                .ToList()
                .ForEach(option =>
                {
                    if ((option?.Validation?.Invoke(this) ?? true) && (option?.ValidationExtra?.Invoke(this, option) ?? true))
                    {
                        option?.Operation?.Invoke(this);
                    }
                });

                PostAction?.Invoke(this);
            }
        }
Beispiel #3
0
    public void OnStart()
    {
        //タイトル画面の遷移状況の初期化
        _titleAction = TitleAction.Title_Start;

        //値の初期化
        SelectPoint             = 0;
        _anyButtonColorSpeed    = Data.AnyButtonColorSpeed;
        _anyButtonReplacedSpeed = Data.AnyButtonReplacedSpeed;


        //弾数表示の設定
        SerializeTitleData.TitleData.selectBulletCountText.text = Data.Bullet.ToString();
    }
Beispiel #4
0
 public TaskQueue(TitleAction <int, int, int, string, string> action)
 {
     this._action     = action;
     this._titleQueue = new Queue <TaskItem>();
     this.IsRunning   = true;
 }
        public IPacket ReadPacket(IMinecraftDataReader reader)
        {
            Action = (TitleAction) reader.ReadVarInt();

            switch (Action)
            {
                case TitleAction.Title:
                    Title = new TitleTitle();
                    Title.FromReader(reader);
                    break;
                case TitleAction.Subtitle:
                    Title = new TitleSubtitle();
                    Title.FromReader(reader);
                    break;
                case TitleAction.Times:
                    Title = new TitleTimes();
                    Title.FromReader(reader);
                    break;
                case TitleAction.Clear:
                    Title = new TitleClear();
                    Title.FromReader(reader);
                    break;
                case TitleAction.Reset:
                    Title = new TitleReset();
                    Title.FromReader(reader);
                    break;
            }

            return this;
        }
        private void OpenTitleAction_Click(object sender, RoutedEventArgs e)
        {
            TitleAction titleAction = new TitleAction();

            titleAction.ShowDialog();
        }
Beispiel #7
0
    /// <summary>タイトル画面で現在行う処理を呼び出す</summary>
    public void OnUpdate()
    {
        //それぞれの処理
        //※上から順番に処理が行われるので、メソッド分けするよりも辿りやすいと判断して、メソッド分けは行っていません。
        //一部似通っている処理もありましたが、中途半端に分けるよりも、こちらのほうが見やすいと判断しました。変えても問題はない。
        switch (_titleAction)
        {
        //ゲーム開始画面
        case TitleAction.Title_Start:
        {
            //AnyButtonの透明度を動かす処理
            SerializeTitleData.TitleData.anyButtonText.color = SetColorGraduallyTransparency(SerializeTitleData.TitleData.anyButtonText.color, ref _anyButtonColorSpeed);

            //何かボタンが押されたら、次の画面へ移行する。
            if (!Input.anyKeyDown)
            {
                return;
            }
            //AnyButtonの文字を点滅させる処理に移行
            _titleAction = TitleAction.Title_Flash;
        }
            return;

        //AnyButtonの文字を点滅させる。
        case TitleAction.Title_Flash:
        {
            //AnyButtonの透明度を動かす処理
            SerializeTitleData.TitleData.anyButtonText.color = SetColorGraduallyTransparency(SerializeTitleData.TitleData.anyButtonText.color, ref _anyButtonReplacedSpeed);
            //時間をカウント
            _countTime += Time.deltaTime;

            //これ以降は時間経過後の処理
            if (_countTime < Data.AnyButtonReplacedTime)
            {
                return;
            }
            //値のリセットと、ロゴの縮小処理に移行
            _titleAction = TitleAction.Title_Shrink;
            _countTime   = 0;
        }
            return;

        //ロゴの縮小
        case TitleAction.Title_Shrink:
        {
            //可読性が下がるので、一時変数にまとめた。
            Transform[] transforms = SerializeTitleData.TitleData.titleObjTransforms;

            //徐々に縮小
            foreach (Transform transform in transforms)
            {
                transform.localScale = SetGraduallySizeY(transform.localScale, Data.TitleObjDestroyTime, true);
            }

            //これ以降は縮小完了後の処理
            if (!Mathf.Approximately(transforms[transforms.Length - 1].localScale.y, 0f))
            {
                return;
            }
            //選択画面の表示処理へ
            _titleAction = TitleAction.Select_Expansion;
        }
            return;

        //選択画面の表示処理
        case TitleAction.Select_Expansion:
        {
            //可読性が下がるので、一時変数にまとめた。
            Transform[] transforms = SerializeTitleData.TitleData.selectObjTransforms;

            //徐々に表示
            foreach (Transform transform in transforms)
            {
                transform.localScale = SetGraduallySizeY(transform.localScale, Data.SelectInstantiateTime);
            }

            //これ以降は縮小完了後の処理
            if (!Mathf.Approximately(transforms[transforms.Length - 1].localScale.y, 1f))
            {
                return;
            }
            //選択画面の処理へ
            _titleAction = TitleAction.Select;
        }
            return;

        //選択画面
        case TitleAction.Select:
        {
            //上下のキー操作
            SelectKey();

            //指向の選択
            SelectSetSwitchColor(0, SerializeTitleData.TitleData.oriented);
            //プールの選択
            SelectSetColor(1, SerializeTitleData.TitleData.selectPoolText, true);
            //非同期の選択
            SelectSetColor(2, SerializeTitleData.TitleData.selectAsyncText, true);
            //弾数の選択
            SetBullet(3, SerializeTitleData.TitleData.selectBulletCountText);
            //無敵モードの選択
            SelectSetSwitchColor(4, SerializeTitleData.TitleData.Invincibility);
            //ゲームスタートの選択
            GameStart(5, SerializeTitleData.TitleData.selectGameStartText);
        }
            return;
        }
    }