Esempio n. 1
0
    /// <summary>
    /// Istanzia la Meraviglia nella Mappa
    /// </summary>
    /// <param name="_meraviglia"></param>
    void SetupMeraviglia(BuildingData _meraviglia)
    {
        BuildingView currentBuildView;

        foreach (var item in gridController.Cells)
        {
            if (!OneMeravigliaInGioco)
            {
                if (item.Type == CellDoomstock.CellType.Meraviglia)
                {
                    currentBuildView = buildingManager.CreateBuild(Meraviglia);
                    currentBuildView.transform.position = new Vector3(item.WorldPosition.x - (CellSize / 2) + 1.05f, item.WorldPosition.y - (CellSize / 2) - 0.26f, item.WorldPosition.z + 1.2f);
                    OneMeravigliaInGioco = true;
                    MeravigliasInScene   = currentBuildView;
                    item.SetStatus(CellDoomstock.CellStatus.Filled, currentBuildView.Data);
                }
            }


            if (item.Type == CellDoomstock.CellType.Meraviglia)
            {
                item.Cost = 100;
            }
        }
    }
 public BuildingView SaveAsync(BuildingView cls)
 {
     try
     {
         var headers = Request.Headers?.ToList();
         if (headers == null || headers.Count <= 0)
         {
             return(null);
         }
         var guid = Request.Headers.GetValues("cusGuid").FirstOrDefault();
         if (string.IsNullOrEmpty(guid))
         {
             return(null);
         }
         var cusGuid = Guid.Parse(guid);
         if (!Assistence.CheckCustomer(cusGuid))
         {
             return(null);
         }
         db.BuildingViews.AddOrUpdate(cls);
         db.SaveChanges();
         Assistence.SaveLog(cusGuid, cls.Guid, EnTemp.BuildingView);
         return(cls);
     }
     catch (Exception ex)
     {
         WebErrorLog.ErrorInstence.StartErrorLog(ex);
         return(null);
     }
 }
Esempio n. 3
0
 void OnBuildingDebrisRemove(BuildingView _buildingView)
 {
     if (BuildingsInScene.Contains(_buildingView))
     {
         BuildingsInScene.Remove(_buildingView);
     }
 }
Esempio n. 4
0
    public BuildingController(BuildingModel model, BuildingView view)
    {
        this.model = model;
        this.view  = view;

        model.OnNumberOfFloorsChanged += OnNumberOfFloorChanged;
    }
