Example #1
0
        public static int ConsortiaFight(int consortiaWin, int consortiaLose, Dictionary<int, Player> players, eRoomType roomType, eGameType gameClass, int totalKillHealth, int playercount)
        {

            if (roomType != eRoomType.Match)
                return 0;

            int playerCount = playercount / 2;



            int riches = 0;
            int state = 2;
            int rate = 1;
            int value = 3;
            if (gameClass == eGameType.Guild)
            {
                value = 10;
                rate = (int)RateMgr.GetRate(eRateType.Offer_Rate);
            }

            float richesRate = RateMgr.GetRate(eRateType.Riches_Rate);
            using (ConsortiaBussiness db = new ConsortiaBussiness())
            {


                if (gameClass == eGameType.Free)
                {
                    playerCount = 0;
                }
                else
                {
                    db.ConsortiaFight(consortiaWin, consortiaLose, playerCount, out riches, state, totalKillHealth, richesRate);
                }
                //(对方公会等级-3)*50*对方玩家人数(对方玩家人数是指进入战斗时的人数,中途退出或者掉线的玩家不改变这个数值)
                //玩家增加掠夺财富
                foreach (KeyValuePair<int, Player> p in players)
                {
                    //if (p.Value.State == TankGameState.LOSE)
                    //    continue;
                    if (p.Value == null)
                        continue;

                    if (p.Value.PlayerDetail.PlayerCharacter.ConsortiaID == consortiaWin)
                    {

                        p.Value.PlayerDetail.AddOffer((playerCount + value) * rate);

                        p.Value.PlayerDetail.PlayerCharacter.RichesRob += riches;
                    }
                    else if (p.Value.PlayerDetail.PlayerCharacter.ConsortiaID == consortiaLose)
                    {
                        p.Value.PlayerDetail.AddOffer((int)Math.Round(playerCount * 0.5) * rate);
                        p.Value.PlayerDetail.RemoveOffer(value);
                    }
                }

            }

            return riches;
        }