Exemple #1
0
    /// <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);
    }
Exemple #2
0
    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();
        }
    }
Exemple #3
0
    public void InitializeButton(int towerId)
    {
        this.towerId = towerId;
        MonsterCfg monster = ConfigService.Instance.MonsterCfgList.GetOne(towerId);

        buttonText.text = monster.Cost.ToString();
        UpdateButton();
    }
Exemple #4
0
    public MonsterCfg GetMonsterCfg(int id)
    {
        MonsterCfg data = null;

        monsterDic.TryGetValue(id, out data);

        return(data);
    }
Exemple #5
0
    public MonsterCfg GetMonsterCfg(int id)
    {
        MonsterCfg monsterCfg = null;

        if (monsterCfgDicts.TryGetValue(id, out monsterCfg))
        {
            return(monsterCfg);
        }
        return(null);
    }
Exemple #6
0
    public MonsterCfg GetMonsterCfgData(int id)
    {
        MonsterCfg agc = null;

        if (monsterCfgDic.TryGetValue(id, out agc))
        {
            return(agc);
        }
        return(null);
    }
Exemple #7
0
    public MonsterCfg GetMonsterCfg(int id)
    {
        MonsterCfg cfg = null;

        if (monsterCfgDic.TryGetValue(id, out cfg))
        {
            return(cfg);
        }
        NETCommon.Log("获取 MonsterCfg 失败,ID:" + id);
        return(null);
    }
Exemple #8
0
 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);
     }
 }
Exemple #10
0
 /// <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]);
        }
    }
Exemple #12
0
        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);
        }
    }
Exemple #14
0
    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);
            }
        }
    }
Exemple #15
0
    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);
            }
        }
    }
Exemple #16
0
 public PlayInfo(MonsterCfg monster)
 {
     this.monster = monster;
     armyID       = monster.Id;
 }
Exemple #17
0
    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);
            }
        }
    }
Exemple #18
0
 public void SetupRadiusVisualizer(MonsterCfg target, Transform ghost = null)
 {
     radiusVisualizerController.SetupRadiusVisualizers(target, ghost);
 }
Exemple #19
0
    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);
        }
    }
Exemple #20
0
 public void SetMonsterCfg(MonsterCfg mc)
 {
     this.mc = mc;
 }
Exemple #21
0
    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);
        }
        //}
    }