Example #1
0
 void GenerateRoom(int[] mapArray) //Generate Room according to the map array
 {
     roomList = new List <GameObject>();
     foreach (var item in mapArray.Select((v, i) => new { v, i }))
     {
         GameObject       room       = Instantiate(roomDictionary[item.v], new Vector3((item.i % mapWidth) * roomSpacing + 0.5f, 0, Mathf.Floor(item.i / mapHeight) * roomSpacing + 0.5f), Quaternion.identity);
         BattleRoomScript roomScript = room.GetComponent <BattleRoomScript>();
         roomScript.thisRoomRaw    = item.i % mapWidth;
         roomScript.thisRoomColumn = item.i / mapHeight;
         room.name = "Room " + item.i;
         room.GetComponent <BattleRoomScript>().changeType(item.v);
         room.transform.parent = this.transform;
         if (item.i == startPoint) //initialize player position to start room
         {
             player.transform.position         = room.transform.position;
             DungeonManager.Ins.currentRoomNum = startPoint;
         }
         roomList.Add(room);
     }
     foreach (GameObject room in roomList)
     {
         BattleRoomScript roomScript = room.GetComponent <BattleRoomScript>();
         roomScript.RightRoom = GetRoomByAxis(roomScript.thisRoomRaw + 1, roomScript.thisRoomColumn);
         roomScript.LeftRoom  = GetRoomByAxis(roomScript.thisRoomRaw - 1, roomScript.thisRoomColumn);
         roomScript.UpRoom    = GetRoomByAxis(roomScript.thisRoomRaw, roomScript.thisRoomColumn + 1);
         roomScript.DownRoom  = GetRoomByAxis(roomScript.thisRoomRaw, roomScript.thisRoomColumn - 1);
         roomScript.hasLoaded = true;
     }
 }
Example #2
0
    /// <summary>
    /// 检查两个房间是否相邻
    /// </summary>
    /// <param name="roomA"></param>
    /// <param name="roomB"></param>
    /// <returns></returns>
    bool judgeNerabyRoom(GameObject roomA, GameObject roomB)
    {
        bool             flag    = false;
        BattleRoomScript scriptA = roomA.GetComponent <BattleRoomScript>();

        if (scriptA.LeftRoom == roomB)
        {
            flag = true;
        }
        if (scriptA.RightRoom == roomB)
        {
            flag = true;
        }
        if (scriptA.UpRoom == roomB)
        {
            flag = true;
        }
        if (scriptA.DownRoom == roomB)
        {
            flag = true;
        }
        return(flag);
    }
Example #3
0
        public virtual void TriggerPerk()
        {
            BattleRoomScript battleRoom = (BattleRoomScript)GameMainRecycle.RoomScripts.Group[typeof(BattleRoomScript).Name];

            battleRoom.RoundResult.AppendLine(Describe);
        }