public void RemoveButton(MapPiece piece) { buttons .Where(x => x.piece == piece) .ToList() .ForEach(RemoveButton); }
private void OnPieceActButtonClick(int pieceId) { int oldSelectedId = selectedPieceId; selectedPieceId = pieceId; int ownedGroup; MapPiece oldSelectedPiece = GetMapPiece(oldSelectedId, out ownedGroup); if (oldSelectedPiece != null) { if (oldSelectedPiece.selectedShadow != null) { oldSelectedPiece.selectedShadow.enabled = false; Object.Destroy(oldSelectedPiece.selectedShadow); oldSelectedPiece.selectedShadow = null; } oldSelectedPiece.pieceImage.transform.localScale = Vector3.one; } MapPiece piece = GetMapPiece(pieceId, out ownedGroup); if (piece.selectedShadow == null) { piece.pieceImage.transform.SetAsLastSibling(); pieceGroupDict[ownedGroup].lockedSymbol.transform.SetAsLastSibling(); piece.selectedShadow = piece.pieceImage.gameObject.AddComponent <Shadow>(); piece.selectedShadow.effectColor = mapConfig.selectedShadowColor; piece.selectedShadow.effectDistance = mapConfig.selectedShadowDist; piece.pieceImage.transform.DOScale(mapConfig.selectedScale, mapConfig.selectedAnimDuration).SetEase(mapConfig.selectedAnimCurve); } SetSceneStateData(pieceId); }
void createCameraOnMap(GameObject thismap, MapPiece mapPiece) { for (int i = 0; i < mapPiece.cameras.Count; i++) { { Vector3 roomPiece = mapPiece.cameras[i]; GameObject threedtext = Instantiate(cameraPrefab); threedtext.transform.SetParent(thismap.transform); threedtext.transform.localPosition = new Vector3(roomPiece.x, roomPiece.y, roomPiece.z); } } }
public void SetNewMoveOffset(Vector2 offset, float duration) { targetPositionOffset += offset; moveCountDown = duration; changed = true; foreach (int childIndex in children) { MapPiece piece = MapManager.instance.Get(childIndex); piece.SetNewMoveOffset(offset, duration); } }
void KeyDown(KeyCode kc) { switch (kc) { case KeyCode.Equals: ui.pieceButtonPanel.AddButton(MapPiece.Generate()); break; case KeyCode.Escape: game.LoadSceneByName("Main Menu"); break; } }
public void AddButton(MapPiece piece) { if (pieceButtonPool == null) { Debug.Log("PieceButtonPanel has no pool!"); } else { PieceButton newButton = pieceButtonPool.GetObject(piece).GetComponent <PieceButton>(); newButton.transform.SetParent(transform, false); buttonCount += 1; buttons.Insert(0, newButton); UiController.instance.commandPanel.Show(); } }
public void createMapWithName(string mapSpiltName) { if (mapSpiltName.Equals(displayMap.mapName)) { wholeBtnClickedForMap(); return; } if (wholeMapObj != null) { isWhole = false; Destroy(wholeMapObj); } Destroy(displayFloor); for (int i = 0; i < displayMap.allMapPieces.Count; i++) { MapPiece piece = displayMap.allMapPieces[i]; if (piece.mapSpiltName.Equals(mapSpiltName)) { displayFloor = (GameObject)Instantiate(displayMap.allMapPieces[i].mapSpilt); StartCoroutine(changeName(displayMap.allMapPieces[i].mapSpiltName)); displayFloor.GetComponent <ControlObject>().controllerObj = this.gameObject; gameObject.GetComponent <CommonControl>().displayMap = displayFloor; currentFloor = i; CurrentFloorLabel.text = "Floor:" + currentFloor; createRoomNameOnMap(displayFloor, displayMap.allMapPieces[currentFloor]); createCameraOnMap(displayFloor, displayMap.allMapPieces[currentFloor]); if (i == 0) { upBtn.interactable = true; downBtn.interactable = false; } else if (i == displayMap.allMapPieces.Count - 1) { upBtn.interactable = false; downBtn.interactable = true; } else { upBtn.interactable = true; downBtn.interactable = true; } //currentFloorName = displayMap.allMapPieces[i].mapSpiltName; } } }
private void SetCurrScenePointer() { int ownedGroup; MapPiece currPiece = GetMapPiece(mapModel.currSceneId, out ownedGroup); if (currScenePointer == null) { GameObject go = Object.Instantiate(tipsPointerTmpl.gameObject); go.SetActive(true); go.transform.SetParent(transform); currScenePointer = go.transform; } currScenePointer.localScale = Vector3.one; currScenePointer.localRotation = Quaternion.identity; currScenePointer.position = currPiece.tipsBubbleAnchor.position; currScenePointer.localPosition = currScenePointer.localPosition + (Vector3)mapConfig.currPointerOffset; }
private void DetermineMainPath() { int randomRow, randomColumn; randomRow = Random.Range(0, levelSize.y - 1); randomColumn = Random.Range(0, levelSize.x - 1); MapPiece start = mapPieces[randomRow, randomColumn]; start.SetEntrance(); start.SetIsOnMainPath(); MapPiece end = null; MapPiece curr = start; mainPath.Add(start); int endChecker = 20; while (end == null && endChecker != 0) { MapPiece temp = curr.GetRandomNextTile(); if (mainPath.Contains(temp)) { endChecker--; continue; } curr = temp; mainPath.Add(curr); curr.SetIsOnMainPath(); if (mainPath.Count == minimumPathDistance) { end = curr; end.SetExit(); end.SetIsOnMainPath(); } } if (endChecker == 0) { end = mainPath[mainPath.Count]; end.SetExit(); end.SetIsOnMainPath(); } }
public LevelMapBuilder WithPiece(TilePoint tile, MapPiece piece) { if (!MapPieceSymbol.IsObject(piece)) { throw new ArgumentException($"{piece} is not an object piece."); } var range = new TilePoint(_floors.GetLength(0), _floors.GetLength(1)); if (tile.X > _floors.GetLength(0) || tile.X < 0) { throw new ArgumentException($"{tile} is out of range {range} for {piece}"); } if (tile.Y > _floors.GetLength(1) || tile.Y < 0) { throw new ArgumentException($"{tile} is out of range {range} for {piece}"); } _objects[tile.X, tile.Y] = piece; return(this); }
private void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Player" && mapObject.detail.Triggerable) { AudioController.instance.PlayGetItem(); foreach (KeyTrigger trigger in triggers) { foreach (int index in trigger.index) { MapPiece piece = MapManager.instance.Get(index); piece.SetNewMoveOffset(trigger.dPosition, trigger.duration); piece.SetNewRotationOffset(trigger.dRotation, trigger.duration); piece.SetNewScaleRatio(trigger.dScale, trigger.duration); piece.Visible = trigger.visible; piece.Triggerable = trigger.triggerable; piece.Loadable = trigger.load; } } mapObject.detail.Visible = false; mapObject.detail.Triggerable = false; } }