Exemplo n.º 1
0
    public void walkExternalPlayer(int currentX, int currentY, BasePlayer player, int dir, bool animated)
    {
        if (animated)
        {
            player.GetObject().transform.localEulerAngles = new Vector3(0, directionToRotation(dir), 0);
            //player.GetObject().transform.position = new Vector3(player.GetObject().transform.position.x, GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * 0.1339f, player.GetObject().transform.position.z);
            player.GetObject().transform.position = new Vector3(player.GetObject().transform.position.x, GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(player.GetCurrentVec().x, player.GetCurrentVec().y).height_ *LevelManager.TILE_SCALE * 0.447f, player.GetObject().transform.position.z);
        }

        //print("walk external :" + player.GetName() + " local x :" + currentX + " local y :" + currentY);
        //List<VRAR_Tile> list = GameStateManager.getInstance().getCurrentLevel().selectRadius(localPlayer.GetCurrentVec().x, localPlayer.GetCurrentVec().y, localPlayer.GetSight());
        List <VRAR_Tile> list             = GameStateManager.getInstance().getCurrentLevel().selectRadius(currentX, currentY, localPlayer.GetSight());
        VRAR_Tile        tileFromIndexPos = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(player.GetCurrentVec().x, player.GetCurrentVec().y);

        if (list.Contains(tileFromIndexPos))
        {
            //Debug.Log("EXTERNAL we can see the other player");
            player.GetObject().GetComponentInChildren <SkinnedMeshRenderer>().enabled = true;
            //float y = tileFromIndexPos.hexObject.lossyScale.y * 0.447f - player.GetObject().transform.position.y;
            //float y = player.GetObject().transform.position.y - GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * 0.1339f;
            //this.SlowTranslatePlayer(player, VRAR_Level.getNeighborDistance(dir) + new Vector3(0f, y, 0f), speed * LevelManager.TILE_SCALE);
            this.SlowTranslatePlayer(player, VRAR_Level.getNeighborDistance(dir), speed * LevelManager.TILE_SCALE, animated);
        }
        else
        {
            //Debug.Log("EXTERNAL we CANNOT see the other player");
            player.GetObject().GetComponentInChildren <SkinnedMeshRenderer>().enabled = false;
            this.SlowTranslatePlayer(player, VRAR_Level.getNeighborDistance(dir), speed * LevelManager.TILE_SCALE, false);
        }
    }
Exemplo n.º 2
0
    bool CheckEveryoneReady()
    {
        foreach (KeyValuePair <int, Player> entry in players)
        {
            if (entry.Value.ready == false)
            {
                return(false);
            }
        }

        GameStateManager.instance.setGlobalStateIndex(GameStateManager.STATE_PLAYING);
        VRAR_Level levelTile   = GameStateManager.instance.getCurrentLevel();
        var        fileMessage = new FileMessage();
        TextReader tr;

        if (Application.isEditor)
        {//use the project location
            tr = new StreamReader(Application.dataPath + "/levels/" + "/level_" + levelTile.levelTile.tileIndex_X + "#" + levelTile.levelTile.tileIndex_Y + ".sav");
        }
        else
        {//use the user save location
            tr = new StreamReader(Application.persistentDataPath + "/levels/" + "/level_" + levelTile.levelTile.tileIndex_X + "#" + levelTile.levelTile.tileIndex_Y + ".sav");
        }
        fileMessage.file = tr.ReadToEnd();
        NetworkServer.SendToAll(NetworkMessages.File, fileMessage);

        SceneManager.LoadScene(1);


        return(true);
    }
Exemplo n.º 3
0
    public void spawnLevel()
    {
        Vector2Int tPos = new Vector2Int(selectedTiles[0].tileIndex_X, selectedTiles[0].tileIndex_Y);
        VRAR_Level lvl  = GameStateManager.instance.getCurrentLevel();

        //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(tPos);
        foreach (VRAR_Tile tile in lvl.vrarTiles)
        {
            Transform nodeMarker = Instantiate(hexPREFAB, lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_), new Quaternion());
            tile.hexObject = nodeMarker;
            nodeMarker.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(tile.terrain);
            nodeMarker.localScale = new Vector3(1, tile.height_, 1);

            //spawn interactable object
            if (TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab() != null)
            {
                Instantiate(TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_), new Quaternion());
            }

            //spawn dumb objects
            foreach (BaseTileObject dumbObject in tile.getDumbObjectsList())
            {
                if (dumbObject.getPrefab() != null)
                {
                    Instantiate(dumbObject.getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_), new Quaternion());
                }
            }
        }
    }
Exemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        cursorMove();
        switch (stateIndex)
        {
        case 0:
            lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(ingameCursor.position));
            if (lvl != null)
            {
                //Reset the previous tile back to normal
                if (previousSelectedTile != null)
                {
                    previousSelectedTile.GetComponent <Renderer>().material = previousSelectedTileMaterial;
                    previousSelectedTileMaterial = lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material;
                }

                //Set material of selected tile
                lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial;

                //Add update list of selected tiles
                selectedTiles.Clear();
                selectedTiles.Add(lvl.levelTile);

                //update debug text of current selected tile
                selectedLevelText.text = "lvl :" + lvl.levelTile.tileIndex_X + "  " + lvl.levelTile.tileIndex_Y;

                previousSelectedTile = lvl.levelTile.hexObject.gameObject;
            }
            break;

        default:
            VRAR_Tile selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);
            if (selTile != null)
            {
                //Reset the previous tile back to normal
                if (previousSelectedTile != null)
                {
                    previousSelectedTile.GetComponent <Renderer>().material = previousSelectedTileMaterial;
                    previousSelectedTileMaterial = selTile.hexObject.gameObject.GetComponent <Renderer>().material;
                }

                //Set material of selected tile
                selTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial;

                //Add update list of selected tiles
                selectedTiles.Clear();
                selectedTiles.Add(selTile);

                //update debug text of current selected tile
                selectedLevelText.text = "lvl :" + selTile.tileIndex_X + "  " + selTile.tileIndex_Y;

                previousSelectedTile = selTile.hexObject.gameObject;

                lvl.tileUpdate(0, 0);
            }
            break;
        }
    }
Exemplo n.º 5
0
    public void walkLocalPlayer(int currentX, int currentY, int dir)
    {
        /*
         * targetTransform.Translate(VRAR_Level.getNeighborDistance(VRAR_Level.getCounterTile(dir)));
         * float y = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).hexObject.lossyScale.y * 0.447f - this.localPlayer.GetObject().transform.position.y;
         * localPlayer.GetObject().transform.Translate(new Vector3(0f, y * LevelManager.TILE_SCALE, 0f));
         * this.spawnLevel(currentX, currentY);
         * this.updateSight(currentX, currentY);
         *
         * foreach (BasePlayer basePlayer in GamePlayManagerAR.instance.GetPlayers().Values)
         * {
         *  if (basePlayer.GetPlayerId() != this.localPlayer.GetPlayerId())
         *  {
         *      this.walkExternalPlayer(currentX, currentY, basePlayer, VRAR_Level.getCounterTile(dir));
         *  }
         * }*/

        if (this.localPlayerTranslateWrapper == null)
        {
            this.localPlayerTranslateWrapper = new TileRenderer.SlowTranslateWrapper(this.targetTransform);
        }
        this.SlowTranslate(this.localPlayerTranslateWrapper, VRAR_Level.getNeighborDistance(VRAR_Level.getCounterTile(dir)), speed * LevelManager.TILE_SCALE, () =>
        {
            if (GamePlayManagerAR.instance.localPlayer != null)
            {//update animation
                GamePlayManagerAR.instance.localPlayer.GetObject().transform.localEulerAngles = new Vector3(0, directionToRotation(dir), 0);
                m_Animator = GamePlayManagerAR.instance.localPlayer.GetObject().GetComponent <Animator>();
                m_Animator.SetBool("isWalkingLocally", true);
            }

            this.spawnLevel(currentX, currentY);
            this.updateSight(currentX, currentY);
        }, () => {
            if (GamePlayManagerAR.instance.localPlayer != null)
            {//update animation
                m_Animator = GamePlayManagerAR.instance.localPlayer.GetObject().GetComponent <Animator>();
                m_Animator.SetBool("isWalkingLocally", false);
            }
            this.spawnLevel(currentX, currentY);
            this.updateSight(currentX, currentY);
        });

        //float y = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(this.localPlayer.GetCurrentVec().x, this.localPlayer.GetCurrentVec().y).hexObject.lossyScale.y * 0.447f - this.localPlayer.GetObject().transform.position.y;
        //float y = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).hexObject.lossyScale.y * 0.447f - this.localPlayer.GetObject().transform.position.y;
        float y = localPlayer.GetObject().transform.position.y - GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * 0.1339f;

        this.SlowTranslatePlayer(this.localPlayer, new Vector3(0f, -y, 0f), speed * LevelManager.TILE_SCALE, false);
        //localPlayer.GetObject().transform.position = new Vector3(localPlayer.GetObject().transform.position.x, GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * LevelManager.TILE_SCALE * 0.447f, localPlayer.GetObject().transform.position.z);

        foreach (BasePlayer basePlayer in GamePlayManagerAR.instance.GetPlayers().Values)
        {
            if (basePlayer.GetPlayerId() != this.localPlayer.GetPlayerId())
            {
                this.walkExternalPlayer(currentX, currentY, basePlayer, VRAR_Level.getCounterTile(dir), false);
            }
        }
    }
