123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
-
- using CommonAI.Zone;
- using CommonAI.Zone.Instance;
- using CommonAI.Zone.ZoneEditor;
- using CommonLang;
- using CommonLang.IO;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using System.Text;
- using XmdsCommon.EditorData;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.XLS;
- using XmdsCommonServer.XLS.Data;
- namespace XmdsCommonServer.Plugin
- {
- /// <summary>
- /// FileName: XmdsDataMgr.cs
- /// Author: Alex.Yu
- /// Corporation:...
- /// Description: Xmds配置数据管理类.
- /// DateTime: 2015/7/7 18:35:41
- /// </summary>
- public class XmdsDataMgr
- {
- private static XmdsDataMgr mInstance = null;
- private XLSMonsterDataLoader mMonsterDataLoader = null;
- public XLSMonsterDynamicLoader mMonsterDynamicLoader = null;
- private XLSSkillCfgLoader mXLSSkillCfgLoader = null;
- private XLSNPCDataLoader mXLSNPCDataLoader = null;
- private XLSRandomMonsterSkillLoader mXLSRandomMonsterskillLoader = null;
- private XLSBSConfigLoader mXLSBSConfigLoader = null;
- //buff配置表
- private XLSBuffConfigLoader mXLSBuffConfigLoader = null;
- //随机名字
- private XLSRandomNameLoader mXLSRandomNameLoader = null;
- private XLSZhanYaoDataLoader mXLSZhanYaoDataLoader = null;
- //场景,山大王对应配置
- private XLSMountainKingConfigLoader mMountainKingConfigLoader = null;
- private XmdsDataMgr()
- {
- mInstance = this;
- }
- public static XmdsDataMgr GetInstance()
- {
- if ( mInstance == null )
- {
- new XmdsDataMgr();
- }
- return mInstance;
- }
- #region 怪物能力配置.
- /// <summary>
- /// 加载怪物配置数据.
- /// </summary>
- /// <param name="path"></param>
- public void LoadMonsterData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mMonsterDataLoader = new XLSMonsterDataLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadMonsterData usetime {0}", sw.ElapsedMilliseconds);
- }
- public void LoadMonsterDynamicData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mMonsterDynamicLoader = new XLSMonsterDynamicLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadMonsterDynamicData usetime {0}", sw.ElapsedMilliseconds);
- }
- public void LoadMountainKingData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mMountainKingConfigLoader = new XLSMountainKingConfigLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadMountainKingData usetime {0}", sw.ElapsedMilliseconds);
- }
- /// <summary>
- /// 获取怪物能力.
- /// </summary>
- /// <param name="sceneType"></param>
- /// <param name="tempID"></param>
- /// <param name="random"></param>
- /// <param name="needFormat"></param>
- /// <returns></returns>
- public MonsterData GetMonsterData(string sceneType, int tempID, Random random, bool needFormat = true)
- {
- MonsterData ret = null;
- if ( mMonsterDataLoader != null )
- {
- ret = mMonsterDataLoader.GetMonsterAbility(sceneType, tempID, random,needFormat);
- }
- return ret;
- }
- public MonsterProp GetSingleMonsterProp(int level,int type)
- {
- MonsterProp ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetSingleMonsterProp(level,type);
- }
- return ret;
- }
- public MonsterProp GetMultipleMonsterProp(int level, int type)
- {
- MonsterProp ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetMultipleMonsterProp(level, type);
- }
- return ret;
- }
- public OrigData GetOrigData(int level)
- {
- OrigData ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetOrigData(level);
- }
- return ret;
- }
- public TowerMonsterRatio GetTowerMonsterRatio(int floor)
- {
- TowerMonsterRatio ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetTowerMonsterRatio(floor);
- }
- return ret;
- }
- public TowerMonsterRatio GetAbyssMonsterRatio(int floor)
- {
- TowerMonsterRatio ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetAbyssMonsterRatio(floor);
- }
- return ret;
- }
- public GuildBossRatio GetGuildBossRatio(int bossLv)
- {
- GuildBossRatio ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetGuildBossRatio(bossLv);
- }
- return ret;
- }
- public UserDefineConfig GetUserDefineConfig(int type)
- {
- UserDefineConfig ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetUserDefineConfig(type);
- }
- return ret;
- }
- public DungeonMonsterRatio GetDungeonMonsterRatio(int type)
- {
- DungeonMonsterRatio ret = null;
- if (mMonsterDynamicLoader != null)
- {
- ret = mMonsterDynamicLoader.GetDungeonMonsterRatio(type);
- }
- return ret;
- }
-
- public MonsterData GetSummonMonsterData(string sceneType, int tempID, int lv, Random random)
- {
- MonsterData ret = null;
- if (mMonsterDataLoader != null)
- {
- ret = mMonsterDataLoader.GetSummonMonsterAbility(sceneType, tempID, lv, random);
- }
- return ret;
- }
- #endregion
- #region 技能数据配置.
- public void LoadSkillCfgData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSSkillCfgLoader = new XLSSkillCfgLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadSkillCfgData usetime {0}", sw.ElapsedMilliseconds);
- }
- public void LoadBuffCfgData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSBuffConfigLoader = new XLSBuffConfigLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadBuffCfgData usetime {0}", sw.ElapsedMilliseconds);
- }
- public void LoadRandomNameData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSRandomNameLoader = new XLSRandomNameLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadBuffCfgData usetime {0}", sw.ElapsedMilliseconds);
- }
- public XmdsSkillData GetXmdsSkillData(int skillid)
- {
- XmdsSkillData ret = null;
- if ( mXLSSkillCfgLoader != null )
- {
- ret = mXLSSkillCfgLoader.GetSkillData(skillid);
- }
- return ret;
- }
- public BuffConfig GetBuffConfigData(int triggerID)
- {
- if (mXLSBuffConfigLoader != null)
- {
- return mXLSBuffConfigLoader.GetBuffData(triggerID);
- }
- return null;
- }
- public HashMap<int, BuffConfig> GetBuffConfigDatas()
- {
- if (mXLSBuffConfigLoader != null)
- {
- return mXLSBuffConfigLoader.GetAllDatas();
- }
- return null;
- }
- #endregion
- #region NPC数据配置.
- public void LoadNPCData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSNPCDataLoader = new XLSNPCDataLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadNPCData usetime {0}", sw.ElapsedMilliseconds);
- }
- public NPCData GetNPCData(int templateID, int lv)
- {
- NPCData ret = null;
- if ( mXLSNPCDataLoader != null )
- {
- ret = mXLSNPCDataLoader.GetNPCAbility(templateID, lv);
- }
- return ret;
- }
- public void LoadZhanYaoData(string path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSZhanYaoDataLoader = new XLSZhanYaoDataLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadNPCData usetime {0}", sw.ElapsedMilliseconds);
- }
- public bool IsZhanYaoCrit(InstanceUnit unit, int bossLevel, int level, int curHitNums, ref int outStateExt)
- {
- ZhanYaoData data = mXLSZhanYaoDataLoader.GetZhanYaoData(level);
- if(data == null || bossLevel > data.Zhanyao_Data1)
- {
- return false;
- }
- outStateExt = data.Zhanyao_CHD;
- if (data.Zhanyao_maxtime >= 0 && curHitNums >= data.Zhanyao_maxtime)
- {
- return true;
- }
- else if (unit.RandomN.Next(10000) < data.Zhanyao_CHC)
- {
- return true;
- }
- return false;
- }
- public void LoadMonsterSkillInfo(String path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSRandomMonsterskillLoader = new XLSRandomMonsterSkillLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadNPCData usetime {0}", sw.ElapsedMilliseconds);
- }
- public void LoadBSConfig(String path)
- {
- Stopwatch sw = Stopwatch.StartNew();
- mXLSBSConfigLoader = new XLSBSConfigLoader(path);
- sw.Stop();
- XmdsVirtual.FormatLog("LoadBSConfig usetime {0}", sw.ElapsedMilliseconds);
- }
- public MonsterSkills GetMonsterSkillInfo(int monsterId)
- {
- MonsterSkills ret = null;
- if (mXLSRandomMonsterskillLoader != null)
- {
- ret = mXLSRandomMonsterskillLoader.GetMonsterSkillInfo(monsterId);
- }
- return ret;
- }
- public MonsterSkills GetMonsterSkillInfo()
- {
- return mXLSRandomMonsterskillLoader.GetMonsterSkillInfo();
- }
- //获得boss随机主动技能数
- public int GetBossComActiveNum()
- {
- return this.mXLSSkillCfgLoader.GetBossComActiveNum();
- }
- //获得boss被动技能数
- public int GetBossComPassiveNum()
- {
- return this.mXLSSkillCfgLoader.GetBossComPassiveNum();
- }
- //随机获得一个boss主动技能
- public XmdsSkillData GetBossRandomActiveSkill(Random random)
- {
- return this.mXLSSkillCfgLoader.GetBossRandomActiveSkill(random);
- }
- //随机获得一个boss被动技能
- public XmdsSkillData GetBossRandomPassiveSkill(Random random, XmdsSkillData[] hasList)
- {
- return this.mXLSSkillCfgLoader.GetBossRandomPassiveSkill(random, hasList);
- }
- //多人深渊秘境,怪物数值加成
- public AbyssMutilAddition GetAbyssMutilAddition()
- {
- return this.mXLSBSConfigLoader.GetMutilAbyssAddition();
- }
- public string GetRanomName()
- {
- return this.mXLSRandomNameLoader.GetRanomName();
- }
- /** 获取一个地图的王 */
- public int GetMapKingID(int mapID)
- {
- return this.mMountainKingConfigLoader == null ? 0 : this.mMountainKingConfigLoader.GetMapKing(mapID);
- }
- /** 获得山大王列表 */
- public HashSet<int> GetMountainKings()
- {
- return this.mMountainKingConfigLoader.GetMountainKings();
- }
- #endregion
- }
- }
|