예제 #1
0
    public void constructionBuildingCancel()
    {
        if (logicState == LOGIC_STATE.DELETING)
        {
            deletingCancel();
        }
        else
        {
            BUILDING_INFO.clearRepresentation();

            if (BUILDING_INFO.terrainID == TileTerrainType.BUILDING)
            {
                Building building = BuildingsManager.GetInstance().getBuilding(BUILDING_INFO.buildingID);
                UserDataManager.GetInstance().gold.addGold(building.getInitialCost());
            }
            else if (BUILDING_INFO.terrainID == TileTerrainType.RICE_TERRAIN)
            {
                UserDataManager.GetInstance().gold.addGold(WorldTerrain.PRICE_RiceChunk);
            }
            else if (BUILDING_INFO.terrainID == TileTerrainType.CANAL)
            {
                WorldTerrain wt = WorldTerrain.GetInstance();
                wt.cancelCanalsTmp();
            }
        }

        if (_buildingPanel != null)
        {
            _buildingPanel.SendMessage("kill");
        }

        logicState = LOGIC_STATE.DEFAULT;
    }
예제 #2
0
    public void constructionBuildingConfirm()
    {
        if (logicState == LOGIC_STATE.DELETING)
        {
            deletingConfirm();
        }
        else
        {
            if (BUILDING_INFO.terrainID == TileTerrainType.BUILDING)
            {
                buildBuilding(BUILDING_INFO.buildingID, _tileSelectedPosition [0], _tileSelectedPosition [1]);

                Building building = BuildingsManager.GetInstance().getBuilding(BUILDING_INFO.buildingID);
                building.constructAtPos(_tileSelectedPosition [0], _tileSelectedPosition [1]);
            }
            else if (BUILDING_INFO.terrainID == TileTerrainType.RICE_TERRAIN)
            {
                WorldTerrain.GetInstance().createRiceChunk(_tileSelectedPosition [0], _tileSelectedPosition [1], false);
            }
            else if (BUILDING_INFO.terrainID == TileTerrainType.CANAL)
            {
                WorldTerrain wt = WorldTerrain.GetInstance();
                wt.confirmCanalsTmp();
                UserDataManager.GetInstance().gold.espendGold(_buildingPanel.GetComponent <MultipleBuildingPanel> ().getCost());
            }
            BUILDING_INFO.clearRepresentation();
        }

        logicState = LOGIC_STATE.DEFAULT;
    }
예제 #3
0
        /// <summary>
        /// 初始化宿舍楼名称列表
        /// </summary>
        private void init_building()
        {
            Student.BLL.BUILDING_INFO buildingBll = new BUILDING_INFO();
            DataSet ds = buildingBll.GetAllList();

            this.cbb_buildingname.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
            cbb_buildingname.Properties.Items.Clear();
            cbb_buildingname.EditValue           = null;
            cbb_buildingname.Properties.NullText = "--请选择--";

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                string buildingName = ds.Tables[0].Rows[i]["BUILDINGNAME"].ToString();
                this.cbb_buildingname.Properties.Items.Add(buildingName);
            }
        }
예제 #4
0
    private void setBuildingBuildingRepresentation()
    {
        BUILDING_INFO.clearRepresentation();          // ++++++++++++++ no reload

        Building building = BuildingsManager.GetInstance().getBuilding(BUILDING_INFO.buildingID);

        BUILDING_INFO.representation.Add(building.instantiateBuildingRepresentation(_tileSelectedPosition [0], _tileSelectedPosition [1]));

        //es pot construir?
        uint         b_w            = building.getHorizontalTiles();
        uint         b_h            = building.getVerticalTiles();
        uint         b_i            = _tileSelectedPosition [0];
        uint         b_j            = _tileSelectedPosition [1];
        WorldTerrain wt             = WorldTerrain.GetInstance();
        bool         esPotConstruir = wt.isEmpty(b_i, b_j, b_w, b_h) && !wt.tileContainsVegetation(b_i, b_j);

        BUILDING_INFO.representation[0].GetComponent <SpriteRenderer>().color = esPotConstruir ? Color.yellow : Color.red;
        BUILDING_INFO.esPotConstruir = esPotConstruir;
    }
예제 #5
0
    private void setBuildingRiceChunkRepresentation()
    {
        BUILDING_INFO.clearRepresentation();          // ++++++++++++++ no reload
        BUILDING_INFO.esPotConstruir = true;

        WorldTerrain wt = WorldTerrain.GetInstance();

        uint iSel = _tileSelectedPosition [0];
        uint jSel = _tileSelectedPosition [1];

        for (uint i = iSel - WorldTerrain.RICE_CHUNK_SEPARATION; i < iSel + WorldTerrain.RICE_CHUNK_H + WorldTerrain.RICE_CHUNK_SEPARATION; ++i)
        {
            for (uint j = jSel - WorldTerrain.RICE_CHUNK_SEPARATION; j < jSel + WorldTerrain.RICE_CHUNK_W + WorldTerrain.RICE_CHUNK_SEPARATION; ++j)
            {
                Vector3 worldPosition = wt.getTileWorldPosition(i, j);
                worldPosition.z = WorldTerrain.BUILDING_ABOVE_Z_LAYER;

                bool isSeparator = (i < iSel || i >= iSel + WorldTerrain.RICE_CHUNK_H ||
                                    j < jSel || j >= jSel + WorldTerrain.RICE_CHUNK_W);

                GameObject sprite_template = wt.getResource(isSeparator ? TileTerrainIDs.SEPARATOR : TileTerrainIDs.WATER);
                GameObject sprite_inst     = (GameObject)GameObject.Instantiate(sprite_template, worldPosition, Quaternion.identity);
                bool       esPotConstruir;
                if (isSeparator)
                {
                    esPotConstruir = wt.getTypeTerrainOfTile(i, j) == TileTerrainType.SEPARATOR || wt.getTypeTerrainOfTile(i, j) == TileTerrainType.FREE || wt.getTypeTerrainOfTile(i, j) == TileTerrainType.CANAL;
                }
                else
                {
                    esPotConstruir = wt.getTypeTerrainOfTile(i, j) == TileTerrainType.FREE || wt.getTypeTerrainOfTile(i, j) == TileTerrainType.CANAL;
                }
                esPotConstruir = esPotConstruir && !wt.tileContainsVegetation(i, j);
                sprite_inst.GetComponent <SpriteRenderer>().color = esPotConstruir ? Color.yellow : Color.red;

                BUILDING_INFO.esPotConstruir = BUILDING_INFO.esPotConstruir && esPotConstruir;
                BUILDING_INFO.representation.Add(sprite_inst);
            }
        }
    }
예제 #6
0
 /// <summary>
 /// 删除数据方法
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 private bool deleteData(int id)
 {
     try
     {
         BLL.DORMITORY_INFO dormitoryBll = new DORMITORY_INFO();
         int recordCount = dormitoryBll.GetRecordCount("BUILDINGID = " + id.ToString());
         if (recordCount > 0)
         {
             MessageBox.Show("该宿舍楼信息已经被使用,不能被删除!", "提示信息");
             return(false);
         }
         else
         {
             BLL.BUILDING_INFO buildingBll = new BUILDING_INFO();
             buildingBll.Delete(id);
             return(true);
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show("删除失败!", exception.Message);
         return(false);
     }
 }