Exemplo n.º 6
0
    public IEnumerator slowSpawnLVL()
    {
        isSpawningLevel = true;
        VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();

        //do not use a foreach here incase the list gets edited while spawning
        for (int i = 0; i < lvl.vrarTiles.Count; i++)
        {
            updateTile(lvl.vrarTiles[i]);
            yield return(new WaitForSeconds(0.005f));
        }

        isSpawningLevel = false;
    }
Exemplo n.º 7
0
    void FixedUpdate()
    {
        //Debug.Log(brushTicking);


        if (brushTicking && (GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR || GameStateManager.instance.getGlobalStateIndex() != GameStateManager.STATE_PLAYING) && !Valve.VR.InteractionSystem.VRInputHandler.isInTileObjectEditMenu)
        {
            //EditTile(brushActionDropdown.value);
            EditTile(currentBrush);
        }
        else if (brushTicking && GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_PLAYING)
        {
            EditTile(currentBrush);
        }
        else if (TileToolEditTick && GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR)
        {
            TileToolEditTick = false;

            /*
             * VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();//TileRenderer.getCurrLVL();
             *
             *
             * VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);
             * if (tile != null)
             * {
             *  //currentlySelected = tile;
             *
             *  if (!menuOpen)
             *  {
             *      menuOpen = true;
             *      OpenTileProperties(tile);
             *  }
             * }*/
        }
        else if (GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_PLAYING || GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR)
        {
            VRAR_Level lvl  = GameStateManager.instance.getCurrentLevel();
            VRAR_Tile  tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);

            if (tile != null)
            {
                if (tile != lastSelectedTile)
                {
                    OpenTileProperties(tile);
                }
                lastSelectedTile = tile;
            }
        }
    }
Exemplo n.º 8
0
    internal void genTerrain()
    {
        VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();

        foreach (VRAR_Tile tile in lvl.vrarTiles)
        {
            List <BaseTileObject> tileObjectList = tile.getDumbObjectsList();
            for (int i = 0; i < tileObjectList.Count; i++)
            {
                if (tileObjectList[i].getObjectID() == 5 || tileObjectList[i].getObjectID() == 2)
                {
                    tile.removeDumbObject(tileObjectList[i]);
                }
            }

            /*
             * for(int i=0;i< tile.hexObject.transform.childCount;i++)
             * {
             *  if (tile.hexObject.GetChild(i).CompareTag("vrar_generated_terrain"))
             *  {
             *      print("removing :" + tile.hexObject.GetChild(i));
             *      //tile.removeDumbObject()
             *      Destroy(tile.hexObject.GetChild(i).gameObject);
             *  }
             * }*/

            switch (tile.GetTerrain())
            {
            case "Water":
                break;

            case "Mountain":
                if (UnityEngine.Random.Range(0, 10) > 8)
                {
                    addTileObject(tile, TileObjectManger.TILE_OBJECTS[5]);
                }
                break;

            case "Grass":
                if (UnityEngine.Random.Range(0, 10) > 7)
                {
                    addTileObject(tile, TileObjectManger.TILE_OBJECTS[2]);
                }
                break;
            }
        }
        TileRenderer.instance.clearScene();
        StartCoroutine(TileRenderer.instance.slowSpawnLVL());
    }
