Ejemplo n.º 1
0
        public void Reset()
        {
            _phaseIndex        = 0;
            _possibleRotations = _rotations;

            OnPhaseChanged?.Invoke(_possibleRotations.First());
            OnPhaseDecisionRequired?.Invoke(GetPossiblePhases(), PhaseSameAttackStyle);
        }
Ejemplo n.º 2
0
        public void NextPhase()
        {
            if (!PhaseDecisionRequired)
            {
                IncreasePhaseIndex();

                var phase = _possibleRotations.First();
                OnPhaseChanged?.Invoke(phase);
            }
            else
            {
                OnPhaseDecisionRequired?.Invoke(GetPossiblePhases(), PhaseSameAttackStyle);
            }
        }
Ejemplo n.º 3
0
        public void NextPhaseByStyle(StyleType bossStyle)
        {
            if (PhaseDecisionRequired)
            {
                var tempRotations = _possibleRotations.Where(r => r.NextPhase.Style == bossStyle).ToList();

                if (tempRotations.Count != 0)
                {
                    _possibleRotations = tempRotations;
                }
                var phases = GetPossiblePhases();

                if (phases.Count == 1)
                {
                    IncreasePhaseIndex();
                    OnPhaseChanged?.Invoke(_possibleRotations.First());
                }
                else
                {
                    OnPhaseDecisionRequired?.Invoke(phases, PhaseSameAttackStyle);
                }
            }
        }