Example #1
0
        // 色に関する役は一番効果が高いやつひとつだけ採用
        private void CalculateColorSpecial(ScoreData score)
        {
            // レインボーALL判定
            if (_colorList[(int)ColorType.Blue] &&
                _colorList[(int)ColorType.Yellow] &&
                _colorList[(int)ColorType.Red] &&
                _colorList[(int)ColorType.Green] &&
                _colorList[(int)ColorType.Orange] &&
                _colorList[(int)ColorType.Indigo] &&
                _colorList[(int)ColorType.Violet] &&
                !_colorList[(int)ColorType.White] &&
                !_colorList[(int)ColorType.Gray] &&
                !_colorList[(int)ColorType.Black])
            {
                score._colorSpecial = SpecialInfo.RainbowAll();
                return;
            }

            // モノクロALL判定
            if (!_colorList[(int)ColorType.Blue] &&
                !_colorList[(int)ColorType.Yellow] &&
                !_colorList[(int)ColorType.Red] &&
                !_colorList[(int)ColorType.Green] &&
                !_colorList[(int)ColorType.Orange] &&
                !_colorList[(int)ColorType.Indigo] &&
                !_colorList[(int)ColorType.Violet] &&
                _colorList[(int)ColorType.White] &&
                _colorList[(int)ColorType.Gray] &&
                _colorList[(int)ColorType.Black])
            {
                score._colorSpecial = SpecialInfo.MonochromeAll();
                return;
            }

            // レインボー判定
            if (_colorList[(int)ColorType.Blue] &&
                _colorList[(int)ColorType.Yellow] &&
                _colorList[(int)ColorType.Red] &&
                _colorList[(int)ColorType.Green] &&
                _colorList[(int)ColorType.Orange] &&
                _colorList[(int)ColorType.Indigo] &&
                _colorList[(int)ColorType.Violet])
            {
                score._colorSpecial = SpecialInfo.Rainbow();
                return;
            }

            // モノクロ判定
            if (_colorList[(int)ColorType.White] &&
                _colorList[(int)ColorType.Gray] &&
                _colorList[(int)ColorType.Black])
            {
                score._colorSpecial = SpecialInfo.Monochrome();
                return;
            }

            // RGB判定
            if (_colorList[(int)ColorType.Blue] &&
                _colorList[(int)ColorType.Red] &&
                _colorList[(int)ColorType.Green])
            {
                score._colorSpecial = SpecialInfo.RGB();
                return;
            }

            // 信号機判定
            if ((_colorList[(int)ColorType.Blue] ||
                 _colorList[(int)ColorType.Green]) &&
                _colorList[(int)ColorType.Yellow] &&
                _colorList[(int)ColorType.Red])
            {
                score._colorSpecial = SpecialInfo.TrafficLight();
                return;
            }
        }