Exemplo n.º 9
0
    public void spawnLevel()
    {
        //Vector2Int tPos = new Vector2Int(selectedTiles[0].tileIndex_X, selectedTiles[0].tileIndex_Y);
        VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();

        //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(tPos);
        foreach (VRAR_Tile tile in lvl.vrarTiles)
        {
            //Create new empty gameobject to hold the tile and tileobjects

            /*GameObject tileObject = new GameObject(tile.ToString());
             * tileObject.tag = "vrar_lvl";
             * tileObject.transform.position = lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, 1);
             * tileObject.transform.parent = tilesParent;
             * tile.tileGameObject = tileObject.transform;*/

            updateTile(tile);

            /*
             * //create the tile itself
             * Transform nodeMarker = Instantiate(hexPREFAB);
             * nodeMarker.parent = tileObject.transform;
             * nodeMarker.localPosition = new Vector3(0,0,0);
             *
             * tile.hexObject = nodeMarker;
             * nodeMarker.gameObject.GetComponent<Renderer>().material = TileObjectManger.getMaterial(tile.terrain);
             * nodeMarker.localScale = new Vector3(1, tile.height_, 1);
             *
             * //spawn interactable object
             * if (TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab() != null)
             * {
             *  Transform dumbObject = Instantiate(TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_+2), new Quaternion());
             *  dumbObject.parent = tileObject.transform;
             * }
             *
             * //spawn dumb objects
             * foreach (BaseTileObject dumbObject in tile.getDumbObjectsList())
             * {
             *  if (dumbObject.getPrefab() != null)
             *  {
             *      Transform interOjbect =Instantiate(dumbObject.getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_ + 2), new Quaternion());
             *      interOjbect.parent = tileObject.transform;
             *  }
             * }*/
        }
    }
Exemplo n.º 10
0
    public void UpdateUI(List <MoveRequest> moveRequests)
    {
        if (moveRequests.Count == 0)
        {
            playerActionPanel.SetActive(false);
        }
        else
        {
            playerActionPanel.SetActive(true);

            MoveRequest mr = moveRequests[0];
            playerNameField.text = mr.id + ". " + server.GetPlayerName(mr.id);
            actionNameField.text = "Move " + VRAR_Level.GetDirectionName(mr.direction);
            redButton.GetComponentInChildren <Text>().text     = "Deny";
            neutralButton.GetComponentInChildren <Text>().text = "Ignore";
            greenButton.GetComponentInChildren <Text>().text   = "Accept";
            OnGreenButtonClicked();
        }
    }
Exemplo n.º 11
0
    public void spawnLevel(int x, int y)
    {
        VRAR_Level       currentLevel = GameStateManager.getInstance().getCurrentLevel();
        List <VRAR_Tile> list;

        if (this.localPlayer == null)
        {
            MonoBehaviour.print("localPlayer null! ,spawning around 0,0 s5");
            //list = currentLevel.selectRadius(0, 0, 3);
            list = currentLevel.selectRadius(x, y, 3);
        }
        else
        {
            list = currentLevel.selectRadius(x, y, this.localPlayer.GetSight());
            //list = currentLevel.selectRadius(this.localPlayer.GetCurrentVec().x, this.localPlayer.GetCurrentVec().y, this.localPlayer.GetSight());
        }
        foreach (VRAR_Tile tile in list)
        {
            this.updateTile(tile);
            //StartCoroutine(DropIn(tile, 2f, null));
        }
    }