Esempio n. 5
0
 public void CheckCameraState(CameraStateSignal signal) // if camera is in RTS mode I subscribe to the cursor
 {
     if (signal.state != CameraState.RTS)
     {
         _selection = null;
         Destroy(_buldngCursor);
         return;
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Controlla la lista di tutti gli edifici in scena.Se la vita e' 0, distrugge gli edifici
 /// </summary>
 /// <param name="_buildingView"></param>
 public void DestroyBuildingsInScene(BuildingView _buildingView)
 {
     foreach (BuildingView building in GetAllBuildingInScene())
     {
         if (_buildingView.Data.BuildingLife <= 0)
         {
             Destroy(_buildingView.gameObject);
         }
     }
 }
Esempio n. 7
0
    /// <summary>
    /// Restituisce la view del data passato in parametro.
    /// </summary>
    public BuildingView CreateBuild(BuildingData _buildingDataPrefab)
    {
        BuildingData NewIstanceBuildingData;

        NewIstanceBuildingData = Instantiate(_buildingDataPrefab);
        BuildingView NewIstanceView = Instantiate(NewIstanceBuildingData.BuildPrefab);

        NewIstanceView.Init(NewIstanceBuildingData);
        NewIstanceView.Data.Population = new List <PopulationData>();
        return(NewIstanceView);
    }
Esempio n. 8
0
        public void PlaceChoosenBuilding()
        {
            BuildingView building = BuildingViews[_chosenBuldingId];

            for (int i = (int)building.PointOnPlane.x; i < building.PointOnPlane.x + building.scriptObj.Size.x; i++)
            {
                for (int j = (int)building.PointOnPlane.y; j < building.PointOnPlane.y + building.scriptObj.Size.y; j++)
                {
                    _planeManager.Tiles[i + _settingsManager.PlaneOffset][j + _settingsManager.PlaneOffset].IsFilled = true;
                }
            }
        }
Esempio n. 9
0
    public StructureTile CreateStructureFromType(StructureType type, BaseTileData data)
    {
        StructureTile newTile = null;

        StructureBinding structureBinding = BuildingManager.Instance.StructuresTemplates.GetStructureBindingFromType(type);

        if (structureBinding != null)
        {
            switch (type)
            {
            case StructureType.PowerPlant:
                newTile = new PowerPlantTile();
                break;

            case StructureType.Sawmill:
                newTile = new SawmillTile();
                break;

            case StructureType.PumpingStation:
                newTile = new PumpingStationTile();
                WaterClusterManager.Instance.RegisterPumpingStation(data);
                break;

            case StructureType.Village:
                newTile = new VillageTile();
                break;

            case StructureType.Mine:
                newTile = new MineTile();
                break;

            case StructureType.Relay:
                newTile = new RelayTile();
                break;

            case StructureType.MainRelay:
                newTile = new MainRelayTile();
                break;

            default:
                throw new MissingStructureTypeDefinitionException();
            }
            data.structureTile = newTile;
            BuildingView building = Instantiate(structureBinding.building, data.worldPosition, Quaternion.identity, transform);
            building.dataTile    = newTile;
            newTile._building    = building;
            newTile.GridPosition = data.GridPosition;
            ResourcesManager.Instance.RegisterStructure(newTile);
            RelayManager.Instance.RegisterStructure(data);
        }
        return(newTile);
    }
Esempio n. 10
0
    /// <summary>
    /// Istanzia una nuovo oggetto Building
    /// </summary>
    public override void DeployBuilding(BuildingData building)
    {
        base.DeployBuilding(building);

        if (CheckResources(building) == true)
        {
            BuildingView newInstanceOfView = GameManager.I.buildingManager.CreateBuild(building);
            newInstanceOfView.Data.PlayerOwner = this;
            CurrentBuildView = newInstanceOfView;
            CurrentBuildView.transform.localScale = new Vector3(GameManager.I.CellSize, GameManager.I.CellSize, GameManager.I.CellSize);
            CurrentBuildView.transform.position   = new Vector3(this.transform.position.x, this.transform.position.y - (GameManager.I.CellSize / 2) - 0.5f, this.transform.position.z + 0.1f);
            GameManager.I.gridController.Cells[XpositionOnGrid, YpositionOnGrid].SetStatus(CellDoomstock.CellStatus.Filled, newInstanceOfView.Data);
            GameManager.I.uiManager.SetResourcesTextColor();
            BuildingsInScene.Add(newInstanceOfView);
        }
        CurrentBuildView = null;
    }
Esempio n. 11
0
    public void AddBuilding(BuildingView building)
    {
        if (BuildingPositions == null)
        {
            return;
        }
        if (Buildings == null)
        {
            Buildings = new List <BuildingView>();
        }

        if (!HasBuildSpace)
        {
            return;
        }
        Buildings.Add(building);
        building.ConnectedPlanet = this;
        building.SetPosition(BuildingPositions[Buildings.IndexOf(building)]);
    }
Esempio n. 12
0
    public void SelectBuilding(BuildingView building)
    {
        if (_selection != building && _selection != null)
        {
            _buldngCursor.gameObject.SetActive(false);
        }

        if (!_selectedBuildings.ContainsKey(building.name))
        {
            _selection = building;
            BuildingView cursor = Instantiate(_selection);
            _selectedBuildings.Add(building.name, cursor);
            _buldngCursor = cursor;
        }
        else
        {
            _selection    = _selectedBuildings[building.name];
            _buldngCursor = _selection;
            _buldngCursor.gameObject.SetActive(true);
        }
    }
Esempio n. 13
0
        public void MoveBuilding(Vector2 worldPoint)
        {
            BuildingView building = BuildingViews[_chosenBuldingId];

            worldPoint   = GridSnap(worldPoint);
            worldPoint.x = Mathf.Clamp(worldPoint.x, 0, _planeManager.Tiles.Count - 1);

            if (IsCanBuildOnPoint(building.scriptObj, worldPoint))
            {
                for (int i = (int)building.PointOnPlane.x; i < building.PointOnPlane.x + building.scriptObj.Size.x; i++)
                {
                    for (int j = (int)building.PointOnPlane.y; j < building.PointOnPlane.y + building.scriptObj.Size.y; j++)
                    {
                        _planeManager.Tiles[i + _settingsManager.PlaneOffset][j + _settingsManager.PlaneOffset].IsFilled = false;
                    }
                }

                building.SelfTransform.position = new Vector3(worldPoint.x, 0, worldPoint.y);
                building.PointOnPlane           = worldPoint;
            }
        }
Esempio n. 14
0
 public PlacedEntity(BuildingView view, CollisionTrigger trigger, BuidingProfile profile)
 {
     _view    = view;
     _trigger = trigger;
     _profile = profile;
 }
Esempio n. 15
0
 void RefreshList(BuildingView _buildingDestroyed)
 {
     StartCoroutine(RefreshActualList());
 }
Esempio n. 16
0
    private void OnEvent(TimedEventData _eventData)
    {
        #region Birth
        if (_eventData.ID == "Birth")
        {
            if (GameManager.I.GetResourceDataByID("Food").Value > 0 && GameManager.I.buildingManager.IsThereAnySpace())
            {
                PopulationData newUnit = CreatePopulation();
                AddPopulation(newUnit);
                AllPopulation.Add(newUnit);
                BuildingView firstOpening = GameManager.I.buildingManager.GetFirstOpening();
                firstOpening.Data.Population.Add(newUnit);
                GameManager.I.messagesManager.ShowiInformation(MessageLableType.Birth, firstOpening.Data.Cell);
            }
        }
        #endregion

        #region FineMese
        if (_eventData.ID == "FineMese")
        {
            for (int i = 0; i < AllPopulation.Count; i++)
            {
                AllPopulation[i].Month++;

                if (AllPopulation[i].Month >= 12)
                {
                    AllPopulation[i].MaxAge--;
                    if (AllPopulation[i].MaxAge <= 0)
                    {
                        AllPopulation[i].Month = 0;
                    }
                }
            }
        }
        #endregion

        #region Food
        if (_eventData.ID == "Eat")
        {
            for (int i = 0; i < AllPopulation.Count; i++)
            {
                int eatingTime = AllPopulation[i].EatingTime;
                AllPopulation[i].EatingTime--;
                if (AllPopulation[i].EatingTime <= 0)
                {
                    AllPopulation[i].EatingTime = 0;
                    GameManager.I.GetResourceDataByID("Food").Value -= AllPopulation[i].FoodRequirements;
                    if (AllPopulation[i].EatingTime <= 0)
                    {
                        AllPopulation[i].EatingTime = eatingTime;
                    }
                    #region morte di fame
                    if (GameManager.I.GetResourceDataByID("Food").Value <= 0)
                    {
                        GameManager.I.GetResourceDataByID("Food").Value = 0;
                        GameManager.I.uiManager.FoodText.color          = Color.red;
                        UnitDeath(AllPopulation[i]);
                    }
                    #endregion
                }
            }
        }
    }