public AuthorityRoomTypeDecorator(IRoomTypeController roomTypeController, String role) { this.RoomTypeController = roomTypeController; this.Role = role; AuthorizedUsers = new Dictionary <string, List <string> >(); AuthorizedUsers["CheckRoomTypeUnique"] = new List <string>() { "Director" }; AuthorizedUsers["Delete"] = new List <string>() { "Director" }; AuthorizedUsers["Edit"] = new List <string>() { "Director" }; AuthorizedUsers["Get"] = new List <string>() { "Director" }; AuthorizedUsers["GetAll"] = new List <string>() { "Director" }; AuthorizedUsers["Save"] = new List <string>() { "Director" }; }
[SerializeField] private GameObject item; //empty loot gameObject that will be populated from the loot pools //spawns the physical room public void SpawnRoom() { //spawning invisible plane, used to create a navmesh to help control enemy AI GameObject floor = Instantiate(floorPlane, new Vector3(xCentre - 0.5f, -0.01f, zCentre - 0.5f), Quaternion.identity, gameObject.transform); floor.transform.localScale = new Vector3((float)width / 10f, 0f, (float)height / 10f); //set collider bounds roomBounds = gameObject.GetComponent <BoxCollider>(); roomBounds.size = new Vector3(width - 1f, 2f, height - 1f); //sets up the roomTypeController switch (roomType) { case 0: roomTypeController = gameObject.AddComponent <SpawnRoomController>(); GameObject.Find("Player").transform.position = new Vector3(xCentre, transform.position.y, zCentre); GameObject.Find("CameraPosition").transform.position = new Vector3(xCentre, 10f, zCentre - 10f); break; case 1: roomTypeController = gameObject.AddComponent <BossRoomController>(); break; case 2: roomTypeController = gameObject.AddComponent <ShopRoomController>(); break; case 3: roomTypeController = gameObject.AddComponent <LibraryRoomController>(); break; case 4: roomTypeController = gameObject.AddComponent <ShrineRoomController>(); break; case 5: roomTypeController = gameObject.AddComponent <MobRoomController>(); break; case 6: roomTypeController = gameObject.AddComponent <LootRoomController>(); break; case 7: roomTypeController = gameObject.AddComponent <GenericRoomController>(); break; } //Generating floors and walls SpawnWalls(roomTypeController.getWalls()); tileGenerator.DrawRoom(xCentre, zCentre, width, height, roomTypeController.getTiles()); tileGenerator.DrawFog(xCentre, zCentre, width, height); //Darkening rooms until they're explored roomTypeController.SpawnRoom(xCentre, zCentre, width, height); SpawnTileDecorations(); //setting up the rooms minimap components GameObject MMFloor = Instantiate(roomTypeController.getMinimapFloor(), new Vector3(xCentre, 99.5f, zCentre), Quaternion.identity, gameObject.transform); MMFloor.transform.localScale = new Vector3(MMFloor.transform.localScale.x * width, MMFloor.transform.localScale.y, MMFloor.transform.localScale.z * height); minimapComponents.Add(MMFloor); MMFloor.SetActive(false); //Generating obstacles (pillars, tables etc) CreateNodes(); SpawnObstacles(); }