public static List <BallInfo> OnPosionRoundEnd() { if (_IsRoundHitPosion) { _IsRoundHitPosion = false; return(null); } if (_TrapPosionList.Count == 0) { return(null); } BallInfoSPTrapPosion enhanceTrap = null; foreach (var posionTrap in _TrapPosionList) { if (posionTrap.ElimitNum < 2) { enhanceTrap = posionTrap; } } if (enhanceTrap != null) { ++enhanceTrap.ElimitNum; return(new List <BallInfo>() { enhanceTrap.BallInfo }); } else { var canPosBall = GetCanPosionPos(); int random = Random.Range(0, canPosBall.Count); string ballType = (int)BallType.Posion + "," + 1; canPosBall[random].SetBallInitType(ballType); _IsRoundHitPosion = false; return(new List <BallInfo>() { canPosBall[random] }); } }
private BallInfoSPBase GetBallInfoSP(BallType ballType, string[] spArgs) { BallInfoSPBase initBall = null; switch (ballType) { case BallType.Ice: initBall = new BallInfoSPTrapIce(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.Clod: initBall = new BallInfoSPTrapClod(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.Stone: initBall = new BallInfoSPTrapStone(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.Posion: initBall = new BallInfoSPTrapPosion(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.Iron: initBall = new BallInfoSPTrapIron(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombSmall1: initBall = new BallInfoSPBombSmall(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombBig1: initBall = new BallInfoSPBombBig(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombSmallEnlarge1: initBall = new BallInfoSPBombSmallEnlarge(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombBigEnlarge: initBall = new BallInfoSPBombBigEnlarge(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombSmallHitTrap: initBall = new BallInfoSPBombSmallTrap(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombBigHitTrap: initBall = new BallInfoSPBombBigTrap(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombSmallReact: initBall = new BallInfoSPBombSmallReact(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombBigReact: initBall = new BallInfoSPBombBigReact(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombSmallLighting: initBall = new BallInfoSPBombSmallLighting(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombBigLighting: initBall = new BallInfoSPBombBigLighting(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombSmallAuto: initBall = new BallInfoSPBombSmallAuto(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.BombBigAuto: initBall = new BallInfoSPBombBigAuto(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineRow: initBall = new BallInfoSPLineRow(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineClumn: initBall = new BallInfoSPLineClumn(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineCross: initBall = new BallInfoSPLineCross(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineRowEnlarge: initBall = new BallInfoSPLineRowEnlarge(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineClumnEnlarge: initBall = new BallInfoSPLineClumnEnlarge(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineCrossEnlarge: initBall = new BallInfoSPLineCrossEnlarge(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineRowHitTrap: initBall = new BallInfoSPLineRowTrap(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineClumnHitTrap: initBall = new BallInfoSPLineClumnTrap(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineCrossHitTrap: initBall = new BallInfoSPLineCrossTrap(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineRowReact: initBall = new BallInfoSPLineRowReact(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineClumnReact: initBall = new BallInfoSPLineClumnReact(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineCrossReact: initBall = new BallInfoSPLineCrossReact(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineRowLighting: initBall = new BallInfoSPLineRowLighting(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineClumnLighting: initBall = new BallInfoSPLineClumnLighting(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineCrossLighting: initBall = new BallInfoSPLineCrossLighting(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineRowAuto: initBall = new BallInfoSPLineRowAuto(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineClumnAuto: initBall = new BallInfoSPLineClumnAuto(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.LineCrossAuto: initBall = new BallInfoSPLineCrossAuto(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; case BallType.RPGHP: initBall = new BallInfoSPRPGHP(); initBall.SetBallInfo(this); initBall.SetParam(spArgs); break; } return(initBall); }