Exemplo n.º 1
0
    //加载怪物
    public void LoadMonster(int wave)
    {
        List <MonsterSpawnData> monsterLst = this.mapCfg.monsterLst;

        for (int i = 0; i < monsterLst.Count; i++)
        {
            if (monsterLst[i].mWave == wave)
            {
                MonsterSpawnData msd = monsterLst[i];
                GameObject       go  = resSvc.LoadPrefab(msd.mCfg.resPath);
                go.transform.localPosition    = msd.mBornpos;
                go.transform.localEulerAngles = msd.mBornRote;
                go.transform.name             = string.Format("{0}_{1}_{2}", msd.mCfg.id, msd.mWave, msd.mIndex);

                MonsterController monsterCtrl = go.GetComponent <MonsterController>();

                EntityMonster entityMonster = new EntityMonster();
                entityMonster.SetMonsterCfg(msd);
                entityMonster.Name = go.transform.name;
                entityMonster.SetBattleMgr(this);
                entityMonster.SetSkillMgr(this.skillMgr);
                entityMonster.SetStateMgr(this.stateMgr);
                entityMonster.SetBattleProps(msd.mCfg.bps);
                entityMonster.SetController(monsterCtrl);
                monsterDic.Add(go.name, entityMonster);
                entityMonster.SetActive(false);

                GameRoot.instance.dynamicWind.AddHpItemInfo(entityMonster.Name, entityMonster.HP, monsterCtrl.itemRoot);
            }
        }
    }
Exemplo n.º 2
0
 public void SetMonsterCfg(MonsterSpawnData monsterSpawnData)
 {
     this.msd = monsterSpawnData;
 }
Exemplo n.º 3
0
    void Start()
    {
        //SceneManager = this.scene;
        //test
        if (GameObject.FindGameObjectWithTag("GameManager") == null)
        {
            players = GameObject.FindGameObjectsWithTag("Player");
        }

        //Instantiate 스폰포인트 생성조건 - > mapNumber != 2;

//		if (scenmanager.name == ("ProtoTypeCoPy3")) {
        mapNumber = 3;
//		}
        if (mapNumber == 2)
        {
            normalMode = false;
        }
        if (mapNumber != 2)
        {
            normalMode = true;
        }

        DungeonConstruct();

        if (GameObject.FindGameObjectWithTag("GameManager") == null)
        {
            InitializeMonsterSpawnPoint();

//			if(mapNumber==3){
            MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[4];
            monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3);
            monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 4);
            monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 1);
            monsterSpawnData[3] = new MonsterSpawnData((int)MonsterId.BlackBear, 1);
            monsterSpawnList    = new MonsterSpawnList(4, monsterSpawnData);

            MonsterBaseData[] monsterBaseData = new MonsterBaseData[4];
            monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog");
            monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5));
            monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck");
            monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4));
            monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit");
            monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 4));
            monsterBaseData[3] = new MonsterBaseData((int)MonsterId.BlackBear, "BlackBear");
            monsterBaseData[3].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 1));
            dungeonData = new MonsterStatusData(4, monsterBaseData);
//			}

//			if (mapNumber == 1) {
//				MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[3];
//				monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3);
//				monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 3);
//				monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 2);
//				monsterSpawnList = new MonsterSpawnList(3, monsterSpawnData);
//
//				MonsterBaseData[] monsterBaseData = new MonsterBaseData[3];
//				monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog");
//				monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5));
//				monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck");
//				monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4));
//				monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit");
//				monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 100, 4));
//
//				dungeonData = new MonsterStatusData(3, monsterBaseData);
//			}

//            MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[4];
//            monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3);
//            monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 4);
//            monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 1);
//			monsterSpawnData[3] = new MonsterSpawnData((int)MonsterId.BlackBear, 1);
//            monsterSpawnList = new MonsterSpawnList(4, monsterSpawnData);
//
//            MonsterBaseData[] monsterBaseData = new MonsterBaseData[4];
//            monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog");
//            monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5));
//            monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck");
//            monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4));
//            monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit");
//            monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 100, 4));
//			monsterBaseData[3] = new MonsterBaseData((int)MonsterId.BlackBear, "BlackBear");
//			monsterBaseData[3].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 4));
//            dungeonData = new MonsterStatusData(4, monsterBaseData);

            SetMonsterSpawnList(monsterSpawnList);
            SpawnMonster();
            SetMonsterStatus();
        }
//		if (GameObject.FindGameObjectWithTag("GameManager") == null)
//		{
//			//스폰 포인트 찾기
//			InitializeMonsterSpawnPoint();
//
//			//서버에서 온 데이터 : monsterSpawnData
//			//여기서는 직접 데이터를 설정
//			MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[1];
//			monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Bear, 1);
//			//monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.BlackBear, 1);
//
//			//던전 데이터에서 몬스터 스폰 리스트를 monsterSpawnData로 설정
//			//그러면 몬스터 생성 숫자가 설정됨(종류, 개수)
//			monsterSpawnList = new MonsterSpawnList(1, monsterSpawnData);
//
//			//서버에서 온 데이터 : monsterBaseData
//			MonsterBaseData[] monsterBaseData = new MonsterBaseData[1];
//			monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Bear, "Bear");
//			monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30,1));
//
//			//던전 데이터에서 몬스터 스탯테이블을 monsterBaseData로 설정
//			//그러면 위의 몬스터 생성할때 스탯이 이렇게 설정됨
//			dungeonData = new MonsterStatusData(1, monsterBaseData);
//
//			SpawnMonster();
//			SetMonsterStatus();
//		}
    }
