Esempio n. 1
0
        //主要操作的还是Troop
        //必须先把数据data准备好,然后才是Entity
        public void  AddTroop(int troopTypeid, DCityBuilding dcityfrom, Vector3 bornpos, Vector3 movetopos, int soldiernum, int personid1, int personid2, int personid3)
        {
            // step1 设置数据对象
            DTroop dtroop = DataMgr.Instacne.AddNewTroopData(troopTypeid, personid1, personid2, personid3);

            dtroop.origsoldiernum = soldiernum;
            dtroop.cursoldiernum  = soldiernum;

            //step2 生成gameobject 设置entity对象
            GameObject prefab = ResMgr.Instacne.dic_TroopPrefab[troopTypeid];
            GameObject go     = Instantiate(prefab) as GameObject;

            go.transform.position = bornpos;
            go.transform.SetParent(troopEntityParent, true); //这个设置不设置不影响坐标,因为troopEntityParent 本身就在原点
            Troop troop = go.GetComponent <Troop>();

            //需要建立Data对象  这里先忽略,直接使用prefab数据
            troop.Data = dtroop;
            dic_Troop.Add(troop.ID, troop);
            go.SetActive(true);
            HudMgr.Instacne.AddHudTroop(troop.ID);

            //step3 设置父子关系
            //设置city 数据对象的子对象id
            dcityfrom.idlist_troop.Add(dtroop.id);
            //子对象设置父对象id
            dtroop.parentid_city = dcityfrom.id;

            troop.targetType = ETroopTargetType.MoveToPoint;
            troop.CommandMoveToPoint(movetopos);
        }
Esempio n. 2
0
        private void LoadCity(string fold)
        {
            string filePath = fold + "/city.csv";

            cityFile = new CSVFile();
            cityFile.ReadCsv(filePath);
            dic_City.Clear();
            foreach (string[] arr in cityFile.valueLines)
            {
                if (arr.Length != 16)
                {
                    LogTool.LogError("city arr.length" + arr.Length);
                    continue;
                }
                DCityBuilding city = new DCityBuilding();
                city.id                 = int.Parse(arr[0]);
                city.alias              = arr[1];
                city.shortdesc          = arr[2];
                city.fulldesc           = arr[3];
                city.food               = int.Parse(arr[4]);
                city.money              = int.Parse(arr[5]);
                city.population         = int.Parse(arr[6]);
                city.curhp              = int.Parse(arr[7]);
                city.curtotalsoldiernum = int.Parse(arr[8]);
                city.mingxin            = int.Parse(arr[9]);
                city.zhian              = int.Parse(arr[10]);
                city.id_leadperson      = int.Parse(arr[11]);
                city.idlist_pbuilding   = CommonUtil.StringToListInt(arr[12], '#');
                city.idlist_troop       = CommonUtil.StringToListInt(arr[13], '#'); //只保存一级子类
                foreach (int troopid in city.idlist_troop)                          //子对象的一级父类在这初始化
                {
                    if (troopid != -1 && dic_Troop.ContainsKey(troopid))
                    {
                        DTroop troop = DataMgr.Instacne.dic_Troop[troopid];
                        troop.parentid_city = city.id;
                    }
                }
                city.idlist_person     = CommonUtil.StringToListInt(arr[14], '#');
                city.idlist_freeperson = CommonUtil.StringToListInt(arr[15], '#');
                dic_City.Add(city.id, city);
            }
            EntityMgr.Instacne.InitAllCityData();
        }
Esempio n. 3
0
        private void LoadSection(string fold)
        {
            string filePath = fold + "/section.csv";

            sectionFile = new CSVFile();
            sectionFile.ReadCsv(filePath);
            dic_Section.Clear();
            foreach (string[] arr in sectionFile.valueLines)
            {
                if (arr.Length != 6)
                {
                    LogTool.LogError("section arr.length" + arr.Length);
                    continue;
                }
                DSection dsection = new DSection();
                dsection.id            = int.Parse(arr[0]);
                dsection.alias         = arr[1];
                dsection.shortdesc     = arr[2];
                dsection.fulldesc      = arr[3];
                dsection.id_leadperson = int.Parse(arr[4]);
                dsection.idlist_city   = CommonUtil.StringToListInt(arr[5], '#'); //只保存一级子类
                foreach (int cityid in dsection.idlist_city)                      //子对象的一级父类在这初始化
                {
                    if (cityid != -1 && dic_City.ContainsKey(cityid))
                    {
                        DCityBuilding city = dic_City[cityid];
                        city.parentid_section = dsection.id;
                    }
                    else
                    {
                        LogTool.LogError("can not find city id" + cityid);
                    }
                }
                dic_Section.Add(dsection.id, dsection);
                EntityMgr.Instacne.AddSectionFromData(dsection.id);
            }
        }