Exemplo n.º 1
0
 public DTroop AddNewTroopData(int trooptypeid, int personid1, int personid2, int personid3)
 {
     if (dic_TroopType.ContainsKey(trooptypeid))
     {
         DTroop troop = new DTroop();
         int    id    = 1;
         for (int i = 1; i < 9999; i++)
         {
             if (dic_Troop.ContainsKey(i))
             {
                 id = i;
             }
         }
         troop.id           = id;
         troop.id_trooptype = trooptypeid;
         troop.id_person1   = personid1;
         troop.id_person2   = personid2;
         troop.id_person3   = personid3;
         dic_Troop.Add(id, troop);
         return(troop);
     }
     else
     {
         LogTool.LogError("can not find typeid" + trooptypeid);
         return(null);
     }
 }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
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();
        }