Beispiel #1
0
        private void CalculateToroSpecial(ScoreData score)
        {
            if (0 < _fishList[(int)FishType.maguro][(int)SizeType.Large] &&
                0 < _fishList[(int)FishType.sake][(int)SizeType.Large] &&
                0 < _fishList[(int)FishType.mekaziki][(int)SizeType.Large])
            {
                score._toroSpecial = SpecialInfo.BigToro3Kan();
                return;
            }

            if (0 < _fishList[(int)FishType.maguro][(int)SizeType.Medium] &&
                0 < _fishList[(int)FishType.sake][(int)SizeType.Medium] &&
                0 < _fishList[(int)FishType.mekaziki][(int)SizeType.Medium])
            {
                score._toroSpecial = SpecialInfo.MidiumToro3Kan();
                return;
            }

            if (0 < _fishList[(int)FishType.maguro][(int)SizeType.Small] &&
                0 < _fishList[(int)FishType.maguro][(int)SizeType.Small] &&
                0 < _fishList[(int)FishType.sake][(int)SizeType.Small])
            {
                score._toroSpecial = SpecialInfo.SmallToro3Kan();
                return;
            }
        }
Beispiel #2
0
        // サイズ揃えは揃った分だけ効果アップ
        private void CalculateSizeSpecial(ScoreData score)
        {
            int straightNum = 0;

            for (int type = 0; type < _fishList.Length; type++)
            {
                bool isStraight = true;
                for (int size = 0; size < _fishList[0].Length; size++)
                {
                    if (_fishList[type][size] <= 0)
                    {
                        isStraight = false;
                        break;
                    }
                }
                if (isStraight)
                {
                    ++straightNum;
                }
            }
            Debug.Assert(0 <= straightNum && straightNum <= Enum.GetValues(typeof(FishType)).Length);
            if (0 < straightNum)
            {
                score._sizeSpecial = SpecialInfo.Straight(straightNum);
            }
        }
Beispiel #3
0
        public static SpecialInfo SmallToro3Kan()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.3f;
            info._text      = $"小トロ3貫握り×{info._bonusRate}";
            return(info);
        }
Beispiel #4
0
        public static SpecialInfo MidiumToro3Kan()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.4f;
            info._text      = $"中トロ3貫握り×{info._bonusRate}";
            return(info);
        }
Beispiel #5
0
        internal static SpecialInfo Tataki3Kind()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.5f;
            info._text      = $"たたき3種盛り×{info._bonusRate}";
            return(info);
        }
Beispiel #6
0
        public static SpecialInfo Straight(int num)
        {
            var info = new SpecialInfo();

            info._bonusRate = 1 + (0.2f) * num;
            info._text      = $"ストレート{num}×{info._bonusRate}";
            return(info);
        }
Beispiel #7
0
        public static SpecialInfo RainbowAll()
        {
            var info = new SpecialInfo();

            info._bonusRate = 2.5f;
            info._text      = $"虹色ALL×{info._bonusRate}";
            return(info);
        }
Beispiel #8
0
        public static SpecialInfo MonochromeAll()
        {
            var info = new SpecialInfo();

            info._bonusRate = 2.0f;
            info._text      = $"モノクロALL×{info._bonusRate}";
            return(info);
        }
Beispiel #9
0
        public static SpecialInfo Monochrome()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.25f;
            info._text      = $"モノクロ×{info._bonusRate}";
            return(info);
        }
Beispiel #10
0
        public static SpecialInfo RGB()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.25f;
            info._text      = $"RGB×{info._bonusRate}";
            return(info);
        }
Beispiel #11
0
        public static SpecialInfo TrafficLight()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.2f;
            info._text      = $"信号機×{info._bonusRate}";
            return(info);
        }
Beispiel #12
0
        internal static SpecialInfo TunaRush()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.3f;
            info._text      = $"ツナ缶パック×{info._bonusRate}";
            return(info);
        }
Beispiel #13
0
        public static SpecialInfo BigToro3Kan()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.5f;
            info._text      = $"大トロ3貫握り×{info._bonusRate}";
            return(info);
        }
Beispiel #14
0
        internal static SpecialInfo MunielRush()
        {
            var info = new SpecialInfo();

            info._bonusRate = 1.3f;
            info._text      = $"ムニエルづくし×{info._bonusRate}";
            return(info);
        }
Beispiel #15
0
 private void CalculateMunielSpecial(ScoreData score)
 {
     int[] sake     = _fishList[(int)FishType.sake];
     int[] mekaziki = _fishList[(int)FishType.mekaziki];
     if (3 <= sake[(int)SizeType.Large] + _fishList[(int)FishType.sake][(int)SizeType.Medium] + _fishList[(int)FishType.sake][(int)SizeType.Small] &&
         3 <= mekaziki[(int)SizeType.Large] + _fishList[(int)FishType.mekaziki][(int)SizeType.Medium] + _fishList[(int)FishType.mekaziki][(int)SizeType.Small])
     {
         score._toroSpecial = SpecialInfo.MunielRush();
         return;
     }
 }
Beispiel #16
0
 private void CalculateTunaSpecial(ScoreData score)
 {
     int[] maguro   = _fishList[(int)FishType.maguro];
     int[] mekaziki = _fishList[(int)FishType.mekaziki];
     if (3 <= maguro[(int)SizeType.Large] + _fishList[(int)FishType.maguro][(int)SizeType.Medium] + _fishList[(int)FishType.maguro][(int)SizeType.Small] &&
         3 <= mekaziki[(int)SizeType.Large] + _fishList[(int)FishType.mekaziki][(int)SizeType.Medium] + _fishList[(int)FishType.mekaziki][(int)SizeType.Small])
     {
         score._toroSpecial = SpecialInfo.TunaRush();
         return;
     }
 }
Beispiel #17
0
 private void CalculateTatakiSpecial(ScoreData score)
 {
     int[] katsuo = _fishList[(int)FishType.katsuo];
     int[] maguro = _fishList[(int)FishType.maguro];
     int[] sake   = _fishList[(int)FishType.sake];
     if ((0 < katsuo[(int)SizeType.Large] && 0 < maguro[(int)SizeType.Large] && 0 < sake[(int)SizeType.Large]) ||
         (0 < katsuo[(int)SizeType.Medium] && 0 < maguro[(int)SizeType.Medium] && 0 < sake[(int)SizeType.Medium]) ||
         (0 < katsuo[(int)SizeType.Small] && 0 < maguro[(int)SizeType.Small] && 0 < sake[(int)SizeType.Small]))
     {
         score._tatakiSpecial = SpecialInfo.Tataki3Kind();
     }
 }
Beispiel #18
0
 public ScoreData()
 {
     _fishSNumList     = new int[Enum.GetValues(typeof(FishType)).Length];
     _fishMNumList     = new int[Enum.GetValues(typeof(FishType)).Length];
     _fishLNumList     = new int[Enum.GetValues(typeof(FishType)).Length];
     _fishScoreSumList = new int[Enum.GetValues(typeof(FishType)).Length];
     _colorGetList     = new bool[Enum.GetValues(typeof(ColorType)).Length];
     _colorSpecial     = new SpecialInfo();
     _sizeSpecial      = new SpecialInfo();
     _toroSpecial      = new SpecialInfo();
     _munielSpecial    = new SpecialInfo();
     _tatakiSpecial    = new SpecialInfo();
     _tunaSpecial      = new SpecialInfo();
     _specialSpecial   = new SpecialInfo();
 }
Beispiel #19
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;
            }
        }