Exemplo n.º 1
0
        public void AddExp(int e)
        {
            float bonusAddition = 0f;

            if (mBonuses != null && e > 0)
            {
                bonusAddition = (float)System.Math.Ceiling(e * mBonuses.expPcBonus);
            }
            int additionalExp = (int)bonusAddition;

            e   += additionalExp;
            exp += (e);
            // log.InfoFormat("added exp = {0}, additional exp = {1}".Color(LogColor.orange), e,  e - additionalExp);
            mPlayer.UpdateCharacterOnMaster();
            mPlayer.EventOnPlayerInfoUpdated();
            //mMessage.ReceiveServiceMessage(ServiceMessageType.Info, string.Format("exp received = {0}", e));
            mMessage.ReceiveExp(e);

            if (m_PetManager)
            {
                m_PetManager.AddExp(e);
            }

            int currentLevel = resource.Leveling.LevelForExp(exp);

            if (m_Achivments != null)
            {
                m_Achivments.SetVariable("player_level", currentLevel);
            }
            //if(m_QuestManager != null ) {
            //    m_QuestManager.OnPlayerLevel(currentLevel);
            //}
        }