Exemplo n.º 12
0
    void Update()
    {
        //Debug.Log(brushTicking);
        if (brushTicking && GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR)
        {
            if (brushTickDivider-- == 0)
            {
                brushTickDivider = 4;
                //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position));
                VRAR_Level lvl = TileRenderer.getCurrLVL();

                VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);
                if (tile != null)
                {
                    currentlySelected = tile;
                    List <VRAR_Tile> effectedTiles = lvl.selectRadius(tile.tileIndex_X, tile.tileIndex_Y, brushSize);
                    if (!menuOpen)
                    {
                        OpenTileProperties(tile);
                        menuOpen = true;
                    }
                    //resetPrevous.Clear();
                    // resetPrevous.Add(lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position).x, lvlManager.getTilePosFromWorldPos(leftHandCursor.position).y));
                    foreach (VRAR_Tile surroundTile in effectedTiles)
                    {
                        if (surroundTile != null)
                        {
                            switch (brushActionDropdown.value)
                            {
                            case 0:
                                if (surroundTile.height_ < maxTileHeight)
                                {
                                    surroundTile.setHeight(surroundTile.height_ + 0.05f);
                                    //Debug.Log(surroundTile);
                                }
                                //else { surroundTile.setHeight(minTileHeight); }
                                break;

                            case 1:
                                if (surroundTile.height_ > minTileHeight)
                                {
                                    surroundTile.setHeight(surroundTile.height_ - 0.05f);
                                }
                                //else { surroundTile.setHeight(maxTileHeight); }
                                break;

                            case 2:
                                if (surroundTile.hexObject != null)
                                {
                                    //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.defaultTileMaterial;
                                    surroundTile.SetTerrain("Mountain");
                                    TileRenderer.instance.updateTile(surroundTile);
                                }
                                break;

                            case 3:
                                if (surroundTile.hexObject != null)
                                {
                                    //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.waterTileMaterial;
                                    surroundTile.SetTerrain("Water");
                                    TileRenderer.instance.updateTile(surroundTile);
                                }
                                break;

                            case 4:
                                if (surroundTile.hexObject != null)
                                {
                                    //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.selectedTileMaterial;
                                    surroundTile.SetTerrain("Grass");
                                    TileRenderer.instance.updateTile(surroundTile);
                                }
                                break;
                            }
                        }
                        else
                        {
                            Debug.Log("sur was null");
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 13
0
    //Moves the character and return true if succesful, return false if there is no tile or its not walkable
    public bool Move(int direction)
    {
        VRAR_Tile targetTile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(_currentTilePos.x, _currentTilePos.y, VRAR_Level.getCounterTile(direction));

        //if (targetTile == null || !targetTile.walkable)
        // return false;

        _currentTilePos = new Vector2Int(targetTile.tileIndex_X, targetTile.tileIndex_Y);
        return(true);
    }
Exemplo n.º 14
0
    // Update is called once per frame
    void Update()
    {
        //cursorMove();
        switch (GameStateManager.instance.getGlobalStateIndex())
        {
        case GameStateManager.STATE_CAMPAIGN_EDITOR:
            cursorMarker.position = Vector3.Scale(leftHandCursor.position, (truncY)) + offY;
            lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position));
            if (lvl != null)
            {
                GameStateManager.instance.setCurrentLevel(lvl);

                //Reset the previous tile back to normal
                if (previousSelectedTile != null)
                {
                    //    previousSelectedTile.GetComponent<Renderer>().material = previousSelectedTileMaterial;
                    //    previousSelectedTileMaterial = lvl.levelTile.hexObject.gameObject.GetComponent<Renderer>().material;
                    previousSelectedTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain());
                }

                //Set material of selected tile
                lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial;

                //Add update list of selected tiles
                selectedTiles.Clear();
                selectedTiles.Add(lvl.levelTile);

                //update debug text of current selected tile
                selectedLevelText.text = "lvl :" + lvl.levelTile.tileIndex_X + "  " + lvl.levelTile.tileIndex_Y;

                //previousSelectedTile = lvl.levelTile.hexObject.gameObject;
                previousSelectedTile = lvl.levelTile;
            }
            break;

        case GameStateManager.STATE_LEVEL_EDITOR:
            lvl = GameStateManager.instance.getCurrentLevel();
            //Debug.Log("level state :"+lvl.levelTile.ToString());
            cursorMarker.position = Vector3.Scale(rightHandCursor.position, (truncY)) + offY;
            //cursorMarker.position *= 5f;
            //VRAR_Tile selTile=  lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(rightHandCursor.position).x, lvlManager.getTilePosFromWorldPos(rightHandCursor.position).y);
            VRAR_Tile selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(cursorMarker.position).x, lvlManager.getTilePosFromWorldPos(cursorMarker.position).y);
            if (selTile != null)
            {
                //Reset the previous tile back to normal
                if (previousSelectedTile != null)
                {
                    //previousSelectedTile.GetComponent<Renderer>().material = previousSelectedTileMaterial;
                    //previousSelectedTileMaterial = selTile.hexObject.gameObject.GetComponent<Renderer>().material;
                    previousSelectedTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain());
                }

                //Set material of selected tile
                selTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial;

                //Add update list of selected tiles
                selectedTiles.Clear();
                selectedTiles.Add(selTile);

                //update debug text of current selected tile
                selectedLevelText.text = "lvl :" + selTile.tileIndex_X + "  " + selTile.tileIndex_Y;

                //previousSelectedTile = selTile.hexObject.gameObject;
                previousSelectedTile = selTile;

                lvl.tileUpdate(0, 0);
            }
            break;

        case GameStateManager.STATE_PLAYING:
            break;
        }
    }
