Esempio n. 1
0
    void UpdateBothSideWideStreetBuildFence(MapBuildingFence mainBuildData, bool showMainBuild, FencePosition mainBuildSide, FencePosition oppositeBuildSide, Vector2Int oppositeBuildCoord)
    {
        if (PosValid(oppositeBuildCoord))//如果对面是在地图里面的
        {
            var oppositeBuildFenceData = GetBuildingFenceData(oppositeBuildCoord);
            if (oppositeBuildFenceData == null)
            {
                return;
            }

            if (ActivedCoords.Contains(oppositeBuildCoord))                          //如果对面是激活的
            {
                mainBuildData.ShowFence(mainBuildSide, false);                       //自己则永远不激活临近的一面

                oppositeBuildFenceData.ShowFence(oppositeBuildSide, !showMainBuild); //对面则看自己是否激活来确定激活临近自己这一边
            }
            else
            {
                mainBuildData.ShowFence(mainBuildSide, showMainBuild);
                oppositeBuildFenceData.ShowFence(oppositeBuildSide, false);
            }
        }
        else
        {
            mainBuildData.ShowFence(mainBuildSide, showMainBuild);
        }
    }
Esempio n. 2
0
    void UpdateBuildingOneFence(Vector2Int nearBuildingCoord, bool showBuilding, int nearBuildingIndex, MapBuildingFence buildFenceData)
    {
        var nearBy    = nearBuildingCoord;
        var showFence = false;

        if (ActivedCoords.Contains(nearBy))//临近建筑激活,那么自己显示则墙不显示,状态相反
        {
            showFence = !showBuilding;
        }
        else
        {
            showFence = showBuilding;
        }

        buildFenceData.ShowFence((FencePosition)nearBuildingIndex, showFence);
    }