private void loadTiles() { foreach (GameObject tileBackObject in GameObject.FindGameObjectsWithTag("HiddenTile")) { HiddenTileBehavior tileBack = tileBackObject.GetComponent <HiddenTileBehavior>(); GameDataTile tileData = getTileData(tileBack.tileAssociated.GetComponent <TileBehavior>().index); if (!tileData.hidden) // nothing to do for hidden tiles { tileBack.updateAssociatedTile(tileData.name, tileData.tileRotation); TileBehavior tile = tileBack.tileAssociated.GetComponent <TileBehavior>(); for (int j = 0; j < tileData.hersesState.Count; j++) { // TODO: use cells on each side of the portcullis HerseBehavior herseToLoad = null; for (int k = 0; k < tile.transform.childCount; k++) { if (tile.transform.GetChild(k).name == tileData.hersesState[j].cellOneName) { herseToLoad = tile.transform.GetChild(k).GetComponent <CaseBehavior>().herse.GetComponent <HerseBehavior>(); break; } } herseToLoad.herseBrisee = tileData.hersesState[j].broken; herseToLoad.herseOuverte = tileData.hersesState[j].open; if (herseToLoad.herseBrisee) { herseToLoad.GetComponent <HerseBehaviorIHM>().manipulate(ActionType.DESTROYDOOR); } else if (herseToLoad.herseOuverte) { herseToLoad.GetComponent <HerseBehaviorIHM>().manipulate(ActionType.OPENDOOR); } } tile.hidden = false; tileBack.GetComponent <HiddenTileBehaviorIHM>().disableDisplay(); if (tile.index == managerData.roomBeingOpenedIndex) { tileBack.GetComponent <HiddenTileBehaviorIHM>().instanciateTileTargets(tile.getAvailableCells()); } } } }