public override bool inited() { SolaEngine engine = SolaEngine.getInstance(); HeroMgr hMgr = (HeroMgr)engine.getMgr(typeof(HeroMgr)); List <DialogueInfoConfig> infoCfgs = (List <DialogueInfoConfig>)engine.getCfg(DialogueInfoConfigData.NAME); for (int i = 0; i < infoCfgs.Count; i++) { DialogueInfoConfig infoCfg = infoCfgs[i]; DialogueInfoModel infoModel = new DialogueInfoModel(); infoModel.setCfg(infoCfg, hMgr); int id = infoModel.getId(); _dialogueInfoModels.Add(id, infoModel); } List <DialogueConfig> cfgs = (List <DialogueConfig>)engine.getCfg(DialogueConfigData.NAME); for (int i = 0; i < cfgs.Count; i++) { DialogueConfig cfg = cfgs[i]; DialogueModel model = new DialogueModel(); model.setCfg(cfg, this); int id = model.getId(); _dialogueModels.Add(id, model); } MissionMgr mMgr = (MissionMgr)engine.getMgr(typeof(MissionMgr)); mMgr.initDialogueInfo(this); return(true); }
public void setCfg(DialogueInfoConfig cfg, HeroMgr hMgr) { _id = Convert.ToInt32(cfg.id); _content = (string)cfg.content; int leftId = Convert.ToInt32(cfg.leftSpeakerId); int rightId = Convert.ToInt32(cfg.rightSpeakerId); int speakerId = Convert.ToInt32(cfg.speakerId); if (leftId != 0) { HeroModel leftModel = hMgr.createHero(leftId, 1, 0); _leftHeroModel = leftModel; } if (rightId != 0) { HeroModel rightModel = hMgr.createHero(rightId, 1, 0); _rightHeroModel = rightModel; } if (speakerId != 0) { HeroModel speakerModel = hMgr.createHero(speakerId, 1, 0); _speakerHeroModel = speakerModel; } }
public DialogueInfoConfigData() { _dataJson = SimpleJson.SimpleJson.DeserializeObject <JsonArray> (_data).ToArray(); foreach (object jsonObject in _dataJson) { JsonObject jo = (JsonObject)jsonObject; DialogueInfoConfig config = new DialogueInfoConfig(); _dataList.Add(config); foreach (string key in jo.Keys) { object value = jo[key]; System.Type type = typeof(DialogueInfoConfig); System.Reflection.FieldInfo info = type.GetField(key); if (info == null) { continue; } if (value is JsonArray) { JsonArray jarr = (JsonArray)value; int jarrSize = jarr.Count; if (info.FieldType.FullName == "System.Int32[]") { int[] data = new int[jarrSize]; for (int i = 0; i < jarrSize; i++) { data[i] = (int)jarr[i]; } info.SetValue(config, data); } else { string[] data = new string[jarrSize]; for (int i = 0; i < jarrSize; i++) { data[i] = (string)jarr[i]; } info.SetValue(config, data); } } else { info.SetValue(config, value); } } } _dataJson = null; _data = null; }