Beispiel #1
0
        private void Bind()
        {
            // attack phase になった時の画面表示
            _phaseProvider.OnPhaseChanged()
            .Where(phase => phase == GamePhase.Attack)
            .Subscribe(_ =>
            {
                _index = 1;
                _targetUseCase.Target(_index);
                _screen.Open();
            })
            .AddTo(_disposable);

            // ターン変更時のキャラクター更新
            _turnCharacter.OnTurnCharacterChanged()
            .Subscribe(character =>
            {
                _attacker.Dispose();
                _attacker = character.OnDirectionChanged()
                            .Where(_ => _phaseProvider.OnPhaseChanged().Value == GamePhase.Attack)
                            .Subscribe(_ => _targetUseCase.Target(_index));
            }).AddTo(_disposable);

            // ターゲット変更時のSubmitボタンの有効可否
            _targetSubmitter.TargetOnChanged()
            .Subscribe(targets => _screen.IsEmitable(targets.Count != 0))
            .AddTo(_disposable);
        }
Beispiel #2
0
        private void SetEvents()
        {
            _panelView.OnPointerDown()
            .Where(_ => _phaseProvider.OnPhaseChanged().Value == GamePhase.Move)
            .Subscribe(_loadRegister.EmitFirst)
            .AddTo(_disposable);

            _panelView.OnPointerEnter()
            .Where(_ => _phaseProvider.OnPhaseChanged().Value == GamePhase.Move)
            .Subscribe(_loadRegister.EmitPanel)
            .AddTo(_disposable);
        }
Beispiel #3
0
 public void Initialize()
 {
     _phaseProvider.OnPhaseChanged()
     .Where(phase => phase == GamePhase.StageInitialize)
     .Subscribe(_ => CreateStage())
     .AddTo(_disposable);
 }
Beispiel #4
0
 private void Bind()
 {
     _phaseProvider.OnPhaseChanged()
     .Where(phase => phase == GamePhase.OutGame)
     .Subscribe(_ => _screen.Open())
     .AddTo(_disposable);
 }
Beispiel #5
0
 public void Initialize()
 {
     _phaseProvider.OnPhaseChanged()
     .Where(phase => phase == GamePhase.Standby)
     .Subscribe(_ => _nextTurn.OnNextTurn())
     .AddTo(_disposable);
 }
Beispiel #6
0
 public void Initialize()
 {
     _phaseProvider.OnPhaseChanged()
     .Where(phase => phase == GamePhase.Damage)
     .Subscribe(_ => _stageModel.TargetReset())
     .AddTo(_disposable);
 }
 public void Initialize()
 {
     _phaseProvider.OnPhaseChanged()
     .Where(phase => phase == GamePhase.Dice)
     .Subscribe(_ => DiceRoll())
     .AddTo(_disposable);
 }
        private void SetEvents()
        {
            // clear list and add panel
            _panelView.OnPointerDown()
            .Where(_ => _phaseProvider.OnPhaseChanged().Value == GamePhase.Move)
            .Where(_panelSelector.Invasive)
            .Subscribe(_moveLoadRegister.EmitFirst)
            .AddTo(_disposable);

            // add panel
            _panelView.OnPointerEnter()
            .Where(_ => _phaseProvider.OnPhaseChanged().Value == GamePhase.Move)
            .Where(_panelSelector.Invasive)
            .Subscribe(_moveLoadRegister.EmitPanel)
            .AddTo(_disposable);
        }
Beispiel #9
0
        private void Bind()
        {
            _phaseProvider.OnPhaseChanged()
            .Where(phase => phase == GamePhase.OutGame)
            .Subscribe(_ => _screen.Open())
            .AddTo(_disposable);
            _moveLoadRegister.OnLoadChanged()
            .ObserveCountChanged()
            .Subscribe(count => _screen.IsMovable(count != 0));

            _turnCharacter.OnTurnCharacterChanged()
            .Subscribe(CharacterEvents).AddTo(_disposable);
        }
