Beispiel #1
0
        public override bool TakeAction()
        {
            PlayerFriendsLogic pf = new PlayerFriendsLogic();

            pf.SetUser(m_UserId);
            if (!pf.ReceiveEnergy(m_RequestPacket.FriendPlayerId))
            {
                ErrorCode = (int)ErrorType.CannotOpenChance;
                ErrorInfo = "you can not receive energy from this player";
                return(false);
            }
            m_ResponsePacket.FriendPlayerId = m_RequestPacket.FriendPlayerId;
            PlayerLogic player = new PlayerLogic();

            player.SetUser(m_UserId);
            long nextRecoverTime;

            player.AddEnergy(1, out nextRecoverTime);
            m_ResponsePacket.Me = new PBPlayerInfo()
            {
                Id     = player.MyPlayer.Id,
                Energy = player.MyPlayer.Energy,
                NextEnergyRecoveryTime = nextRecoverTime
            };
            m_ResponsePacket.RemainCount = GameConsts.Social.MaxReceiveCount - pf.MyFriends.ReceiveCount;
            return(true);
        }
Beispiel #2
0
        private void ProcessEffect2(int count, string funcParams)
        {
            int         totalAddEnergy = count * int.Parse(funcParams);
            PlayerLogic player         = new PlayerLogic().SetUser(1);
            long        nextRecoverTime;

            player.AddEnergy(totalAddEnergy, out nextRecoverTime);
        }
Beispiel #3
0
        private void GetInstanceReward(PlayerInstanceLogic instance)
        {
            int         instanceId = instance.MyInstance.InstanceId;
            PlayerLogic player     = new PlayerLogic();

            player.SetUser(m_UserId);
            long nextRecoverTime;

            if (!m_RequestPacket.Win)
            {
                int feedbackEnergy = PlayerInstanceLogic.GetFeedBackEnergy(instanceId);
                player.AddEnergy(feedbackEnergy, out nextRecoverTime);
                m_ResponsePacket.PlayerInfo        = new PBPlayerInfo();
                m_ResponsePacket.PlayerInfo.Energy = player.MyPlayer.Energy;
                m_ResponsePacket.PlayerInfo.NextEnergyRecoveryTime = nextRecoverTime;
                return;
            }
            DTInstance instanceData = PlayerInstanceLogic.GetInstanceData(instanceId);

            player.MyPlayer.Coin += instanceData.Coin;
            player.AddExp(instanceData.PlayerExp);
            m_ResponsePacket.PlayerInfo       = new PBPlayerInfo();
            m_ResponsePacket.PlayerInfo.Id    = player.MyPlayer.Id;
            m_ResponsePacket.PlayerInfo.Coin  = player.MyPlayer.Coin;
            m_ResponsePacket.PlayerInfo.Exp   = player.MyPlayer.Exp;
            m_ResponsePacket.PlayerInfo.Level = player.MyPlayer.Level;
            HeroTeamLogic heroTeam = new HeroTeamLogic();

            heroTeam.SetUser(m_UserId);
            PlayerHeroLogic playerHero = new PlayerHeroLogic();

            playerHero.SetUser(m_UserId);
            foreach (int heroId in heroTeam.MyHeroTeam.Team)
            {
                if (heroId == 0)
                {
                    continue;
                }
                playerHero.SetHero(heroId).AddExp(instanceData.HeroExp);
                m_ResponsePacket.LobbyHeroInfo.Add(new PBLobbyHeroInfo()
                {
                    Type  = heroId,
                    Exp   = playerHero.MyHeros.Heros[heroId].HeroExp,
                    Level = playerHero.MyHeros.Heros[heroId].HeroLv,
                    Might = playerHero.MyHeros.Heros[heroId].Might,
                });
            }
            m_ResponsePacket.InstanceType = instance.MyInstance.InstanceId;
            CacheDictionary <int, int> dropDict = instance.GetDropList();
            PlayerPackageLogic         package  = new PlayerPackageLogic();

            package.SetUser(m_UserId);
            PBReceivedItems receivedItems;

            package.GetItems(dropDict, ReceiveItemMethodType.CompleteInstance, out receivedItems);
            m_ResponsePacket.ReceivedItems = receivedItems;
        }