Exemplo n.º 15
0
    public void QueueMove(int direction)
    {
        BasePlayer player = GamePlayManagerAR.instance.localPlayer;
        VRAR_Tile  tile   = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.GetCurrentVec().x, player.GetCurrentVec().y, VRAR_Level.getCounterTile(direction));

        if (tile == null || !tile.walkable)
        {
            return;
        }

        var moveMessage = new MoveRequestMessage();

        moveMessage.direction = direction;
        client.Send(CustomNetMsg.MoveRequest, moveMessage);
    }
Exemplo n.º 16
0
    //Moves the character and return true if succesful, return false if there is no tile or its not walkable
    public bool Move(int direction)
    {
        VRAR_Tile targetTile = GameStateManager.instance.getCurrentLevel().getAdjacentTile(_currentTilePos.x, _currentTilePos.y, VRAR_Level.getCounterTile(direction));

        //if (targetTile == null || !targetTile.walkable)
        // return false;

        _currentTilePos            = new Vector2Int(targetTile.tileIndex_X, targetTile.tileIndex_Y);
        _object.transform.position = targetTile.tileGameObject.position + new Vector3(0, targetTile.height_, 0);
        return(true);
    }
Exemplo n.º 17
0
    void Update()
    {
        if (brushTicking)
        {
            if (brushTickDivider-- == 0)
            {
                brushTickDivider = 4;
                //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(ingameCursor.position));
                VRAR_Level lvl = TileRenderer.getCurrLVL();

                VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);
                if (tile != null)
                {
                    List <VRAR_Tile> effectedTiles = lvl.selectRadius(tile.tileIndex_X, tile.tileIndex_Y, brushSize);

                    //resetPrevous.Clear();
                    // resetPrevous.Add(lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y));
                    foreach (VRAR_Tile surroundTile in effectedTiles)
                    {
                        if (surroundTile != null)
                        {
                            switch (brushActionDropdown.value)
                            {
                            case 0:
                                if (surroundTile.height_ < maxTileHeight)
                                {
                                    surroundTile.setHeight(surroundTile.height_ + 0.05f);
                                    //Debug.Log(surroundTile);
                                }
                                //else { surroundTile.setHeight(minTileHeight); }
                                break;

                            case 1:
                                if (surroundTile.height_ > minTileHeight)
                                {
                                    surroundTile.setHeight(surroundTile.height_ - 0.05f);
                                }
                                //else { surroundTile.setHeight(maxTileHeight); }
                                break;

                            case 2:
                                if (surroundTile.hexObject != null)
                                {
                                    surroundTile.hexObject.gameObject.GetComponent <Renderer>().material = tileRenderer.defaultTileMaterial;
                                }
                                break;

                            case 3:
                                if (surroundTile.hexObject != null)
                                {
                                    surroundTile.hexObject.gameObject.GetComponent <Renderer>().material = tileRenderer.waterTileMaterial;
                                }
                                break;

                            case 4:
                                if (surroundTile.hexObject != null)
                                {
                                    surroundTile.hexObject.gameObject.GetComponent <Renderer>().material = tileRenderer.selectedTileMaterial;
                                }
                                break;
                            }
                        }
                        else
                        {
                            Debug.Log("sur was null");
                        }
                    }
                }
            }
        }
    }
Exemplo n.º 18
0
 public void setCurrentLevel(VRAR_Level lvl)
 {
     currentLvl = lvl;
 }
Exemplo n.º 19
0
 public void setCurrentLevel(VRAR_Level lvl)
 {
     //Debug.Log("SETCURRENTLVL!! :" + lvl.levelTile);
     currentLvl = lvl;
 }
