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); }
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); }
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); }
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); }