Beispiel #4
0
        private void AddEnergy(int energy)
        {
            PlayerLogic player = new PlayerLogic();

            player.SetUser(m_UserId);
            long nextRecoverTime;

            player.AddEnergy(energy, out nextRecoverTime);
            m_ResponsePacket.PlayerInfo = new PBPlayerInfo()
            {
                Id     = player.MyPlayer.Id,
                Energy = player.MyPlayer.Energy,
                NextEnergyRecoveryTime = nextRecoverTime
            };
        }
Beispiel #5
0
        private void GetPlayerReward(ItemListItem reward, PlayerLogic p)
        {
            long nextRecoverTime;

            switch ((GiftItemType)reward.Id)
            {
            case GiftItemType.Coin:
                p.AddCoin(reward.Count);
                break;

            case GiftItemType.Energy:
                p.AddEnergy(reward.Count, out nextRecoverTime);
                break;

            case GiftItemType.MeridianEnergy:
                p.AddStarEnergy(reward.Count);
                break;

            case GiftItemType.Money:
                p.AddMoney(reward.Count);
                break;
            }
        }
Beispiel #6
0
 public void GetItems(IDictionary<int, int> gotItems, ReceiveItemMethodType method, out PBReceivedItems receivedItems)
 {
     GearLogic gear = new GearLogic();
     SoulLogic soul = new SoulLogic();
     Dictionary<int, int> itemDict = new Dictionary<int, int>();
     receivedItems = new PBReceivedItems();
     foreach (var reward in gotItems)
     {
         if (IsGear(reward.Key))
         {
             for (int i = 0; i < reward.Value; i++)
             {
                 int gearId = gear.AddNewGear(reward.Key, m_UserId, method);
                 AddGear(gearId, reward.Key);
                 receivedItems.GearInfo.Add(new PBGearInfo() { Id = gearId, Type = reward.Key, Level = 1 });
             }
         }
         else if (IsItem(reward.Key))
         {
             AddInventory(new ItemListItem() { Id = reward.Key, Count = reward.Value });
             GameUtils.MergeItem(itemDict, reward.Key, reward.Value);
         }
         else if (IsSoul(reward.Key))
         {
             for (int i = 0; i < reward.Value; i++)
             {
                 int soulId = soul.AddNewSoul(reward.Key);
                 AddSoul(soulId, reward.Key);
                 receivedItems.SoulInfo.Add(new PBSoulInfo() { Id = soulId, Type = reward.Key });
             }
         }
         else if (IsEpigraph(reward.Key))
         {
             for (int i = 0; i < reward.Value; i++)
             {
                 ItemListItem item;
                 if (GetNewEpigraph(reward.Key, out item))
                 {
                     receivedItems.EpigraphInfo.Add(new PBEpigraphInfo() { Type = reward.Key, Level = m_Package.Epigraphs[reward.Key] });
                 }
                 else
                 {
                     GameUtils.MergeItem(itemDict, item.Id, item.Count);
                 }
             }
         }
         else
         {
             PlayerLogic p = new PlayerLogic();
             p.SetUser(m_UserId);
             switch ((GiftItemType)reward.Key)
             {
                 case GiftItemType.Coin:
                     p.AddCoin(reward.Value);
                     break;
                 case GiftItemType.Money:
                     p.AddMoney(reward.Value);
                     break;
                 case GiftItemType.Energy:
                     long nextRecoverTime;
                     p.AddEnergy(reward.Value, out nextRecoverTime);
                     break;
                 case GiftItemType.MeridianEnergy:
                     p.AddStarEnergy(reward.Value);
                     break;
                 case GiftItemType.Spirit:
                     p.AddSpirit(reward.Value);
                     break;
                 case GiftItemType.DragonStripeToken:
                     p.AddDragonStripeToken(reward.Value);
                     break;
             }
         }
     }
     foreach (var item in itemDict)
     {
         receivedItems.ItemInfo.Add(new PBItemInfo() { Type = item.Key, Count = m_Package.Inventories[item.Key] });
     }
 }