Exemplo n.º 20
0
    // Update is called once per frame
    void Update()
    {
        //cursorMove();
        switch (GameStateManager.instance.getGlobalStateIndex())
        {
        case GameStateManager.STATE_CAMPAIGN_EDITOR:
            cursorMarker.position = Vector3.Scale(leftHandCursor.position, (truncY)) + offY;
            lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position));
            if (lvl != null)
            {
                GameStateManager.instance.setCurrentLevel(lvl);

                //Reset the previous tile back to normal
                if (previousSelectedTile != null)
                {
                    previousSelectedTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain());
                }

                //Set material of selected tile
                lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial("Selection");

                //Add update list of selected tiles
                selectedTiles.Clear();
                selectedTiles.Add(lvl.levelTile);

                //update debug text of current selected tile
                selectedLevelText.text = "lvl :" + lvl.levelTile.tileIndex_X + "  " + lvl.levelTile.tileIndex_Y;

                previousSelectedTile = lvl.levelTile;
            }
            break;

        case GameStateManager.STATE_LEVEL_EDITOR:
            lvl = GameStateManager.instance.getCurrentLevel();
            cursorMarker.position = Vector3.Scale(rightHandCursor.position, (truncY)) + offY;
            selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(cursorMarker.position).x, lvlManager.getTilePosFromWorldPos(cursorMarker.position).y);
            if (selTile != null && selTile.hexObject != null && !Valve.VR.InteractionSystem.VRInputHandler.isInTileObjectEditMenu)
            {
                //if selectedHexPrefab is a prefab (so not in any scene)
                if (selectedHexPrefab.gameObject.scene.name == null)
                {
                    selectedHexPrefabItem = selectedHexPrefab;
                    //spawn prefab is scene
                    selectedHexPrefab = Instantiate(selectedHexPrefab);
                }


                //Reset the previous tile back to normal
                if (previousSelectedTile != null)
                {
                    //previousSelectedTile.hexObject.gameObject.GetComponent<Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain());
                }

                //Set material of selected tile

                //selTile.hexObject.gameObject.GetComponent<Renderer>().material = TileObjectManger.getMaterial("Selection");
                selectedHexPrefab.gameObject.transform.position = selTile.hexObject.position + (new Vector3(0, (float)(selTile.height_ + 0.1), 0));

                //Add update list of selected tiles
                selectedTiles.Clear();
                selectedTiles.Add(selTile);

                //update debug text of current selected tile
                selectedLevelText.text = "lvl :" + selTile.tileIndex_X + "  " + selTile.tileIndex_Y;

                previousSelectedTile = selTile;

                lvl.tileUpdate(0, 0);
            }
            break;

        case GameStateManager.STATE_PLAYING:
            lvl = GameStateManager.instance.getCurrentLevel();
            cursorMarker.position = Vector3.Scale(rightHandCursor.position, (truncY)) + offY;
            selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(cursorMarker.position).x, lvlManager.getTilePosFromWorldPos(cursorMarker.position).y);
            if (selTile != null && selTile.hexObject != null && !Valve.VR.InteractionSystem.VRInputHandler.isInTileObjectEditMenu)
            {
                if (prevSelTile != selTile)
                {
                    //var tileMessage = new TileMessage(selTile);
                    if (prevSelTile != null && prevSelTile.hexObject != null)
                    {
                        foreach (VRAR_Tile tile in GameStateManager.instance.getCurrentLevel().dirtyTiles)
                        {
                            var tileMessage = new TileMessage(tile, false);
                            NetworkServer.SendToAll(CustomNetMsg.Tile, tileMessage);
                        }
                        GameStateManager.instance.getCurrentLevel().dirtyTiles.Clear();
                    }
                }

                //if selectedHexPrefab is a prefab (so not in any scene)
                if (selectedHexPrefab.gameObject.scene.name == null)
                {
                    selectedHexPrefabItem = selectedHexPrefab;
                    //spawn prefab is scene
                    selectedHexPrefab = Instantiate(selectedHexPrefab);
                }

                //Set material of selected tile
                selectedHexPrefab.gameObject.transform.position = selTile.hexObject.position + (new Vector3(0, selTile.height_ - 1, 0));

                prevSelTile = selTile;
            }
            break;
        }
    }
Exemplo n.º 21
0
    void GotMove(NetworkMessage netMsg)
    {
        var msg = netMsg.ReadMessage <MoveMessage>();

        /*
         * BasePlayer player = players[msg.id];
         * VRAR_Tile tile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.tileLocation.x, player.tileLocation.y, VRAR_Level.getCounterTile(msg.direction));
         * player.tileLocation = new Vector2Int(tile.tileIndex_X, tile.tileIndex_Y);
         */



        BasePlayer player = players[msg.id];

        VRAR_Tile tile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.GetCurrentVec().x, player.GetCurrentVec().y, VRAR_Level.getCounterTile(msg.direction));

        player.Move(msg.direction);

        // local player
        if (IsMyId(msg.id))
        {
            // move the world.
            TileRenderer.instance.walkLocalPlayer(player.GetCurrentVec().x, player.GetCurrentVec().y, msg.direction);
        }
        else
        {
            //TileRenderer.instance.walkExternalPlayer(player.GetCurrentVec().x, player.GetCurrentVec().y, player, msg.direction);
            TileRenderer.instance.walkExternalPlayer(GamePlayManagerAR.instance.localPlayer.GetCurrentVec().x, GamePlayManagerAR.instance.localPlayer.GetCurrentVec().y, player, msg.direction, true);
            // move the other player.
            //otherplayer.tilePosition =
        }
    }
