using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using LitJson; namespace vnxbqy.UI { public class CrossServerModel : Model, IPlayerLoginOk { public override void Init() { ParseConfig(); } public override void UnInit() { } public void OnPlayerLoginOk() { } private void ParseConfig() { var config = FuncConfigConfig.Get("CrossBattlefieldCrystal"); var json = JsonMapper.ToObject(config.Numerical1); foreach (var key in json.Keys) { crystalIDList.Add(int.Parse(key)); } crystalIDList.Sort(); npcModelReplaceIDs = JsonMapper.ToObject(config.Numerical5); //根据阵营替换模型的NPCID } //GeneralDefine.CrossBattleFieldMapID 32060 Dictionary warCrystalDict = new Dictionary(); //水晶npcid对应阵营 public int[][] npcModelReplaceIDs; List crystalIDList = new List(); //灰色水晶 public event Action CrystalBelongChangeEvent; public void UpdateFBHelp(string _mission) { var _jsonData = JsonMapper.ToObject(_mission); foreach (var _key in _jsonData.Keys) { if (_key == "worldInfo") { var json = _jsonData[_key]; foreach (var key in json.Keys) { //"crystalFactionInfo": {"30908101": 1, "30908103": 2}, 资源水晶NPCID对应所属阵营 {"npcID":所属阵营} if (key == "crystalFactionInfo") { warCrystalDict.Clear(); var factionDict = JsonMapper.ToObject(json[key].ToJson()); foreach (var key1 in factionDict.Keys) { warCrystalDict[int.Parse(key1)] = int.Parse(factionDict[key1].ToJson()); } CrystalBelongChangeEvent?.Invoke(); break; } } break; } } } //获得水晶当前阵营 public int GetCrystalFaction(int npcID) { if (!warCrystalDict.ContainsKey(npcID)) { return 0; } return warCrystalDict[npcID]; } public int GetNewCrystalID(int npcID, int faction) { if (faction == 0) return npcID; return npcModelReplaceIDs[faction - 1][crystalIDList.IndexOf(npcID)]; } } }