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; } }
// サイズ揃えは揃った分だけ効果アップ 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); } }
public static SpecialInfo SmallToro3Kan() { var info = new SpecialInfo(); info._bonusRate = 1.3f; info._text = $"小トロ3貫握り×{info._bonusRate}"; return(info); }
public static SpecialInfo MidiumToro3Kan() { var info = new SpecialInfo(); info._bonusRate = 1.4f; info._text = $"中トロ3貫握り×{info._bonusRate}"; return(info); }
internal static SpecialInfo Tataki3Kind() { var info = new SpecialInfo(); info._bonusRate = 1.5f; info._text = $"たたき3種盛り×{info._bonusRate}"; return(info); }
public static SpecialInfo Straight(int num) { var info = new SpecialInfo(); info._bonusRate = 1 + (0.2f) * num; info._text = $"ストレート{num}×{info._bonusRate}"; return(info); }
public static SpecialInfo RainbowAll() { var info = new SpecialInfo(); info._bonusRate = 2.5f; info._text = $"虹色ALL×{info._bonusRate}"; return(info); }
public static SpecialInfo MonochromeAll() { var info = new SpecialInfo(); info._bonusRate = 2.0f; info._text = $"モノクロALL×{info._bonusRate}"; return(info); }
public static SpecialInfo Monochrome() { var info = new SpecialInfo(); info._bonusRate = 1.25f; info._text = $"モノクロ×{info._bonusRate}"; return(info); }
public static SpecialInfo RGB() { var info = new SpecialInfo(); info._bonusRate = 1.25f; info._text = $"RGB×{info._bonusRate}"; return(info); }
public static SpecialInfo TrafficLight() { var info = new SpecialInfo(); info._bonusRate = 1.2f; info._text = $"信号機×{info._bonusRate}"; return(info); }
internal static SpecialInfo TunaRush() { var info = new SpecialInfo(); info._bonusRate = 1.3f; info._text = $"ツナ缶パック×{info._bonusRate}"; return(info); }
public static SpecialInfo BigToro3Kan() { var info = new SpecialInfo(); info._bonusRate = 1.5f; info._text = $"大トロ3貫握り×{info._bonusRate}"; return(info); }
internal static SpecialInfo MunielRush() { var info = new SpecialInfo(); info._bonusRate = 1.3f; info._text = $"ムニエルづくし×{info._bonusRate}"; return(info); }
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; } }
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; } }
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(); } }
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(); }
// 色に関する役は一番効果が高いやつひとつだけ採用 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; } }