//擦杠和暗杠分数变化 public static void CaGangAnGangScoreChang(this FiveStarRoom fiveStarRoom, Actor_FiveStar_ScoreChange actorFiveStarScoreChange, int gangCardIndex, int socre) { for (int i = 0; i < fiveStarRoom.RoomNumber; i++) { if (i == fiveStarRoom.CurrRestSeatIndex) { continue; //休息的玩家 不参与杠牌计分 } actorFiveStarScoreChange.GetScore[i] -= socre; //其他玩家 减去这个分数 actorFiveStarScoreChange.GetScore[gangCardIndex] += socre; //杠牌玩家加上这个分数 } }
//玩家杠牌分数变化 和记录杠牌次数 public static void PlayerGangPaiGetScore(this FiveStarRoom fiveStarRoom, int oprateSeateIndex, int oprateType) { if (oprateType != FiveStarOperateType.AnGang && oprateType != FiveStarOperateType.CaGang && oprateType != FiveStarOperateType.MingGang) { return; } fiveStarRoom.FiveStarPlayerDic[oprateSeateIndex].GangPaiCount++;//杠牌次数加1 Actor_FiveStar_ScoreChange actorFiveStarScoreChange = new Actor_FiveStar_ScoreChange(); for (int i = 0; i < fiveStarRoom.RoomNumber; i++) { actorFiveStarScoreChange.GetScore.Add(0); } fiveStarRoom.intData = 1; //默认 不是杠上杠就是1 if (fiveStarRoom.IsGangShangCard) //如果是杠上杠 { fiveStarRoom.intData = 2; //分数在乘以2 } switch (oprateType) { case FiveStarOperateType.AnGang: fiveStarRoom.CaGangAnGangScoreChang(actorFiveStarScoreChange, oprateSeateIndex, fiveStarRoom.RoomConfig.BottomScore * 2 * fiveStarRoom.intData);//分数变化 break; case FiveStarOperateType.CaGang: fiveStarRoom.CaGangAnGangScoreChang(actorFiveStarScoreChange, oprateSeateIndex, fiveStarRoom.RoomConfig.BottomScore * fiveStarRoom.intData);//分数变化 break; case FiveStarOperateType.MingGang: actorFiveStarScoreChange.GetScore[oprateSeateIndex] += fiveStarRoom.RoomConfig.BottomScore * 2 * fiveStarRoom.intData; actorFiveStarScoreChange.GetScore[fiveStarRoom.CurrChuPaiIndex] -= fiveStarRoom.RoomConfig.BottomScore * 2 * fiveStarRoom.intData; break; default: return; } fiveStarRoom.GangHuNum = 2;//标记为 刚杠过 for (int i = 0; i < fiveStarRoom.RoomNumber; i++) { fiveStarRoom.FiveStarPlayerDic[i].SmallGangScore += actorFiveStarScoreChange.GetScore[i]; //记录杠牌得分 fiveStarRoom.FiveStarPlayerDic[i].NowScoreChange(actorFiveStarScoreChange.GetScore[i]); //现在的分数变化 actorFiveStarScoreChange.NowScore.Add(fiveStarRoom.FiveStarPlayerDic[i].NowScore); } //广播分数变化消息 fiveStarRoom.BroadcastMssagePlayers(actorFiveStarScoreChange); }