Example #1
0
    /// <summary>
    /// Moves the player based on the direction
    /// </summary>
    /// <param name="prCommand"> </param>
    public override void Do(CommandMapScript prCommand)
    {
        if (GameManagerScript._Instance._ActiveCanvas.name == "Main Canvas")
        {
            //Turn off display events
            TurnOffEvent();
            //Assign players current local to a local variable
            SceneScript lcCurrentScene = PlayerManagerScript.GetCurrentScene();
            //Create a new scene variable
            SceneScript lcNewScene = new SceneScript();

            //Try get new scene. If not a valid direction, ignore
            try
            {
                //Get scene direction by selecting where From Scene name is current Scenes and direction is users input
                SceneDirectionScript lcSceneDirection = _db.Connection.Table <SceneDirectionScript>().Where <SceneDirectionScript>(x => x.FromSceneName == lcCurrentScene.Name && x.Direction == _direction).ToList <SceneDirectionScript>().First <SceneDirectionScript>();

                //Get new scene by selecting where name is scene direction's to scene variable
                lcNewScene = _db.Connection.Table <SceneScript>().Where <SceneScript>(x => x.Name == lcSceneDirection.ToSceneName).ToList <SceneScript>().First <SceneScript>();
                PlayerManagerScript._CurrentPlayer.CurrentLocationID = lcNewScene.Name;
            }
            catch
            {
                lcNewScene = _db.Connection.Table <SceneScript>().Where <SceneScript>(x => x.Name == lcCurrentScene.Name).ToList <SceneScript>().First <SceneScript>();
                PlayerManagerScript._CurrentPlayer.CurrentLocationID = lcNewScene.Name;
            }

            //check if new scene has a display event
            HasEvent(lcNewScene.Event);

            //if scene has been visited and scanned, Set this as text output
            if (Visited(lcNewScene) && Scanned(lcNewScene))
            {
                prCommand._Result = lcNewScene.Name + "\n" +
                                    lcNewScene.SceneStoryDescription + "\n" +
                                    _Scanned;
            }
            //Else if scene has only been visited, set this as text output
            else if (Visited(lcNewScene))
            {
                prCommand._Result = lcNewScene.Name + "\n" +
                                    lcNewScene.SceneStoryDescription + "\n" +
                                    _NotScanned;
            }
            else
            {
                //Update player saying they have visited this area before
                PlayerManagerScript._CurrentPlayer.Visted = PlayerManagerScript._CurrentPlayer.Visted + "," + lcNewScene.Name;
                //Update player with more score
                PlayerManagerScript._CurrentPlayer.PlayerScore += 10;
                //Set this as text output
                prCommand._Result = lcNewScene.Name + "\n" + lcNewScene.SceneStoryDescription;
            }
            _db.Connection.InsertOrReplace(PlayerManagerScript._CurrentPlayer);
        }
        else
        {
            prCommand._Result = "switch to the terminal to move";
        }
    }
Example #2
0
    public override void Do(CommandMapScript prCommand)
    {
        //Turn off display events
        TurnOffEvent();

        //Assign players current local to a local variable
        SceneScript lcCurrentScene = PlayerManagerScript.GetCurrentScene();

        //Get scene direction by selecting where From Scene name is current Scenes and direction is users input
        SceneDirectionScript lcSceneDirection = _db.Connection.Table <SceneDirectionScript>().Where <SceneDirectionScript>(x => x.FromSceneName == lcCurrentScene.Name && x.Direction == _direction).ToList <SceneDirectionScript>().First <SceneDirectionScript>();

        //Get new scene by selecting where name is scene direction's to scene variable
        SceneScript lcNewScene = _db.Connection.Table <SceneScript>().Where <SceneScript>(x => x.Name == lcSceneDirection.ToSceneName).ToList <SceneScript>().First <SceneScript>();

        //Update current player with new scene
        PlayerManagerScript._CurrentPlayer.CurrentLocationID = lcNewScene.Name;

        //Save updated player in database
        _db.Connection.InsertOrReplace(PlayerManagerScript._CurrentPlayer);

        //check if new scene has a display event
        HasEvent(lcNewScene.Event);

        //if scene has been visited and scanned, Set this as text output
        if (Visited(lcNewScene) && Scanned(lcNewScene))
        {
            prCommand._Result = lcNewScene.Name + "\n" +
                                lcNewScene.SceneStoryDescription + "\n" +
                                _Scanned;
        }
        //Else if scene has only been visited, set this as text output
        else if (Visited(lcNewScene))
        {
            prCommand._Result = lcNewScene.Name + "\n" +
                                lcNewScene.SceneStoryDescription + "\n" +
                                _NotScanned;
        }
        else
        {
            //Update player saying they have visited this area before
            PlayerManagerScript._CurrentPlayer.Visted = PlayerManagerScript._CurrentPlayer.Visted + "," + lcNewScene.Name;
            //Update player with more score
            PlayerManagerScript._CurrentPlayer.PlayerScore += 10;
            //Save updated player into database
            _db.Connection.InsertOrReplace(PlayerManagerScript._CurrentPlayer);
            //Set this as text output
            prCommand._Result = lcNewScene.Name + "\n" + lcNewScene.SceneStoryDescription;
        }
    }