Beispiel #10
0
 public void Initialize()
 {
     _phaseProvider.OnPhaseChanged()
     .Where(phase => phase == GamePhase.End)
     .Subscribe(_ =>
     {
         if (!_residueCharacters.Characters().Any())
         {
             _phaseRegister.GameOver();
         }
         else if (!_residueEnemies.Enemies().Any())
         {
             _phaseRegister.StageClear();
         }
         else
         {
             _phaseRegister.NextTurn();
         }
     }).AddTo(_disposable);
 }
Beispiel #11
0
        public void Initialize()
        {
            var entity = _characterView.GetEntity();

            _character.Initialize(entity.Id, entity, entity.SkillEntities, entity.Owner);
            _residueCharacter.AddCharacter(_character);


            _moveLoadProvider.OnLoadSubmit()
            .Where(_ => _characterView.GetEntity() == _turnCharacter.OnTurnCharacterChanged().Value.CharacterEntity)
            .Subscribe(OnMove).AddTo(_disposable);


            _phaseProvider.OnPhaseChanged()
            .Where(phase => phase == GamePhase.Damage)
            .Where(_ => _character == _turnCharacter.OnTurnCharacterChanged().Value)
            .Subscribe(_ =>
            {
                _characterView.OnAnimation(_currentSkill.OnSkillChanged().Value.AnimationState);
                _characterView.OnAnimationEnded()
                .Take(1)
                .Subscribe(animation =>
                {
                    _damagePhaseFinalizer.EmitDamage();
                });
            }).AddTo(_disposable);
            _character.OnDirectionChanged()
            .Subscribe(_characterView.SetRotation).AddTo(_disposable);
            _character.Position()
            .Subscribe(_characterView.SetPosition)
            .AddTo(_disposable);
            _character.OnHpChanged()
            .Do(_ => _characterView.OnAnimation(AnimationState.Attacked))
            .Where(hp => hp <= 0)
            .Subscribe(_ => _characterView.OnDead())
            .AddTo(_disposable);
        }
Beispiel #12
0
        public void Initialize()
        {
            var entity = _characterView.GetEntity();

            _character.Initialize(entity.Id, entity, entity.SkillEntities, entity.Owner);
            _enemyRegister.AddEnemy(_character);

            // 移動アニメーション
            _moveLoadProvider.OnLoadSubmit()
            .Where(_ => _characterView.GetEntity() == _turnCharacter.OnTurnCharacterChanged().Value.CharacterEntity)
            .Subscribe(OnMove).AddTo(_disposable);

            _phaseProvider.OnPhaseChanged()
            .Where(phase => phase == GamePhase.Damage)
            .Where(_ => _character == _turnCharacter.OnTurnCharacterChanged().Value)
            .Subscribe(_ =>
            {
                _characterView.OnAnimation(_currentSkill.OnSkillChanged().Value.AnimationState);
                _characterView.OnAnimationEnded()
                .Take(1)
                .Subscribe(animation =>
                {
                    _damagePhaseFinalizer.EmitDamage();
                });
            }).AddTo(_disposable);

            _character.OnDirectionChanged()
            .Subscribe(_characterView.SetRotation).AddTo(_disposable);
            _character.Position()
            .Subscribe(_characterView.SetPosition)
            .AddTo(_disposable);
            _character.OnHpChanged()
            .Where(hp => hp <= 0)
            .Subscribe(_ => _characterView.OnDead())
            .AddTo(_disposable);

            _phaseProvider.OnPhaseChanged()
            .Where(phase => phase == GamePhase.Move)
            .Where(_ => _character == _turnCharacter.OnTurnCharacterChanged().Value)
            .Subscribe(_ =>
            {
                var load          = _cpuUseCase.CpuMove();
                var panelEntities = load.ToList();
                if (panelEntities.Any())
                {
                    _cpuUseCase.MoveCharacter(panelEntities);
                }
                else
                {
                    _phaseRegister.SkipAttack();
                }
            })
            .AddTo(_disposable);

            _phaseProvider.OnPhaseChanged()
            .Where(phase => phase == GamePhase.Attack)
            .Where(_ => _character == _turnCharacter.OnTurnCharacterChanged().Value)
            .Subscribe(_ =>
            {
                if (!_cpuUseCase.CpuAttack())
                {
                    _phaseRegister.SkipAttack();
                }
            })
            .AddTo(_disposable);
        }