少年修仙传客户端代码仓库
client_linchunjie
2018-09-14 1c6fc962dcc98a57d0e3e35d4271899f0c430170
3579【前端】【1.1.0】【1.0.15】封魔坛鼓舞修改为N次仙玉鼓舞,去除铜钱鼓舞
8个文件已修改
330 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/DungeonInspireConfig.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DungeonInspireConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA30A_tagMCFBEncourageInfo.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA3_Function/HA30A_tagMCFBEncourageInfo.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFairyLandWin.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonInspireBehaviour.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonInspireWin.cs 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DungeonInspireConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Saturday, January 06, 2018
//    [  Date ]:           Friday, September 14, 2018
//--------------------------------------------------------
using UnityEngine;
@@ -11,11 +11,11 @@
    
    public partial class DungeonInspireConfig : ConfigBase {
        public int ID { get ; private set ; }
        public int DataMapId { get ; private set ; }
        public int InspireType { get ; private set ; }
        public int InspireCount { get ; private set ; }
        public int MoneyCount { get ; private set ; }
        public int ID { get ; private set ; }
        public int DataMapId { get ; private set ; }
        public int InspireType { get ; private set ; }
        public int InspireCount { get ; private set ; }
        public string MoneyCount { get ; private set; }
        public override string getKey()
        {
@@ -25,15 +25,15 @@
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                DataMapId=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                InspireType=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                InspireCount=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                MoneyCount=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                DataMapId=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                InspireType=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                InspireCount=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                MoneyCount = rawContents[4].Trim();
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/DungeonInspireConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 413d3284263320648a52a0009e3d125f
timeCreated: 1515213550
timeCreated: 1536909479
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA30A_tagMCFBEncourageInfo.cs
@@ -21,7 +21,10 @@
        base.Done(vNetPack);
        HA30A_tagMCFBEncourageInfo vNetData = vNetPack as HA30A_tagMCFBEncourageInfo;
        model.UpdateInspireLevel(vNetData.Cnt1, vNetData.Cnt2);
        for (int i = 0; i < vNetData.Cnt; i++)
        {
            model.UpdateInspireLevel(vNetData.InfoList[i].MoneyType, vNetData.InfoList[i].EncourageCnt);
        }
    }
}
Core/NetworkPackage/ServerPack/HA3_Function/HA30A_tagMCFBEncourageInfo.cs
@@ -4,16 +4,26 @@
//A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
public class HA30A_tagMCFBEncourageInfo : GameNetPackBasic {
    public byte Cnt1;    // 当前铜钱鼓舞次数
    public byte Cnt2;    // 当前仙玉鼓舞次数
    public byte Cnt;    //
    public  tagMCFBEncourageCnt[] InfoList;    // 次数信息
    public HA30A_tagMCFBEncourageInfo () {
        _cmd = (ushort)0xA30A;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Cnt1, vBytes, NetDataType.BYTE);
        TransBytes (out Cnt2, vBytes, NetDataType.BYTE);
        TransBytes (out Cnt, vBytes, NetDataType.BYTE);
        InfoList = new tagMCFBEncourageCnt[Cnt];
        for (int i = 0; i < Cnt; i ++) {
            InfoList[i] = new tagMCFBEncourageCnt();
            TransBytes (out InfoList[i].MoneyType, vBytes, NetDataType.BYTE);
            TransBytes (out InfoList[i].EncourageCnt, vBytes, NetDataType.BYTE);
        }
    }
    public struct tagMCFBEncourageCnt {
        public byte MoneyType;        // 金钱类型
        public byte EncourageCnt;        // 当前鼓舞次数
    }
}
System/Dungeon/DungeonFairyLandWin.cs
@@ -121,9 +121,9 @@
        private void DungeonEncourageEvent()
        {
            var lv = model.dungeonCoinInspireCount + model.dungeonJadeInspireCount;
            targetTextList[3].text = lv == 0 ? StringUtility.Contact(Language.Get("FairyLand_Func3"), ":", Language.Get("FairyLand_Func4"))
                : StringUtility.Contact(Language.Get("FairyLand_Func3"), ":<color=#00ff00>", lv * model.dungeonInspireUper, "%</color>");
            var level = model.GetDungeonInspireLevel();
            targetTextList[3].text = level == 0 ? StringUtility.Contact(Language.Get("FairyLand_Func3"), ":", Language.Get("FairyLand_Func4"))
                : StringUtility.Contact(Language.Get("FairyLand_Func3"), ":<color=#00ff00>", level * model.GetDungeonInspireUpper(31080), "%</color>");
        }
        private void UpdateBuf()
