示例#1
0
 public void RemoveButton(MapPiece piece)
 {
     buttons
     .Where(x => x.piece == piece)
     .ToList()
     .ForEach(RemoveButton);
 }
示例#2
0
    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);
    }
示例#3
0
 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);
         }
     }
     




 }
示例#4
0
 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);
     }
 }
示例#5
0
        void KeyDown(KeyCode kc)
        {
            switch (kc)
            {
            case KeyCode.Equals:
                ui.pieceButtonPanel.AddButton(MapPiece.Generate());
                break;

            case KeyCode.Escape:
                game.LoadSceneByName("Main Menu");
                break;
            }
        }
示例#6
0
        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();
            }
        }
示例#7
0
    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;
            }
        }
    }
示例#8
0
    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;
    }
示例#9
0
    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();
        }
    }
示例#10
0
    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);
    }
示例#11
0
    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;
        }
    }