Пример #1
0
        public override bool TakeAction()
        {
            UserFriendsCache destFriends = UserHelper.FindUserFriends(destuid);

            if (GetFriends.IsHaveFriend(destuid))
            {
                GetFriends.RemoveFriend(destuid);
            }
            if (destFriends.IsHaveFriend(Current.UserId))
            {
                destFriends.RemoveFriend(Current.UserId);
            }

            PushMessageHelper.FriendRemoveNotification(GameSession.Get(destuid), Current.UserId);
            receipt = destuid;

            return(true);
        }
Пример #2
0
        public override bool TakeAction()
        {
            UserBasisCache   dest        = UserHelper.FindUserBasis(destuid);
            UserFriendsCache destFriends = UserHelper.FindUserFriends(destuid);

            FriendApplyData apply = GetFriends.FindFriendApply(destuid);

            if (apply == null)
            {
                receipt = RequestFriendResult.NoApply;
                return(true);
            }

            if (result == EventStatus.Good)
            {
                if (GetFriends.IsFriendNumFull())
                {
                    receipt = RequestFriendResult.FriendNumFull;
                }
                else if (GetFriends.IsHaveFriend(destuid))
                {
                    receipt = RequestFriendResult.HadFriend;
                }
                else if (destFriends.IsFriendNumFull())
                {
                    receipt = RequestFriendResult.DestFriendNumFull;
                }
                else
                {
                    receipt = RequestFriendResult.OK;

                    GetFriends.AddFriend(destuid);

                    destFriends.AddFriend(Current.UserId);

                    PushMessageHelper.NewFriendNotification(GameSession.Get(destuid), Current.UserId);
                    PushMessageHelper.NewFriendNotification(Current, destuid);
                }
            }
            GetFriends.ApplyList.Remove(apply);


            return(true);
        }
Пример #3
0
        public override bool TakeAction()
        {
            UserBasisCache   dest        = UserHelper.FindUserBasis(destuid);
            UserFriendsCache destFriends = UserHelper.FindUserFriends(destuid);


            if (GetFriends.IsFriendNumFull())
            {
                receipt = RequestFriendResult.FriendNumFull;
            }
            else if (destFriends.IsFriendNumFull())
            {
                receipt = RequestFriendResult.DestFriendNumFull;
            }
            else if (GetFriends.IsHaveFriend(destuid))
            {
                receipt = RequestFriendResult.HadFriend;
            }
            else if (destFriends.IsHaveFriendApply(Current.UserId))
            {
                receipt = RequestFriendResult.HadApply;
            }
            else
            {
                receipt = RequestFriendResult.OK;

                destFriends.AddFriendApply(Current.UserId);
                var session = GameSession.Get(destuid);
                PushMessageHelper.NewFriendRequestNotification(GameSession.Get(destuid), Current.UserId);

                //GetFriends.AddFriend(destuid);

                //destFriends.AddFriend(Current.UserId);

                //PushMessageHelper.NewFriendNotification(GameSession.Get(destuid), Current.UserId);
                //PushMessageHelper.NewFriendNotification(Current, destuid);
            }

            return(true);
        }
Пример #4
0
        public override bool TakeAction()
        {
            receipt        = new RobReceipt();
            receipt.Result = false;

            if (GetLottery.RobTimes <= 0)
            {
                return(true);
            }
            if (GetLottery.Rob.RivalUid != selectId &&
                !GetEnemys.IsHaveEnemy(selectId) &&
                !GetFriends.IsHaveFriend(selectId))
            {
                return(true);
            }

            var rival = UserHelper.FindUserBasis(selectId);

            if (rival == null)
            {
                return(true);
            }
            var rivalEnemy = UserHelper.FindUserEnemy(rival.UserID);

            if (rivalEnemy == null)
            {
                return(true);
            }

            var lotterycfg = new ShareCacheStruct <Config_Lottery>().Find(t => (t.Type == LotteryAwardType.Rob));

            if (lotterycfg == null)
            {
                return(false);
            }

            GetLottery.RobTimes--;

            BigInteger dummyGold = 0;

            if (GetLottery.Rob.RivalUid == selectId)
            {
                dummyGold = BigInteger.Parse(GetLottery.Rob.Gold);

                GetLottery.Rob.RivalUid       = 0;
                GetLottery.Rob.RivalName      = string.Empty;
                GetLottery.Rob.RivalAvatarUrl = string.Empty;
                GetLottery.Rob.Gold           = "0";
                UserHelper.RandomRobTarget(Current.UserId);
            }
            if (GetFriends.IsHaveFriend(selectId))
            {
                var frienddata = GetFriends.FindFriend(selectId);
                dummyGold = BigInteger.Parse(frienddata.RobGold);

                frienddata.RobGold = "0";
                GetFriends.AddRobRecord(selectId);
            }
            if (GetEnemys.IsHaveEnemy(selectId))
            {
                var enemydata = GetEnemys.FindEnemy(selectId);
                dummyGold = BigInteger.Parse(enemydata.RobGold);

                GetEnemys.RemoveEnemy(rival.UserID);
            }

            if (result == EventStatus.Bad)
            {
                dummyGold = dummyGold / 5;
            }

            receipt.Gold = dummyGold.ToString();
            UserHelper.RewardsGold(Current.UserId, dummyGold);
            BigInteger realGold = rival.GoldNum <= dummyGold * 2 ? rival.GoldNum / 2 : dummyGold;

            UserHelper.ConsumeGold(rival.UserID, realGold);

            int levelDown = 0;

            if (result == EventStatus.Good)
            {
                int downlv = rival.UserLv <= 1000 ? 10 : rival.UserLv / 100;
                levelDown = Math.Max(rival.UserLv - downlv, 0);
                levelDown = Math.Min(levelDown, downlv);
                //rival.UserLv = Math.Max(rival.UserLv - levelDown, 10);
                //UserHelper.UserLvChange(rival.UserID);
                //PushMessageHelper.UserLvChangeNotification(GameSession.Get(rival.UserID));
                rival.BackLevelNum += downlv;
            }

            rivalEnemy.AddEnemy(new EnemyData()
            {
                UserId = Current.UserId
            });



            EnemyLogData log = new EnemyLogData()
            {
                RivalUid        = Current.UserId,
                RivalName       = GetBasis.NickName,
                RivalAvatarUrl  = GetBasis.AvatarUrl,
                LogTime         = DateTime.Now,
                LossGold        = realGold.ToString(),
                LevelDown       = levelDown,
                IsSteal         = false,
                Status          = result,
                RivalProfession = GetBasis.Profession
            };

            rivalEnemy.PushLog(log);
            PushMessageHelper.NewStealRobNotification(GameSession.Get(rival.UserID));



            receipt.Lottery = GetLottery;
            receipt.Result  = true;


            return(true);
        }