System/Dungeon/DungeonInspireBehaviour.cs
@@ -43,7 +43,7 @@
            }
            for (int i = 0; i < _list.Count; i++)
            {
                if (_list[i].InspireType == 1)
                if (_list[i].InspireType == 3)
                {
                    m_CoinConfig = _list[i];
                    break;
@@ -54,13 +54,13 @@
        private void UpdateDugeonInspireLv()
        {
            var mapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            var lv = model.dungeonJadeInspireCount + model.dungeonCoinInspireCount;
            m_Waggle = m_CoinConfig != null && model.dungeonCoinInspireCount < m_CoinConfig.InspireCount
                && lv < model.GetInspireMaxCount(mapId);
            var level = model.GetDungeonInspireLevel();
            m_Waggle = m_CoinConfig != null && model.GetDungeonInspireLevel(3) < m_CoinConfig.InspireCount
                && level < model.GetInspireMaxCount(mapId);
            if (m_InspireProgress != null)
            {
                m_InspireProgress.gameObject.SetActive(PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID);
                m_InspireProgress.text = StringUtility.Contact(lv * 10, "%");
                m_InspireProgress.text = StringUtility.Contact(level * 10, "%");
            }
            if (!m_Waggle)
            {
@@ -100,7 +100,7 @@
        private void OnInspireBtn()
        {
            if ((model.dungeonCoinInspireCount + model.dungeonJadeInspireCount) >= model.GetInspireMaxCount(PlayerDatas.Instance.baseData.MapID))
            if ((model.GetDungeonInspireLevel()) >= model.GetInspireMaxCount(PlayerDatas.Instance.baseData.MapID))
            {
                SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
                return;
System/Dungeon/DungeonInspireWin.cs
@@ -15,25 +15,17 @@
    public class DungeonInspireWin : Window
    {
        [SerializeField]
        Button coinInspireBtn;
        [SerializeField]
        GameObject coinInspireMark;
        [SerializeField]
        Button fairyInspireBtn;
        [SerializeField]
        GameObject fairyInspireMark;
        [SerializeField]
        Text coinInspireInfoText;
        [SerializeField]
        Text fairyInspireInfoText;
        [SerializeField] Text m_InpsireLvTxt;
        [SerializeField]
        Button confirmBtn;
        [SerializeField]
        Button cancelBtn;
        [SerializeField]
        Button m_CloseBtn;
        [SerializeField] Button m_CoinInspire;
        [SerializeField] RectTransform m_CoinInspireCheck;
        [SerializeField] Button m_FairyInspire;
        [SerializeField] RectTransform m_FairyInspireCheck;
        [SerializeField] Text m_CoinCost;
        [SerializeField] Text m_FairyCost;
        [SerializeField] Text m_InspireLevel;
        [SerializeField] Text m_Remind;
        [SerializeField] Button m_Confirm;
        [SerializeField] Button m_Cancel;
        [SerializeField] Button m_Close;
        DungeonModel m_Model;
        DungeonModel model
@@ -44,10 +36,10 @@
            }
        }
        private bool isCoinInspire = false;
        private bool isFairyInspire = false;
        private DungeonInspireConfig coinInspireCfg = null;
        private DungeonInspireConfig fairyInspireCfg = null;
        private bool coinInspire = false;
        private bool fairyInspire = false;
        private DungeonInspireConfig coinInspireConfig = null;
        private DungeonInspireConfig fairyInspireConfig = null;
        #region Built-in
        protected override void BindController()
        {
@@ -55,11 +47,11 @@
        protected override void AddListeners()
        {
            coinInspireBtn.onClick.AddListener(OnCoinInspire);
            fairyInspireBtn.onClick.AddListener(OnFairyInspire);
            confirmBtn.onClick.AddListener(OnConfirmBtn);
            cancelBtn.onClick.AddListener(OnCancelBtn);
            m_CloseBtn.onClick.AddListener(CloseClick);
            m_CoinInspire.onClick.AddListener(CoinInspire);
            m_FairyInspire.onClick.AddListener(FairyInspire);
            m_Confirm.onClick.AddListener(Confirm);
            m_Cancel.onClick.AddListener(Cancel);
            m_Close.onClick.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
@@ -69,25 +61,30 @@
            {
                return;
            }
            coinInspireCfg = null;
            fairyInspireCfg = null;
            coinInspireConfig = null;
            fairyInspireConfig = null;
            for (int i = 0; i < _list.Count; i++)
            {
                if (_list[i].InspireType == 1)
                if (_list[i].InspireType == 3)
                {
                    coinInspireCfg = _list[i];
                    coinInspireConfig = _list[i];
                }
                else if (_list[i].InspireType == 2)
                else if (_list[i].InspireType == 2
                    || _list[i].InspireType == 1 || _list[i].InspireType == 5)
                {
                    fairyInspireCfg = _list[i];
                    fairyInspireConfig = _list[i];
                }
            }
            coinInspireBtn.gameObject.SetActive(coinInspireCfg != null);
            isCoinInspire = coinInspireCfg == null ? false : true;
            isFairyInspire = !isCoinInspire;
            InitData();
            m_CoinInspire.gameObject.SetActive(coinInspireConfig != null);
            coinInspire = coinInspireConfig == null ? false : true;
            fairyInspire = !coinInspire;
            Display();
            UpdateInspireType();
            DisplayRemind();
            model.dungeonInspireLvEvent += DungeonEncourageEvent;
        }
@@ -96,6 +93,12 @@
        protected override void OnAfterOpen()
        {
            var _list = model.GetDungeonInspire(PlayerDatas.Instance.baseData.MapID);
            if (_list == null)
            {
                CloseImmediately();
                return;
            }
        }
        protected override void OnPreClose()
@@ -110,95 +113,125 @@
        private void DungeonEncourageEvent()
        {
            var lv = model.dungeonCoinInspireCount + model.dungeonJadeInspireCount;
            if (lv >= fairyInspireCfg.InspireCount && !InFairyLandGuiding())
            var level = model.GetDungeonInspireLevel();
            if (level >= model.GetInspireMaxCount(PlayerDatas.Instance.baseData.MapID)
                && !InGuiding())
            {
                CloseImmediately();
                return;
            }
            DisplayCost();
            UpdateInspireType();
        }
        private void OnCoinInspire()
        private void CoinInspire()
        {
            if (!isCoinInspire)
            if (!coinInspire)
            {
                if (model.dungeonCoinInspireCount >= coinInspireCfg.InspireCount)
                if (model.GetDungeonInspireLevel(3) >= coinInspireConfig.InspireCount)
                {
                    SysNotifyMgr.Instance.ShowTip("Xjmj_CopperInspireFull");
                    return;
                }
                isCoinInspire = true;
                isFairyInspire = false;
                coinInspire = true;
                fairyInspire = false;
            }
            else
            {
                isCoinInspire = false;
                coinInspire = false;
            }
            UpdateInspireType();
        }
        private void OnFairyInspire()
        private void FairyInspire()
        {
            if (coinInspireCfg == null)
            if (coinInspireConfig == null)
            {
                return;
            }
            isCoinInspire = false;
            isFairyInspire = !isFairyInspire;
            coinInspire = false;
            fairyInspire = !fairyInspire;
            UpdateInspireType();
        }
        private void OnConfirmBtn()
        private void Confirm()
        {
            if (isFairyInspire)
            if (fairyInspire)
            {
                if (PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold < fairyInspireCfg.MoneyCount
                    && !InFairyLandGuiding())
                uint money = 0;
                switch (fairyInspireConfig.InspireType)
                {
                    SysNotifyMgr.Instance.ShowTip("Xjmj_InspireNoEnoughFairy");
                    case 1:
                        money += PlayerDatas.Instance.baseData.Gold;
                        break;
                    case 2:
                        money += PlayerDatas.Instance.baseData.GoldPaper;
                        break;
                    case 5:
                        money = PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold;
                        break;
                }
                if (money < model.GetDungeonInspireCost(fairyInspireConfig)
                    && !InGuiding())
                {
                    CloseImmediately();
                    WindowCenter.Instance.Open<RechargeTipWin>();
                }
                else
                {
                    CA508_tagCMDoFBAction inspirepack = new CA508_tagCMDoFBAction();
                    inspirepack.ActionType = 0;
                    inspirepack.ActionInfo = (uint)fairyInspireCfg.InspireType;
                    GameNetSystem.Instance.SendInfo(inspirepack);
                    CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
                    pak.ActionType = 0;
                    pak.ActionInfo = (uint)fairyInspireConfig.InspireType;
                    GameNetSystem.Instance.SendInfo(pak);
                }
            }
            else if (isCoinInspire)
            else if (coinInspire)
            {
                if (PlayerDatas.Instance.baseData.Silver < coinInspireCfg.MoneyCount
                    && !InFairyLandGuiding())
                if (UIHelper.GetMoneyCnt(3) < (ulong)model.GetDungeonInspireCost(coinInspireConfig)
                    && !InGuiding())
                {
                    SysNotifyMgr.Instance.ShowTip("Xjmj_InspireNoEnoughGold");
                }
                else
                {
                    CA508_tagCMDoFBAction inspirepack = new CA508_tagCMDoFBAction();
                    inspirepack.ActionType = 0;
                    inspirepack.ActionInfo = (uint)coinInspireCfg.InspireType;
                    GameNetSystem.Instance.SendInfo(inspirepack);
                    CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
                    pak.ActionType = 0;
                    pak.ActionInfo = (uint)coinInspireConfig.InspireType;
                    GameNetSystem.Instance.SendInfo(pak);
                }
            }
        }
        private void OnCancelBtn()
        private void Cancel()
        {
            CloseImmediately();
        }
        private void InitData()
        private void Display()
        {
            if (coinInspireCfg != null)
            {
                coinInspireInfoText.text = Language.Get("FairyLand_Func9", coinInspireCfg.MoneyCount, coinInspireCfg.InspireCount);
            }
            fairyInspireInfoText.text = Language.Get("FairyLand_Func10", fairyInspireCfg.MoneyCount);
            DisplayCost();
        }
        bool InFairyLandGuiding()
        private void DisplayCost()
        {
            if (NewBieCenter.Instance.inGuiding && NewBieCenter.Instance.currentGuide == GeneralConfig.Instance.fairyLandGuideId)
            if (coinInspireConfig != null)
            {
                m_CoinCost.text = Language.Get("FairyLand_Func9", model.GetDungeonInspireCost(coinInspireConfig), coinInspireConfig.InspireCount);
            }
            if (fairyInspireConfig != null)
            {
                m_FairyCost.text = Language.Get("FairyLand_Func10", model.GetDungeonInspireCost(fairyInspireConfig));
            }
        }
        void DisplayRemind()
        {
            m_Remind.gameObject.SetActive(fairyInspireConfig != null && fairyInspireConfig.InspireType == 5);
        }
        bool InGuiding()
        {
            if (NewBieCenter.Instance.inGuiding
                && NewBieCenter.Instance.currentGuide == GeneralConfig.Instance.fairyLandGuideId)
            {
                return true;
            }
@@ -207,11 +240,12 @@
        private void UpdateInspireType()
        {
            var lv = model.dungeonJadeInspireCount + model.dungeonCoinInspireCount;
            m_InpsireLvTxt.text = lv == 0 ? Language.Get("FairyLand_Func4")
                : Language.Get("HaveInspired", StringUtility.Contact("<color=#109d06>", lv * model.dungeonInspireUper, "%</color>"));
            coinInspireMark.SetActive(isCoinInspire);
            fairyInspireMark.SetActive(isFairyInspire);
            var level = model.GetDungeonInspireLevel();
            m_InspireLevel.text = level == 0 ? Language.Get("FairyLand_Func4")
                : Language.Get("HaveInspired", StringUtility.Contact("<color=#109d06>",
                level * model.GetDungeonInspireUpper(PlayerDatas.Instance.baseData.MapID), "%</color>"));
            m_CoinInspireCheck.gameObject.SetActive(coinInspire);
            m_FairyInspireCheck.gameObject.SetActive(fairyInspire);
        }
    }
System/Dungeon/DungeonModel.cs
@@ -73,17 +73,9 @@
            set { m_DungeonResult = value; }
        }
        public int dungeonCoinInspireCount {
            get; private set;
        }
        public int dungeonJadeInspireCount {
            get; private set;
        }
        public int dungeonInspireUper {
            get; private set;
        }
        Dictionary<int, int> dungeonInspireCounts = new Dictionary<int, int>();//5-仙玉或绑玉
        Dictionary<int, int> dungeonInspireUpperDict = new Dictionary<int, int>();
        Dictionary<int, int> dungeonMaxInspireCountDict = new Dictionary<int, int>();
        Dungeon m_SelectedKylinDungeon;
        public Dungeon selectedKylinDungeon {
@@ -140,8 +132,7 @@
        public void OnBeforePlayerDataInitialize()
        {
            dungeonCountRemainTimes.Clear();
            dungeonCoinInspireCount = 0;
            dungeonJadeInspireCount = 0;
            dungeonInspireCounts.Clear();
        }
        public void OnAfterPlayerDataInitialize()
@@ -597,6 +588,7 @@
            specialItemCollectRecord = default(Item);
            dungeonCoolDowns.Clear();
            m_Mission = default(DungeonMissionData);
            dungeonInspireCounts.Clear();
        }
        public void UpdateRecords(HA320_tagMCPlayerFBInfoData.tagMCFBInfo[] _serverInfos)
@@ -690,10 +682,9 @@
            }
        }
        public void UpdateInspireLevel(int coinInspireLv, int jadeInpsireLv)
        public void UpdateInspireLevel(int type, int count)
        {
            dungeonCoinInspireCount = coinInspireLv;
            dungeonJadeInspireCount = jadeInpsireLv;
            dungeonInspireCounts[type] = count;
            if (dungeonInspireLvEvent != null)
            {
                dungeonInspireLvEvent();
@@ -1216,22 +1207,35 @@
            }
        }
        public int GetInspireMaxCount(int _dataMapId)
        public int GetDungeonInspireLevel(int moneyType = 0)//0代表总等级
        {
            List<DungeonInspireConfig> _list = GetDungeonInspire(_dataMapId);
            int _maxCnt = 0;
            if (_list != null)
            var level = 0;
            foreach (var key in dungeonInspireCounts.Keys)
            {
                for (int i = 0; i < _list.Count; i++)
                if (moneyType == 0 || moneyType == key)
                {
                    if (_list[i].InspireType == 2)
                    {
                        _maxCnt = _list[i].InspireCount;
                        break;
                    }
                    level += dungeonInspireCounts[key];
                }
            }
            return _maxCnt;
            return level;
        }
        public int GetDungeonInspireCost(DungeonInspireConfig config)
        {
            var level = GetDungeonInspireLevel();
            Equation.Instance.Clear();
            Equation.Instance.AddKeyValue("encourageLV", level);
            return Equation.Instance.Eval<int>(config.MoneyCount);
        }
        public int GetDungeonInspireUpper(int mapId)
        {
            return dungeonInspireUpperDict.ContainsKey(mapId) ? dungeonInspireUpperDict[mapId] : 0;
        }
        public int GetInspireMaxCount(int _dataMapId)
        {
            return dungeonMaxInspireCountDict.ContainsKey(_dataMapId) ? dungeonMaxInspireCountDict[_dataMapId] : 0;
        }
        public Item GetLackItem(DungeonSuppliesLackWin.LackType lackType)
@@ -1363,10 +1367,11 @@
                trialDungeonMapList.AddRange(ConfigParse.GetMultipleStr<int>(funcCfg.Numerical1));
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("InspireNum");
            funcCfg = Config.Instance.Get<FuncConfigConfig>("FBEncourageBuff");
            if (funcCfg != null)
            {
                dungeonInspireUper = int.Parse(funcCfg.Numerical1);
                dungeonMaxInspireCountDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical2);
                dungeonInspireUpperDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical3);
            }
            foreach (var _cfg in Config.Instance.GetAllValues<DungeonInspireConfig>())