/// <summary> /// 初始化数据 /// </summary> public virtual void Initialize(int monsterId, params object[] args) { LazyLoad(); this.args = args; agentLevels.Clear(); MonsterCfg currentMonster = ConfigService.Instance.MonsterCfgList.GetOne(monsterId); List <PlayInfo> playInfo = new List <PlayInfo>(); playInfo.Add(new PlayInfo(currentMonster)); agentLevels.Add(currentMonster.Level, playInfo); this.currentLevel = currentMonster.Level; if (currentMonster.levelIds != null) { foreach (int levelId in currentMonster.levelIds) { MonsterCfg monster = ConfigService.Instance.MonsterCfgList.GetOne(levelId); if (agentLevels.TryGetValue(monster.Level, out playInfo)) { playInfo.Add(new PlayInfo(monster)); } else { playInfo = new List <PlayInfo>(); playInfo.Add(new PlayInfo(monster)); agentLevels.Add(monster.Level, playInfo); } } } SetLevel(this.currentLevel); }
public void LoadMonsterByWaveId(int wave) { var lst = mapCfg.monsterLst; var mlst = lst[wave]; for (int i = 0; i < mlst.Count; ++i) { MonsterCfg mcfg = resSev.GetMonsterCfg(mlst[i].id); GameObject monster = resSev.LoadGoPrefab(mcfg.resPath, true, mlst[i].pos, Quaternion.Euler(0f, mlst[i].yAngle, 0f)); StringBuilder sb = "m".ConnectStr(mlst[i].wave).ConnectStr('_').ConnectStr(mlst[i].index); monster.name = sb.EndConnectStr(); monster.transform.localScale = Vector3.one; monster.SetActive(false); int lv = mlst[i].lv; BattleProps props = mcfg.props * lv; EntityMonster entity = new EntityMonster(); entity.SetBattleMgr(this); entity.SetLv(lv); entity.SetController(monster.GetComponent <MonsterController>()); entity.SetStateMgr(stateMgr); entity.SetSkillMgr(skillMgr); entity.SetBattlePorps(props); entity.SetMonsterCfg(mcfg); monstersDic.Add(monster.name, entity); GameRoot.Instance.dynamicWindow.AddHpItem(monster.name, entity.Hp, entity.GetHpRoot()); monster.SetActive(false); entity.RegisterAILogic(); } }
public void InitializeButton(int towerId) { this.towerId = towerId; MonsterCfg monster = ConfigService.Instance.MonsterCfgList.GetOne(towerId); buttonText.text = monster.Cost.ToString(); UpdateButton(); }
public MonsterCfg GetMonsterCfg(int id) { MonsterCfg data = null; monsterDic.TryGetValue(id, out data); return(data); }
public MonsterCfg GetMonsterCfg(int id) { MonsterCfg monsterCfg = null; if (monsterCfgDicts.TryGetValue(id, out monsterCfg)) { return(monsterCfg); } return(null); }
public MonsterCfg GetMonsterCfgData(int id) { MonsterCfg agc = null; if (monsterCfgDic.TryGetValue(id, out agc)) { return(agc); } return(null); }
public MonsterCfg GetMonsterCfg(int id) { MonsterCfg cfg = null; if (monsterCfgDic.TryGetValue(id, out cfg)) { return(cfg); } NETCommon.Log("获取 MonsterCfg 失败,ID:" + id); return(null); }
public virtual void Initialize(int towerId) { spriteRenderer = transform.Find("Body").GetComponent <SpriteRenderer>(); this.towerId = towerId; if (GameUIManager.instanceExists) { defaultLevel = ConfigService.Instance.MonsterCfgList.GetOne(towerId); GameUIManager.instance.SetupRadiusVisualizer(defaultLevel, transform); } ghostCollider = GetComponent <Collider>(); //spriteRenderer.sprite = controller.levels[controller.currentLevel].icon; }
/// <summary> /// ��ʼ������ /// </summary> private void LoadTableData() { this.buffCfg = new BuffCfg("Buff"); this.equipmentCfg = new EquipmentCfg("Equipment"); this.goodsCfg = new GoodsCfg("Goods"); this.monsterCfg = new MonsterCfg("Monster"); this.monsterSkillCfg = new MonsterSkillCfg("MonsterSkill"); this.skillCfg = new SkillCfg("Skill"); foreach (TableDataBase t in mLoadTables) { ResMgr.Instance.Load(t.TableName, t); } }
/// <summary> /// 初始化数据 /// </summary> private void LoadTableData() { this.buffCfg = new BuffCfg("Buff"); this.equipmentCfg = new EquipmentCfg("Equipment"); this.goodsCfg = new GoodsCfg("Goods"); this.monsterCfg = new MonsterCfg("Monster"); this.monsterSkillCfg = new MonsterSkillCfg("MonsterSkill"); this.skillCfg = new SkillCfg("Skill"); foreach (TableDataBase t in mLoadTables) { ResMgr.Instance.Load(t.TableName, t); } }
private void Awake() { Instance = this; bufferCfg = new BufferCfg("Buff"); equipmentCfg = new EquipmentCfg("Equipment"); goodCfg = new GoodCfg("Goods"); monsterCfg = new MonsterCfg("Monster"); monsterSkillCfg = new MonsterSkillCfg("MonsterSkill"); monsterInfoCfg = new MonsterInfoCfg("MonsterInfo"); skillCfg = new SkillCfg("Skill"); for (int i = 0; i < _LoadTableList.Count; i++) { ResMgr.Instance.Load(_LoadTableList[i].tableName, _LoadTableList[i]); } }
public void SelectTarget(TowerAgent target) { if (state != State.Normal) { throw new InvalidOperationException("Trying to select whilst not in a normal state"); } DeselectTarget(); currentSelectedTarget = target; if (currentSelectedTarget != null) { currentSelectedTarget.removed += OnTargetDied; } MonsterCfg monster = target.currentTargetLevelData.monster; radiusVisualizerController.SetupRadiusVisualizers(monster, target.transform); if (selectionChanged != null) { selectionChanged(target); } }
public void SetupRadiusVisualizers(MonsterCfg target, Transform ghost) { if (m_RadiusVisualizers.Count < 1) { m_RadiusVisualizers.Add(Instantiate(radiusVisualizerPrefab)); } GameObject radiusVisualizer = m_RadiusVisualizers[0]; radiusVisualizer.SetActive(true); radiusVisualizer.transform.SetParent(ghost); radiusVisualizer.transform.localPosition = new Vector3(0, radiusVisualizerHeight, 0); radiusVisualizer.transform.localScale = Vector3.one * target.EffectRadius * 2.0f; radiusVisualizer.transform.localRotation = new Quaternion { eulerAngles = localEuler }; var visualizerRenderer = radiusVisualizer.GetComponent <SpriteRenderer>(); if (visualizerRenderer != null) { visualizerRenderer.color = new Color(1, 1, 0, 0.5f); } }
public void InitMonsterCfgs(string path) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); XmlNode root = xmlDoc.SelectSingleNode("root"); XmlNodeList nodeList = root.ChildNodes; foreach (XmlNode node in nodeList) { int ID = int.Parse(node.Attributes["ID"].Value); MonsterCfg monsterCfg = new MonsterCfg { ID = ID, bps = new BattleProps(), }; XmlNodeList fieldNodeList = node.ChildNodes; foreach (XmlNode fieldNode in fieldNodeList) { switch (fieldNode.Name) { case "mName": monsterCfg.name = fieldNode.InnerText; break; case "resPath": monsterCfg.resPath = fieldNode.InnerText; break; case "mType": monsterCfg.mType = (MonsterType)Enum.Parse(typeof(MonsterType), fieldNode.InnerText); break; case "isStop": monsterCfg.isStop = fieldNode.InnerText.Equals("1"); break; case "skillID": monsterCfg.skillID = int.Parse(fieldNode.InnerText); break; case "atkDis": monsterCfg.atkDis = float.Parse(fieldNode.InnerText); break; case "hp": monsterCfg.bps.hp = int.Parse(fieldNode.InnerText); break; case "ad": monsterCfg.bps.ad = int.Parse(fieldNode.InnerText); break; case "ap": monsterCfg.bps.ap = int.Parse(fieldNode.InnerText); break; case "addef": monsterCfg.bps.addef = int.Parse(fieldNode.InnerText); break; case "apdef": monsterCfg.bps.apdef = int.Parse(fieldNode.InnerText); break; case "dodge": monsterCfg.bps.dodge = int.Parse(fieldNode.InnerText); break; case "pierce": monsterCfg.bps.pierce = int.Parse(fieldNode.InnerText); break; case "critical": monsterCfg.bps.critical = int.Parse(fieldNode.InnerText); break; } } if (!monsterCfgDicts.ContainsKey(ID)) { monsterCfgDicts.Add(ID, monsterCfg); } } }
private void InitMonsterCfg(string path) { XmlNodeList nodList = null; if (TryGetRootNodeList(path, out nodList)) { for (int i = 0; i < nodList.Count; i++) { XmlElement ele = nodList[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); MonsterCfg mc = new MonsterCfg() { ID = ID, bps = new BattleProps(), }; foreach (XmlElement e in nodList[i].ChildNodes) { switch (e.Name) { case "mName": mc.mName = e.InnerText; break; case "mType": mc.mType = (MonsterType)int.Parse(e.InnerText); break; case "isStop": mc.isStop = e.InnerText.Equals("1"); break; case "resPath": mc.resPath = e.InnerText; break; case "skillID": mc.skillID = int.Parse(e.InnerText); break; case "atkDis": mc.atkDis = float.Parse(e.InnerText); break; case "hp": mc.bps.hp = int.Parse(e.InnerText); break; case "ad": mc.bps.ad = int.Parse(e.InnerText); break; case "ap": mc.bps.ap = int.Parse(e.InnerText); break; case "addef": mc.bps.addef = int.Parse(e.InnerText); break; case "apdef": mc.bps.apdef = int.Parse(e.InnerText); break; case "dodge": mc.bps.dodge = int.Parse(e.InnerText); break; case "pierce": mc.bps.pierce = int.Parse(e.InnerText); break; case "critical": mc.bps.critical = int.Parse(e.InnerText); break; } } monsterDic.Add(ID, mc); } } }
public PlayInfo(MonsterCfg monster) { this.monster = monster; armyID = monster.Id; }
private void InitMonsterCfg(string path) { TextAsset xml = Resources.Load <TextAsset>(path); if (!xml) { PECommon.Log("xml file:" + path + " not exist", LogType.Error); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); MonsterCfg mc = new MonsterCfg { ID = ID, bps = new BattleProps() }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "mName": mc.mName = e.InnerText; break; case "mType": if (e.InnerText.Equals("1")) { mc.mType = MonsterType.Normal; } else if (e.InnerText.Equals("2")) { mc.mType = MonsterType.Boss; } break; case "isStop": mc.isStop = int.Parse(e.InnerText) == 1; break; case "resPath": mc.resPath = e.InnerText; break; case "skillID": mc.skillID = int.Parse(e.InnerText); break; case "atkDis": mc.atkDis = float.Parse(e.InnerText); break; case "hp": mc.bps.hp = int.Parse(e.InnerText); break; case "ad": mc.bps.ad = int.Parse(e.InnerText); break; case "ap": mc.bps.ap = int.Parse(e.InnerText); break; case "addef": mc.bps.addef = int.Parse(e.InnerText); break; case "apdef": mc.bps.apdef = int.Parse(e.InnerText); break; case "dodge": mc.bps.dodge = int.Parse(e.InnerText); break; case "pierce": mc.bps.pierce = int.Parse(e.InnerText); break; case "critical": mc.bps.critical = int.Parse(e.InnerText); break; } } monsterCfgDataDic.Add(ID, mc); } } }
public void SetupRadiusVisualizer(MonsterCfg target, Transform ghost = null) { radiusVisualizerController.SetupRadiusVisualizers(target, ghost); }
private void InitMonsterCfg() { string xml = DeSerializeXML(PathDefine.MonsterCfg); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNode root = doc.SelectSingleNode("root"); foreach (XmlElement item in root.ChildNodes) { if (item.GetAttributeNode("ID") == null) { continue; } int id = int.Parse(item.GetAttributeNode("ID").InnerText); MonsterCfg cfg = new MonsterCfg(); BattleProps props = new BattleProps(); cfg.ID = id; cfg.props = props; foreach (XmlElement ele in item.ChildNodes) { string value = ele.InnerText; switch (ele.Name) { case "mName": cfg.name = value; break; case "resPath": cfg.resPath = value; break; case "skillID": cfg.skillId = int.Parse(value); break; case "isStop": cfg.isStop = value.Equals("1"); break; case "atkDis": cfg.atkDis = float.Parse(value); break; case "hp": cfg.props.hp = int.Parse(value); break; case "ad": cfg.props.ad = int.Parse(value); break; case "ap": cfg.props.ap = int.Parse(value); break; case "addef": cfg.props.addef = int.Parse(value); break; case "apdef": cfg.props.apdef = int.Parse(value); break; case "dodge": cfg.props.dodge = int.Parse(value); break; case "pierce": cfg.props.pierce = int.Parse(value); break; case "critical": cfg.props.critical = int.Parse(value); break; } } monsterCfgDic.Add(id, cfg); } }
public void SetMonsterCfg(MonsterCfg mc) { this.mc = mc; }
private void InitMonsterCfg(string path) { //TextAsset xml = Resources.Load<TextAsset>(path); string streamingXML = Application.streamingAssetsPath + path; //if (!xml) //{ // Debug.Log("指定文件不存在,路径:" + path); //} //else //{ XmlDocument doc = new XmlDocument(); //doc.LoadXml(xml.text); doc.Load(streamingXML); //选中子节点集合 XmlNodeList nodList = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodList.Count; i++) { XmlElement ele = nodList[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { //不包含ID的节点,直接跳到下一个遍历,安全校验 continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); MonsterCfg monsterCfg = new MonsterCfg { ID = ID, bps = new BattleProps(), }; foreach (XmlElement element in nodList[i].ChildNodes) { switch (element.Name) { case "mName": monsterCfg.mName = element.InnerText; break; case "mType": if (element.InnerText.Equals("1")) { monsterCfg.mType = MonsterType.Normal; } else if (element.InnerText.Equals("3")) { monsterCfg.mType = MonsterType.Elite; } else { monsterCfg.mType = MonsterType.Boss; } break; case "resPath": monsterCfg.resPath = element.InnerText; break; case "skillID": monsterCfg.skillID = int.Parse(element.InnerText); break; case "atkDis": monsterCfg.atkDis = float.Parse(element.InnerText); break; case "hp": monsterCfg.bps.hp = int.Parse(element.InnerText); break; case "attackValue": monsterCfg.bps.attackValue = int.Parse(element.InnerText); break; case "defend": monsterCfg.bps.defend = int.Parse(element.InnerText); break; case "critical": monsterCfg.bps.critical = int.Parse(element.InnerText); break; } } monsterCfgDic.Add(ID, monsterCfg); } //} }