public override bool TakeAction() { PlayerHeroLogic playerHero = new PlayerHeroLogic(); playerHero.SetUser(m_UserId).SetHero(m_RequestPacket.HeroType); if (!playerHero.DataCheck()) { ErrorCode = (int)ErrorType.RequireNotMet; ErrorInfo = "wrong HeroId"; return(false); } if (playerHero.GetHeroInfo().HeroStarLevel < GameConsts.Hero.MaxStarLevel) { ErrorCode = (int)ErrorType.RequireNotMet; ErrorInfo = "Star level not enough"; return(false); } Hero myHero = playerHero.GetHeroInfo(); DTHeroConsciousnessBase heroConsciousness = CacheSet.HeroConsciousnessBaseTable.GetData(myHero.ConsciousnessLevel); if (heroConsciousness.LevelUpItemId == -1) { ErrorCode = (int)ErrorType.RequireNotMet; ErrorInfo = "reached max level"; return(false); } PlayerLogic p = new PlayerLogic(); p.SetUser(m_UserId); if (!p.DeductSpirit(heroConsciousness.LevelUpItemCount)) { ErrorCode = (int)ErrorType.RequireNotMet; ErrorInfo = "Spirit not enough"; return(false); } playerHero.ConsciousnessLevelUp(); myHero = playerHero.GetHeroInfo(); m_ResponsePacket.LobbyHeroInfo = new PBLobbyHeroInfo() { Type = myHero.HeroType, ConsciousnessLevel = myHero.ConsciousnessLevel, Might = myHero.Might, }; m_ResponsePacket.PlayerInfo = new PBPlayerInfo() { Id = p.MyPlayer.Id, Spirit = p.MyPlayer.Spirit }; return(true); }
public bool PurchaseItem(int index, int type, int count) { var itemData = m_Shop.ShopItems[index]; if (itemData.ItemType != type || itemData.ItemCount != count || itemData.PurchasedTimes >= 1) { return(false); } PlayerLogic player = new PlayerLogic(); player.SetUser(m_UserId); switch ((GiftItemType)itemData.CurrencyType) { case GiftItemType.Money: if (!player.DeductMoney(itemData.OriginalPrice)) { return(false); } break; case GiftItemType.Coin: if (!player.DeductCoin(itemData.OriginalPrice)) { return(false); } break; case GiftItemType.Spirit: if (!player.DeductSpirit(itemData.OriginalPrice)) { return(false); } break; default: break; } m_Shop.ShopItems[index].PurchasedTimes += 1; return(true); }