Exemplo n.º 4
0
 GameObject Spawn(MonsterSpawnData data)
 {
     return(objectPool.PopFromPool(data.name.ToString(), data.spawnPoint));
 }
Exemplo n.º 5
0
    void Start()
    {
        //test
        if (GameObject.FindGameObjectWithTag("GameManager") == null)
        {
            players = GameObject.FindGameObjectsWithTag("Player");
        }

        //Instantiate 스폰포인트 생성조건 - > mapNumber != 2;
        mapNumber  = 2;
        normalMode = false;

        DungeonConstruct();

        if (GameObject.FindGameObjectWithTag("GameManager") == null)
        {
            InitializeMonsterSpawnPoint();

            MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[3];
            monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 9);
            monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 12);
            monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 6);
            monsterSpawnList    = new MonsterSpawnList(3, monsterSpawnData);

            MonsterBaseData[] monsterBaseData = new MonsterBaseData[3];
            monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog");
            monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5));
            monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck");
            monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4));
            monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit");
            monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 75, 4));
            dungeonData = new MonsterStatusData(3, monsterBaseData);

            SetMonsterSpawnList(monsterSpawnList);
            SpawnMonster();
            SetMonsterStatus();
        }
//		if (GameObject.FindGameObjectWithTag("GameManager") == null)
//		{
//			//스폰 포인트 찾기
//			InitializeMonsterSpawnPoint();
//
//			//서버에서 온 데이터 : monsterSpawnData
//			//여기서는 직접 데이터를 설정
//			MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[1];
//			monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Bear, 1);
//			//monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.BlackBear, 1);
//
//			//던전 데이터에서 몬스터 스폰 리스트를 monsterSpawnData로 설정
//			//그러면 몬스터 생성 숫자가 설정됨(종류, 개수)
//			monsterSpawnList = new MonsterSpawnList(1, monsterSpawnData);
//
//			//서버에서 온 데이터 : monsterBaseData
//			MonsterBaseData[] monsterBaseData = new MonsterBaseData[1];
//			monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Bear, "Bear");
//			monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30,1));
//
//			//던전 데이터에서 몬스터 스탯테이블을 monsterBaseData로 설정
//			//그러면 위의 몬스터 생성할때 스탯이 이렇게 설정됨
//			dungeonData = new MonsterStatusData(1, monsterBaseData);
//
//			SpawnMonster();
//			SetMonsterStatus();
//		}
    }
Exemplo n.º 6
0
    private void InitMapCfg(string path)
    {
        TextAsset xml = Resources.Load <TextAsset>(path);

        if (!xml)
        {
            Debug.LogError("xml file " + path + "not exist");
        }
        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);

                MapCfg mc = new MapCfg()
                {
                    id         = ID,
                    monsterLst = new List <MonsterSpawnData>(),
                };

                foreach (XmlElement e in nodLst[i].ChildNodes)
                {
                    switch (e.Name)
                    {
                    case "mapName":
                        mc.mapName = e.InnerText;
                        break;

                    case "sceneName":
                        mc.sceneName = e.InnerText;
                        break;

                    case "power":
                        mc.power = int.Parse(e.InnerText);
                        break;

                    case "mainCamPos":
                    {
                        string[] valArr = e.InnerText.Split(',');
                        mc.mainCamPos = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]),
                                                    float.Parse(valArr[2]));
                    }
                    break;

                    case "mainCamRote":
                    {
                        string[] valArr = e.InnerText.Split(',');
                        mc.mainCamRote = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]),
                                                     float.Parse(valArr[2]));
                    }
                    break;

                    case "playerBornPos":
                    {
                        string[] valArr = e.InnerText.Split(',');
                        mc.playerBornPos = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]),
                                                       float.Parse(valArr[2]));
                    }
                    break;

                    case "playerBornRote":
                    {
                        string[] valArr = e.InnerText.Split(',');
                        mc.playerBornRote = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]),
                                                        float.Parse(valArr[2]));
                    }
                    break;

                    case "monsterLst":
                    {
                        string[] monsteArr = e.InnerText.Split('#');
                        for (int waveIdx = 0; waveIdx < monsteArr.Length; waveIdx++)
                        {
                            if (string.IsNullOrEmpty(monsteArr[waveIdx]))
                            {
                                continue;
                            }

                            string[] numberArr = monsteArr[waveIdx].Split('|');
                            for (int numIdx = 0; numIdx < numberArr.Length; numIdx++)
                            {
                                if (string.IsNullOrEmpty(numberArr[numIdx]))
                                {
                                    continue;
                                }

                                string[]         strArr = numberArr[numIdx].Split(',');
                                MonsterSpawnData msd    = new MonsterSpawnData();
                                msd.mWave    = waveIdx;
                                msd.mIndex   = numIdx;
                                msd.id       = int.Parse(strArr[0]);
                                msd.mBornpos = new Vector3(float.Parse(strArr[1]), float.Parse(strArr[2]),
                                                           float.Parse(strArr[3]));
                                msd.mBornRote = new Vector3(0, float.Parse(strArr[4]), 0);
                                msd.mLevel    = int.Parse(strArr[5]);
                                msd.mCfg      = GetMonsterCfg(msd.id);
                                mc.monsterLst.Add(msd);
                            }
                        }
                    }
                    break;
                    }
                }

                mapDic.Add(ID, mc);
            }
        }
    }