示例#1
0
 internal CountryGroup(CountryType countryType)
 {
     CountryType = countryType;
     NomarlGroup = new CountryLvGroup();
     //NomarlGroup.Country = this;
     AdvancedGroup = new CountryLvGroup();
     //AdvancedGroup.Country = this;
 }
示例#2
0
 internal CountryGroup(CountryType countryType)
 {
     CountryType = countryType;
     NomarlGroup = new CountryLvGroup();
     //NomarlGroup.Country = this;
     AdvancedGroup = new CountryLvGroup();
     //AdvancedGroup.Country = this;
 }
示例#3
0
        private static bool TryLvGroup(CountryUser cuser, out CountryLvGroup lvGroup)
        {
            lvGroup = null;
            CountryGroup group;

            if (cuser != null && TryGroup(cuser.GroupType, out group))
            {
                lvGroup = cuser.IsAdvanced ? group.AdvancedGroup : group.NomarlGroup;
                return(true);
            }
            return(false);
        }
示例#4
0
        private static TList <CountryUser> FilterCombatUsers(CountryLvGroup lvGroup)
        {
            var list       = new TList <CountryUser>();
            var removeList = new TList <CountryUser>();

            while (lvGroup.PairCombatQueue.Count > 0)
            {
                CountryUser cuser = lvGroup.PairCombatQueue.Get();
                if (cuser == null)
                {
                    continue;
                }

                GameUser gameUser = new GameDataCacheSet <GameUser>().FindKey(cuser.UserId);
                if (gameUser != null && gameUser.UserStatus == UserStatus.CountryCombat)
                {
                    cuser.Status = 2;
                    list.Add(cuser);
                }
            }
            while (lvGroup.CombaQueue.Count > 0)
            {
                CountryUser cuser = lvGroup.CombaQueue.Get();
                if (cuser == null)
                {
                    continue;
                }

                if (cuser.Status == 1 && cuser.Refresh.AddSeconds(CombatInterval) <= DateTime.Now)
                {
                    GameUser gameUser = new GameDataCacheSet <GameUser>().FindKey(cuser.UserId);
                    if (gameUser != null && gameUser.UserStatus == UserStatus.CountryCombat)
                    {
                        cuser.Status = 2;
                        list.Add(cuser);
                    }
                }
                else if (cuser.Status == 1)
                {
                    removeList.Add(cuser);
                }
            }
            foreach (var countryUser in removeList)
            {
                lvGroup.CombaQueue.Add(countryUser);
            }
            return(list);
        }
示例#5
0
        private static void SendMessage(CountryLvGroup lvGroup)
        {
            List <KeyValuePair <string, CountryUser> > cuserList = lvGroup.UserList.ToList();

            var chatService = new TjxChatService();

            foreach (KeyValuePair <string, CountryUser> keyPair in cuserList)
            {
                CountryUser cuser    = keyPair.Value;
                GameUser    gameUser = new PersonalCacheStruct <GameUser>().FindKey(cuser.UserId);
                if (gameUser != null)
                {
                    gameUser.UserStatus = UserStatus.Normal;
                    gameUser.GroupType  = CountryType.None;
                    //领土战礼包
                    UserItemHelper.AddUserItem(gameUser.UserID, 5013, 1);
                    CombatHelper.EmbattlePostion(gameUser.UserID);
                }
                string content = string.Format(LanguageManager.GetLang().St5204_CombatTransfusion,
                                               cuser.WinCount, cuser.FailCount, cuser.GameCoin, cuser.ObtainNum);
                chatService.SystemSendWhisper(cuser.UserId, cuser.UserName, cuser.UserVipLv, content);
            }
        }
示例#6
0
        private static List<CountryUser> FilterCombatUsers(CountryLvGroup lvGroup)
        {
            var list = new List<CountryUser>();
            var removeList = new List<CountryUser>();

            while (lvGroup.PairCombatQueue.Count > 0)
            {
                CountryUser cuser = lvGroup.PairCombatQueue.Get();
                if (cuser == null) continue;

                GameUser gameUser = new PersonalCacheStruct<GameUser>().FindKey(cuser.UserId);
                if (gameUser != null && gameUser.UserStatus == UserStatus.CountryCombat)
                {
                    cuser.Status = 2;
                    list.Add(cuser);
                }
            }
            while (lvGroup.CombaQueue.Count > 0)
            {
                CountryUser cuser = lvGroup.CombaQueue.Get();
                if (cuser == null) continue;

                if (cuser.Status == 1 && cuser.Refresh.AddSeconds(CombatInterval) <= DateTime.Now)
                {
                    GameUser gameUser = new PersonalCacheStruct<GameUser>().FindKey(cuser.UserId);
                    if (gameUser != null && gameUser.UserStatus == UserStatus.CountryCombat)
                    {
                        cuser.Status = 2;
                        list.Add(cuser);
                    }
                }
                else if (cuser.Status == 1)
                {
                    removeList.Add(cuser);
                }
            }
            foreach (var countryUser in removeList)
            {
                lvGroup.CombaQueue.Add(countryUser);
            }
            return list;
        }
示例#7
0
 private static bool TryLvGroup(CountryUser cuser, out CountryLvGroup lvGroup)
 {
     lvGroup = null;
     CountryGroup group;
     if (cuser != null && TryGroup(cuser.GroupType, out group))
     {
         lvGroup = cuser.IsAdvanced ? group.AdvancedGroup : group.NomarlGroup;
         return true;
     }
     return false;
 }
示例#8
0
 private bool TryLvGroup(out CountryLvGroup lvGroup)
 {
     return TryLvGroup(_countryUser, out lvGroup);
 }
示例#9
0
        private static void SendMessage(CountryLvGroup lvGroup)
        {
            List<KeyValuePair<string, CountryUser>> cuserList = lvGroup.UserList.ToList();

            var chatService = new TjxChatService();
            foreach (KeyValuePair<string, CountryUser> keyPair in cuserList)
            {
                CountryUser cuser = keyPair.Value;
                GameUser gameUser = new PersonalCacheStruct<GameUser>().FindKey(cuser.UserId);
                if (gameUser != null)
                {
                    gameUser.UserStatus = UserStatus.Normal;
                    gameUser.GroupType = CountryType.None;
                    //领土战礼包
                    UserItemHelper.AddUserItem(gameUser.UserID, 5013, 1);
                    CombatHelper.EmbattlePostion(gameUser.UserID);
                }
                string content = string.Format(LanguageManager.GetLang().St5204_CombatTransfusion,
                    cuser.WinCount, cuser.FailCount, cuser.GameCoin, cuser.ObtainNum);
                chatService.SystemSendWhisper(cuser.UserId, cuser.UserName, cuser.UserVipLv, content);
            }
        }
示例#10
0
 private bool TryLvGroup(out CountryLvGroup lvGroup)
 {
     return(TryLvGroup(_countryUser, out lvGroup));
 }