示例#1
0
        public override void Load(BuildingUnitData data)
        {
            baseData = dataBuilding = L.b.buildings[data.type];
            base.Load(data);

            FinishInit();
        }
示例#2
0
        public void Init(string configType, int player, NVector pos, Dictionary <string, int> cost)
        {
            Debug.Log($"{player}: Create unit {configType} at {pos}");
            baseData = dataUnit = L.b.units[configType];
            var calc = CalculatedData.Calc(dataUnit, cost);

            data = new BuildingUnitData();
            data.UnitInit(this, configType, -1, player, calc);
            data.pos = pos.Clone();

            //has a town?
            Town t = S.Towns().NearestTown(S.Player(player), pos, false);

            if (t != null)
            {
                int buildtime = L.b.modifiers[C.BuildRes].CalcModi(calc.buildTime, S.Player(player), pos);

                data.townId = t.id;
                gameObject.AddComponent <Construction>().Init(data, cost, this, buildtime);
                S.Player(player).fog.Clear(pos);
            }
            else
            {
                Clear(pos);
            }

            FinishInit();
        }
示例#3
0
 public void Init(BuildingUnitData data, Dictionary <string, int> construction, MapElementInfo info, int buildTime)
 {
     data.constructionOrg = new Dictionary <string, int>(construction);
     data.construction    = construction;
     data.construction.Add(C.BuildRes, buildTime + 1);
     data.buildTime = buildTime;
     this._data     = data;
     this._info     = info;
 }
示例#4
0
        public BuildingInfo Load(BuildingUnitData data)
        {
            //exist?
            if (!L.b.buildings.ContainsKey(data.type))
            {
                Debug.LogError($"Building {data.type} ({data.pos}) not exist");
                S.Player(data.playerId).info.Add(new Info($"Building {data.type} ({data.pos}) not exist", "no"));
                return(null);
            }

            BuildingInfo bi = Instantiate(buildPrefab, GameMgmt.Get().newMap.levels[data.pos.level].buildings.transform);

            bi.Load(data);
            buildings.Add(bi);
            return(bi);
        }
示例#5
0
        public void Init(int town, string configType, NVector pos, Dictionary <string, int> cost)
        {
            Debug.Log($"Create building {configType} at {pos} for town {town}");
            baseData = dataBuilding = L.b.buildings[configType];
            var calc = CalculatedData.Calc(dataBuilding, cost);

            data = new BuildingUnitData();
            data.BuildingInit(this, configType, town, calc);
            data.pos = pos.Clone();

            int buildtime = L.b.modifiers[C.BuildRes].CalcModi(calc.buildTime, S.Towns().Get(town).Player(), pos);

            gameObject.AddComponent <Construction>().Init(data, cost, this, buildtime);

            S.Player(Town().playerId).fog.Clear(pos);

            FinishInit();
        }
示例#6
0
 public void Load(BuildingUnitData data)
 {
     this._info = GetComponent <MapElementInfo>();
     this._data = data;
 }