Exemplo n.º 1
0
    WallBehavior  GetWallBehavior(BuildingObstacleDirection wallDirection, int index /*,TilePosition tilePosition*/)
    {
        //return SceneManager.Instance.GetBuildingObjectFromBuildingObstacleMap(tilePosition.Row, tilePosition.Column).GetComponent<WallBehavior>();
        TilePosition tilePosition = null;

        switch (wallDirection)
        {
        case BuildingObstacleDirection.Top:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row + index);
            break;

        case BuildingObstacleDirection.Bottom:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row - index);
            break;

        case BuildingObstacleDirection.Left:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column - index, this.BuildingLogicData.BuildingPosition.Row);
            break;

        case BuildingObstacleDirection.Right:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column + index, this.BuildingLogicData.BuildingPosition.Row);
            break;
        }
        return(SceneManager.Instance.GetBuildingObjectFromBuildingObstacleMap(tilePosition.Row, tilePosition.Column).GetComponent <WallBehavior>());
    }
Exemplo n.º 2
0
    public Nullable <bool> FindNeighourWallNotNull(BuildingObstacleDirection wallDirection, int index)
    {
        TilePosition      tilePosition      = null;
        BuildingLogicData buildingLogicData = null;

        switch (wallDirection)
        {
        case BuildingObstacleDirection.Top:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row + index);

            break;

        case BuildingObstacleDirection.Bottom:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row - index);

            break;

        case BuildingObstacleDirection.Left:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column - index, this.BuildingLogicData.BuildingPosition.Row);

            break;

        case BuildingObstacleDirection.Right:
            tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column + index, this.BuildingLogicData.BuildingPosition.Row);
            break;
        }

        IObstacleInfo obstacleInfo = SceneManager.Instance.GetBuildingInfoFormBuildingObstacleMap(tilePosition.Row, tilePosition.Column);

        if (obstacleInfo == null)
        {
            return(null);
        }
        else
        {
            buildingLogicData = obstacleInfo as BuildingLogicData;
            if (buildingLogicData != null)
            {
                if (buildingLogicData.BuildingIdentity.buildingType == BuildingType.Wall)
                {
                    return(true);
                }
                else
                {
                    return(null);
                }
            }
            return(null);
        }
    }
Exemplo n.º 3
0
    public void SetWallSprite(BuildingObstacleDirection direction, bool isActive)
    {
        //print("SetWallSprite");
        switch (direction)
        {
        case BuildingObstacleDirection.Top:
            //m_Tk2dSpriteWall[0].color = isActive ? Color.white : Color.clear;
            m_Tk2dSpriteWall[0].gameObject.SetActive(isActive);
            break;

        case BuildingObstacleDirection.Right:
            //m_Tk2dSpriteWall[1].color = isActive ? Color.white : Color.clear;
            m_Tk2dSpriteWall[1].gameObject.SetActive(isActive);
            break;
        }
    }
Exemplo n.º 4
0
    WallBehavior FindNeighourWallBehavior(BuildingObstacleDirection wallDirection, TilePosition refTilePosition, int index)
    {
        TilePosition tilePositionNext = null;
        GameObject   go = null;

        switch (wallDirection)
        {
        case BuildingObstacleDirection.Top:
            tilePositionNext = new TilePosition(refTilePosition.Column, refTilePosition.Row + index);
            break;

        case BuildingObstacleDirection.Bottom:
            tilePositionNext = new TilePosition(refTilePosition.Column, refTilePosition.Row - index);
            break;

        case BuildingObstacleDirection.Left:
            tilePositionNext = new TilePosition(refTilePosition.Column - index, refTilePosition.Row);
            break;

        case BuildingObstacleDirection.Right:
            tilePositionNext = new TilePosition(refTilePosition.Column + index, refTilePosition.Row);
            break;
        }
        if (tilePositionNext.Row < 0 || tilePositionNext.Column < 0 || tilePositionNext.Row >= ClientSystemConstants.BUILDING_TILE_MAP_SIZE.height || tilePositionNext.Column >= ClientSystemConstants.BUILDING_TILE_MAP_SIZE.width)
        {
            return(null);
        }
        go = SceneManager.Instance.GetBuildingObjectFromBuildingObstacleMap(tilePositionNext.Row, tilePositionNext.Column);
        if (go == null)
        {
            return(null);
        }
        else
        {
            WallBehavior bhv = go.GetComponent <WallBehavior>();
            if (bhv.BuildingType == BuildingType.Wall)
            {
                return(bhv);//(WallBehavior)bhv.BuildingCommon;
            }
        }
        return(null);
    }
Exemplo n.º 5
0
    void SetWallActorObstacle(BuildingObstacleDirection wallDirection, int index, bool isActive)
    {
        switch (wallDirection)
        {
        case BuildingObstacleDirection.Top:
            SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row + index, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column] = isActive ? this.gameObject : null;
            break;

        case BuildingObstacleDirection.Bottom:
            SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row - index, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column] = isActive ? this.gameObject : null;
            break;

        case BuildingObstacleDirection.Left:
            SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column - index] = isActive ? this.gameObject : null;
            break;

        case BuildingObstacleDirection.Right:
            SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column + index] = isActive ? this.gameObject : null;
            break;
        }
    }