Exemplo n.º 22
0
    public void EditTile(int num)
    {
        VRAR_Level lvl  = GameStateManager.instance.getCurrentLevel();
        VRAR_Tile  tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);

        currentBrush = num;
        if (brushTickDivider-- == 0) // || true)
        {
            brushTickDivider = 4;
            //VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();//TileRenderer.getCurrLVL();

            //VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y);
            if (tile != null)
            {
                //currentlySelected = tile;
                List <VRAR_Tile> effectedTiles = lvl.selectRadius(tile.tileIndex_X, tile.tileIndex_Y, brushSize);

                //resetPrevous.Clear();
                // resetPrevous.Add(lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position).x, lvlManager.getTilePosFromWorldPos(leftHandCursor.position).y));
                foreach (VRAR_Tile surroundTile in effectedTiles)
                {
                    if (surroundTile.hexObject != null)//phantom tiles shouldn't be changed
                    {
                        switch (num)
                        {
                        case 0:
                            if (surroundTile.height_ < maxTileHeight)
                            {
                                surroundTile.setHeight(surroundTile.height_ + 0.1f);
                                TileRenderer.instance.updateTile(surroundTile);    //todo only do this after the user stopped changing the height (for optimization)
                            }
                            //else { surroundTile.setHeight(minTileHeight); }
                            break;

                        case 1:
                            if (surroundTile.height_ > minTileHeight)
                            {
                                surroundTile.setHeight(surroundTile.height_ - 0.1f);
                                TileRenderer.instance.updateTile(surroundTile);    //todo only do this after the user stopped changing the height (for optimization)
                            }
                            //else { surroundTile.setHeight(maxTileHeight); }
                            break;

                        case 3:
                        {
                            //remove tile
                            VRAR_Tile remTile = lvl.removeTile(surroundTile.tileIndex_X, surroundTile.tileIndex_Y);

                            var tileMessage = new TileMessage(remTile, true);
                            NetworkServer.SendToAll(CustomNetMsg.Tile, tileMessage);

                            TileRenderer.instance.updateTile(surroundTile);
                        }
                        break;

                        case 4:
                            if (surroundTile.hexObject != null)
                            {
                                //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.defaultTileMaterial;
                                surroundTile.SetTerrain("Mountain");
                                TileRenderer.instance.updateTile(surroundTile);
                            }
                            break;

                        case 5:
                            if (surroundTile.hexObject != null)
                            {
                                //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.waterTileMaterial;
                                surroundTile.SetTerrain("Water");
                                TileRenderer.instance.updateTile(surroundTile);
                            }
                            break;

                        case 6:
                            if (surroundTile.hexObject != null)
                            {
                                //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.selectedTileMaterial;
                                surroundTile.SetTerrain("Grass");
                                TileRenderer.instance.updateTile(surroundTile);
                            }
                            break;
                        }
                    }
                    else
                    {//functions that run on both existing and phantom tiles but when the cursor is still on a existing tile!
                        switch (num)
                        {
                        case 2:
                            //if tile is phantom tile, create actual
                            if (surroundTile.isPhantom)
                            {
                                TileRenderer.instance.updateTile(lvl.addNewTile(surroundTile.tileIndex_X, surroundTile.tileIndex_Y));
                            }
                            break;
                        }
                    }
                }
                //lastSelectedTile = tile;
            }
            else
            {//cursor is not actually on a tile
                switch (num)
                {
                case 2:
                    //spawn middle tile first (and the rest gets spawned in the next tick), and select amount around it
                    TileRenderer.instance.updateTile(lvl.addNewTile(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y));
                    break;

                case 3:
                {
                    VRAR_Tile        middleTempTile = (lvl.addNewTile(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y));
                    List <VRAR_Tile> deletingTiles  = lvl.selectRadius(middleTempTile.tileIndex_X, middleTempTile.tileIndex_Y, brushSize);

                    foreach (VRAR_Tile surroundTile in deletingTiles)
                    {
                        TileRenderer.instance.updateTile(lvl.removeTile(surroundTile.tileIndex_X, surroundTile.tileIndex_Y));
                    }
                }
                break;
                }
            }
        }
    }