Example #1
0
    public virtual void SetLocKRoom(Direct[] directs)
    {
        LockRooms = new List <LockRoom>();
        for (int i = 0; i < directs.Length; i++)
        {
            LockRoom a = null;
            switch (directs[i])
            {
            case Direct.Left:
                a = Instantiate(DataMap.GetLockRoomPrefab(LockRoomDatas.Direct.Vertical), transform);
                a.transform.position = (Vector2)Data.GetPositionOutSide(Direct.Left);
                break;

            case Direct.Right:
                a = Instantiate(DataMap.GetLockRoomPrefab(LockRoomDatas.Direct.Vertical), transform);
                a.transform.position = (Vector2)Data.GetPositionOutSide(Direct.Right) + Vector2.left;
                break;

            case Direct.Up:
                a = Instantiate(DataMap.GetLockRoomPrefab(LockRoomDatas.Direct.Horizontal), transform);
                a.transform.position = (Vector2)Data.GetPositionOutSide(Direct.Up) + Vector2.down;
                break;

            case Direct.Down:
                a = Instantiate(DataMap.GetLockRoomPrefab(LockRoomDatas.Direct.Horizontal), transform);
                a.transform.position = (Vector2)Data.GetPositionOutSide(Direct.Down);
                break;
            }
            if (a != null)
            {
                LockRooms.Add(a);
            }
        }
    }
Example #2
0
    private void SetUpRounds()
    {
        // SetUpInfo
        Vector2Int positionCurrent = PositionPlayerStart;

        rounds = DataMap.GetRoundDatas();
        Direct lasDir = Direct.Down;

        for (int i = 0; i < rounds.NumberRound - 1; i++)
        {
            RoundData roundCurrent = rounds.GetRound(i);
            roundCurrent.position = positionCurrent;
            List <Direct> drs = new List <Direct>();
            drs.Add(Direct.Left);
            drs.Add(Direct.Right);
            drs.Add(Direct.Up);
            if (lasDir == Direct.Right)
            {
                roundCurrent.AddDirect(Direct.Left);
                drs.Remove(Direct.Left);
            }
            if (lasDir == Direct.Left)
            {
                roundCurrent.AddDirect(Direct.Right);
                drs.Remove(Direct.Right);
            }
            if (lasDir == Direct.Up)
            {
                roundCurrent.AddDirect(Direct.Down);
            }
            int a = Random.Range(0, drs.Count);
            lasDir = drs[a];
            roundCurrent.AddDirect(lasDir);
            positionCurrent = GetNewPosition(positionCurrent, lasDir);
        }
        RoundData bossRound = rounds.GetRound(rounds.NumberRound - 1);

        bossRound.position = positionCurrent;
        if (lasDir == Direct.Right)
        {
            bossRound.AddDirect(Direct.Left);
        }
        if (lasDir == Direct.Left)
        {
            bossRound.AddDirect(Direct.Right);
        }
        if (lasDir == Direct.Up)
        {
            bossRound.AddDirect(Direct.Down);
        }
        for (int i = 0; i < rounds.NumberRound; i++)
        {
            RoundData r = rounds.GetRound(i);
            SetRoundData(r);
            DrawMap.Draw(r.textMap, (Vector3Int)r.position);
        }
        for (int i = 0; i < rounds.NumberRound - 1; i++)
        {
            RoundData  r1 = rounds.GetRound(i);
            RoundData  r2 = rounds.GetRound(i + 1);
            Vector2Int p1 = r1.position;
            Vector2Int p2 = r2.position;
            if (p1.x == p2.x)
            {
                DrawMap.DrawConnect((Vector3Int)r1.GetPositionOutSide(Direct.Up), (Vector3Int)r2.GetPositionOutSide(Direct.Down));
            }
            else
            if (p1.y == p2.y)
            {
                if (p1.x < p2.x)
                {
                    DrawMap.DrawConnect((Vector3Int)r1.GetPositionOutSide(Direct.Right), (Vector3Int)r2.GetPositionOutSide(Direct.Left));
                }
                else
                {
                    DrawMap.DrawConnect((Vector3Int)r2.GetPositionOutSide(Direct.Right), (Vector3Int)r1.GetPositionOutSide(Direct.Left));
                }
            }
        }
    }