Sets up a unique identity for the player
Inheritance: NetworkBehaviour
示例#1
0
    public void rpc_receiveTarget(int target, PhotonMessageInfo info)
    {
        //player saves his own target
        targetPlayer = (Player_ID)target;

        //and sets the right face to the target image in the HUD
        targetImage.setImage("Players/player_" + target.ToString());
    }
示例#2
0
 public void CreateBoards(Player_ID ID)
 {
     if (isLocalPlayer) {
         playerIdentity = ID;
         playerTeam = playerIdentity.playerTeam;
         createBoard (POS_BOARD1_X, POS_BOARD1_Y, LEN_BOARD_X, LEN_BOARD_Y, e_player.PLAYER1);
         createBoard (POS_BOARD2_X, POS_BOARD2_Y, LEN_BOARD_X, LEN_BOARD_Y, e_player.PLAYER2);
     }
 }
示例#3
0
    void Awake()
    {
        //Create scrripts
        playerFunctions    = new PlayerFunctionsScript(this);
        markerDistribution = new MarkerDistributionScript();
        playerTool         = new PlayerToolScript(Tool.NONE);

        //set TrackedTarget and Tracked Tool to unknown and -1
        trackedTarget     = Player_ID.UNKNOWN;
        trackedToolMarker = -1;
    }
示例#4
0
    // Use this for initialization
    void Start()
    {
        audioSync         = GetComponent <Audio_Sync>();
        playerPauseScirpt = GetComponent <Player_Pause>();
        //engineParent = transform.Find("Engines").gameObject;
        healthScript     = GetComponent <Player_Health>();
        variablesScript  = GetComponent <variables>();
        playerChatScript = GetComponent <Player_Chat>();
        playerIDScript   = GetComponent <Player_ID>();

        healthScript.EventDie += DisablePlayer;         //Subscribes it to the EventDie
    }
示例#5
0
    // Use this for initialization
    void Start()
    {
        //if (isLocalPlayer) {

        variablesScript       = GetComponent <variables>();
        playerBoostScript     = GetComponent <Player_Boost>();
        playerDeathScript     = GetComponent <Player_Death>();
        playerRespawnScript   = GetComponent <Player_Respawn>();
        playerFireScript      = GetComponent <Player_Fire>();
        playerHealthScript    = GetComponent <Player_Health>();
        playerIDScript        = GetComponent <Player_ID>();
        shipControlScript     = GetComponent <ShipControl>();
        playerEngineScript    = GetComponent <Player_Engine>();
        playerSpotlightScript = GetComponent <Player_Spotlight>();
        playerNetworkSetup    = GetComponent <Player_NetworkSetup>();

        if (isLocalPlayer)
        {
            playerType = PlayerPrefs.GetString("ShipType");
            //print("Setting player type to: " + playerType);
            if (playerType != "Large" && playerType != "Medium" && playerType != "Small")
            {
                playerType = "Medium";
            }
            if (playerType == "Small")
            {
                Cmd_EnableSmallShip();
            }
            else if (playerType == "Medium")
            {
                Cmd_EnableMediumShip();
            }
            else if (playerType == "Large")
            {
                Cmd_EnableLargeShip();
            }
            CmdTellServerMyShip(playerType);
        }

        /*
         * if (!isLocalPlayer) {
         *  if (playerTypeGlobal == "Small") {
         *      Cmd_EnableSmallShip();
         *  }
         *  else if (playerTypeGlobal == "Medium") {
         *      Cmd_EnableMediumShip();
         *  }
         *  else if (playerTypeGlobal == "Large") {
         *      Cmd_EnableLargeShip();
         *  }
         * }
         */
    }
示例#6
0
    //Master checks if the game is finished
    //His player ID is the playerID of the last player that has been arrested
    public void checkIfGameFinished(Player_ID hisPlayerID)
    {
        //loop over all active players
        //Remove lastly arrested player from active player list
        for (int i = 0; i < activePlayers.Count; i++)
        {
            //if active player id matches player id
            if (activePlayers[i] == hisPlayerID)
            {
                //remove whole player and his target from the list
                activePlayers.RemoveAt(i);
                activePlayersTargets.RemoveAt(i);
                break;
            }
        }

        //loop over all active player targets and remove the
        //lastly arrested player as a target from the player
        for (int i = 0; i < activePlayersTargets.Count; i++)
        {
            //if active player target id matches player id
            if (activePlayersTargets[i] == hisPlayerID)
            {
                //set this players target to unknown
                activePlayersTargets[i] = Player_ID.UNKNOWN;
            }
        }

        //init test variable
        bool gameFinished = true;

        //loop over all player targets
        for (int i = 0; i < activePlayersTargets.Count; i++)
        {
            //check if at least one Target is not unknown yet
            //in this case the variable gameFinished will get false and can never be true again
            gameFinished &= (activePlayersTargets[i] == Player_ID.UNKNOWN);
        }

        //if game finished and not stopped yet
        if (gameFinished && !gameStopped)
        {
            //inform all clients that the game is over
            gameStopped = true;
            player.GetComponent <PhotonView>().RPC("rpc_gameIsOver", PhotonTargets.All);
        }
    }
    public void NewShip()
    {
        if (isLocalPlayer)
        {
            NetworkIdentity ni = GetComponent <NetworkIdentity>();
            Player_ID       id = GetComponent <Player_ID> ();

            GameObject[] spawnPoint = GameObject.FindGameObjectsWithTag("SpawnPoint");
            int          r          = Random.Range(0, spawnPoint.Length);

            GameObject      newShip = (GameObject)Instantiate(playerPrefab, spawnPoint [r].transform.position, spawnPoint [r].transform.rotation);
            NetworkIdentity newNi   = newShip.GetComponent <NetworkIdentity> ();
            newNi = ni;
            Player_ID newId = newShip.GetComponent <Player_ID> ();
            newId = id;

            NetworkServer.Destroy(gameObject);
        }
    }
示例#8
0
    public void generatePlayerAndTargetList()
    {
        //Add all available players to a list for available players and also available targets
        for (int i = 0; i < NetworkManager.expectedNumberOfPlayers; i++)
        {
            playerScript.getAvailableTargets().Add((Player_ID)i);
            playerScript.getAvailablePlayers().Add((Player_ID)i);
        }

        //the following code is some logic, to prevent the players from having themselves as a target
        //and also to give the targets some random order, that not every round the same target distribution exists
        bool invalidList = true;

        while (invalidList)
        {
            invalidList = false;

            //Shuffle list randomly
            for (int i = 0; i < playerScript.getAvailableTargets().Count; i++)
            {
                //swap target list
                Player_ID temp_target        = playerScript.getAvailableTargets()[i];
                int       randomIndex_target = Random.Range(0, playerScript.getAvailableTargets().Count);
                playerScript.getAvailableTargets()[i] = playerScript.getAvailableTargets()[randomIndex_target];
                playerScript.getAvailableTargets()[randomIndex_target] = temp_target;

                //swap player list
                Player_ID temp_player        = playerScript.getAvailablePlayers()[i];
                int       randomIndex_player = Random.Range(0, playerScript.getAvailablePlayers().Count);
                playerScript.getAvailablePlayers()[i] = playerScript.getAvailablePlayers()[randomIndex_player];
                playerScript.getAvailablePlayers()[randomIndex_player] = temp_player;
            }

            //if some player has himself as target, shuffle again
            for (int i = 0; i < playerScript.getAvailablePlayers().Count; i++)
            {
                if (playerScript.getAvailablePlayers()[i] == playerScript.getAvailableTargets()[i])
                {
                    invalidList = true;
                }
            }
        }
    }
示例#9
0
    // Use this for initialization
    void Start()
    {
        //Get references to other scripts on the player's gameobject
        variablesScript = GetComponent <variables>();
        gameManager     = GameObject.Find("GameManager");
        chatManager     = gameManager.GetComponent <Chat_Manager>();
        chatInput       = gameManager.GetComponent <GameManager_References>().chatInput.GetComponent <InputField>();
        playerIDScript  = GetComponent <Player_ID>();

        if (isLocalPlayer)       //If its the local player
        //Get the chat send button from the references stored in the GameManager
        {
            chatSend = gameManager.GetComponent <GameManager_References>().chatSendButton.GetComponent <Button>();
            chatSend.onClick.AddListener(SendChat); //Add a listener to that button

            //Add listeners to the inputbox for the chat
            chatInput.onValueChanged.AddListener(Typing);
            chatInput.onEndEdit.AddListener(ExitEditing);
        }
    }
示例#10
0
        public bool SaveAchievement()
        {
            DataRow result = (from row in ds.Tables[(int)XMLTbls.player_achievement].AsEnumerable()
                              where row.Field <string>("player_ID") == Player_ID.ToString() &&
                              row.Field <string>("achievement_ID") == ((int)Player_Achievement).ToString()
                              select row).SingleOrDefault();

            result.BeginEdit();

            int.TryParse(result.ItemArray[(int)PlayerAchievementsTbl.achievement_data].ToString(), out int achievementCount); //current player achievement count

            if (Player_Achievement == Achievements.Star_Light)                                                                // Star Collection is a counter
            {
                if (achievementCount == 0)                                                                                    // record first level achievement
                {
                    DataRow r = (from row in ds.Tables[(int)XMLTbls.player_achievement].AsEnumerable()
                                 where row.Field <string>("player_ID") == Player_ID.ToString() &&
                                 row.Field <string>("achievement_ID") == ((int)Achievements.Star_Power).ToString()
                                 select row).SingleOrDefault();
                    r.BeginEdit();
                    r[(int)PlayerAchievementsTbl.achievement_data] = achieved.ToString();
                    r[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); //record date of achievement
                    r.EndEdit();
                    r.AcceptChanges();
                    xmlUtils.UpdateXMLfile(ds);
                }
                result.ItemArray[(int)PlayerAchievementsTbl.achievement_data] = (Achievement_Data + achievementCount).ToString();
                if ((Achievement_Data + achievementCount) >= (int)Achievement_Counters.Stars && result.ItemArray[(int)PlayerAchievementsTbl.achievement_date].ToString() == string.Empty)
                {
                    result[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); //record date of achievement
                }
            }

            if (Player_Achievement == Achievements.Electrocuted) // Death by Lighting is a counter
            {
                if (achievementCount == 0)                       // record first level achievement
                {
                    DataRow r = (from row in ds.Tables[(int)XMLTbls.player_achievement].AsEnumerable()
                                 where row.Field <string>("player_ID") == Player_ID.ToString() &&
                                 row.Field <string>("achievement_ID") == ((int)Achievements.Shocked).ToString()
                                 select row).SingleOrDefault();
                    r.BeginEdit();
                    r[(int)PlayerAchievementsTbl.achievement_data] = achieved.ToString();
                    r[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); //record date of achievement
                    r.EndEdit();
                    r.AcceptChanges();
                    xmlUtils.UpdateXMLfile(ds);
                }
                result.ItemArray[(int)PlayerAchievementsTbl.achievement_data] = (Achievement_Data + achievementCount).ToString();
                if ((Achievement_Data + achievementCount) >= (int)Achievement_Counters.Lighting && result.ItemArray[(int)PlayerAchievementsTbl.achievement_date].ToString() == string.Empty)
                {
                    result[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString();
                }
            }

            if (Player_Achievement == Achievements.Kills_1)
            {
                result.ItemArray[(int)PlayerAchievementsTbl.achievement_data] = (Achievement_Data + achievementCount).ToString();
                if (Achievement_Data >= (int)Achievement_Counters.Kill_1)
                {
                    result[(int)PlayerAchievementsTbl.achievement_data] = 1;
                    result[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); // record date of first achievement
                }
            }

            if (Player_Achievement == Achievements.Kills_2)
            {
                result.ItemArray[(int)PlayerAchievementsTbl.achievement_data] = (Achievement_Data + achievementCount).ToString();
                if (Achievement_Data >= (int)Achievement_Counters.Kill_2)
                {
                    result[(int)PlayerAchievementsTbl.achievement_data] = 1;
                    result[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); // record date of first achievement
                }
            }

            if (Player_Achievement == Achievements.Kills_3)
            {
                result.ItemArray[(int)PlayerAchievementsTbl.achievement_data] = (Achievement_Data + achievementCount).ToString();
                if (Achievement_Data >= (int)Achievement_Counters.Kill_3)
                {
                    result[(int)PlayerAchievementsTbl.achievement_data] = 1;
                    result[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); // record date of first achievement
                }
            }

            // All other achievements are true or false data types, save as 1, to change from default of 0
            if (result.ItemArray[(int)PlayerAchievementsTbl.achievement_date].ToString() == string.Empty)
            {
                result[(int)PlayerAchievementsTbl.achievement_data] = 1;
                result[(int)PlayerAchievementsTbl.achievement_date] = DateTime.Now.ToString(); // record date of first achievement
            }

            result.EndEdit();
            result.AcceptChanges();
            xmlUtils.UpdateXMLfile(ds);

            return(true);
        }
示例#11
0
        public bool SaveLevel()
        {
            DataTable dt    = ds.Tables[(int)XMLTbls.player_history];
            int       count = dt.AsEnumerable()
                              .Where(i => i.Field <string>("player_ID") == StartScreen.PlayerID.ToString())
                              .Count();

            if (count > 0)
            {
                //player_history
                DataRow result = (from row in ds.Tables[(int)XMLTbls.player_history].AsEnumerable()
                                  where row.Field <string>("player_ID") == Player_ID.ToString() && //player1
                                  row.Field <string>("level_ID") == Level_ID.ToString()         //level1
                                  select row).SingleOrDefault();
                result.BeginEdit();
                int.TryParse(result.ItemArray[(int)PlayerHistoryTbl.points].ToString(), out int level_score);
                if (Level_Score > level_score)
                {
                    result[(int)PlayerHistoryTbl.points] = Level_Score.ToString(); // final score of the level
                }

                int.TryParse(result.ItemArray[(int)PlayerHistoryTbl.level_time].ToString(), out int level_time);
                if (Level_Time < level_time || level_time == 0)
                {
                    result[(int)PlayerHistoryTbl.level_time] = Level_Time;
                    // how long it took to complete the level in seconds
                }

                int.TryParse(result.ItemArray[(int)PlayerHistoryTbl.special_count].ToString(), out int special_count);
                if (Special_Count > special_count)
                {
                    result[(int)PlayerHistoryTbl.special_count] = Special_Count;
                    // how many special items were found in the level-default is one if the player finished the level
                }

                int.TryParse(result.ItemArray[(int)PlayerHistoryTbl.monster_count].ToString(), out int monster_count);
                if (Monster_Count > monster_count)
                {
                    result[(int)PlayerHistoryTbl.monster_count] = Monster_Count; // how many bad guys were defeated
                }

                result[(int)PlayerHistoryTbl.last_played] = DateTime.Now.ToString(); //last played

                if (result.ItemArray[(int)PlayerHistoryTbl.completed].ToString() == string.Empty)
                {
                    result[(int)PlayerHistoryTbl.completed] = DateTime.Now.ToString(); //completed the first time
                }

                int.TryParse(result.ItemArray[(int)PlayerHistoryTbl.level_attempts].ToString(), out int level_attempts);
                if (Level_Attempts < level_attempts || level_attempts == 0)
                {
                    result[(int)PlayerHistoryTbl.level_attempts] = Level_Attempts.ToString();
                    // how many times the level has been played
                }
                result.EndEdit();
                result.AcceptChanges();
                xmlUtils.UpdateXMLfile(ds);
            }

            dt    = ds.Tables[(int)XMLTbls.player];
            count = dt.AsEnumerable()
                    .Where(i => i.Field <string>("player_ID") == StartScreen.PlayerID.ToString())
                    .Count();

            if (count > 0)
            {
                //player character update
                DataRow result = (from row in ds.Tables[(int)XMLTbls.player].AsEnumerable()
                                  where row.Field <string>("player_ID") == Player_ID.ToString() //player1
                                  select row).SingleOrDefault();
                result.BeginEdit();

                int.TryParse(result.ItemArray[(int)PlayerTbl.char_points].ToString(), out int char_points);
                int.TryParse(result.ItemArray[(int)PlayerTbl.char_level].ToString(), out int char_level);
                decimal points = char_points + Char_Points;
                int     lvl    = 0;
                if (points >= LevelUp)
                {
                    points = points / LevelUp;
                    lvl    = (int)Math.Round(points);
                }
                result[(int)PlayerTbl.char_level] = char_level + lvl;
                Char_Level = char_level + lvl;
                result[(int)PlayerTbl.char_points] = char_points - (lvl * LevelUp);

                result.EndEdit();
                result.AcceptChanges();
                xmlUtils.UpdateXMLfile(ds);
            }

            return(true);
        }
示例#12
0
 public void rpc_receivePlayer(int player, PhotonMessageInfo info)
 {
     //player saves his own playerID
     playerID = (Player_ID)player;
 }
示例#13
0
 //Set tracked target to active marker
 public void setTrackedTarget(int trackedEnemy)
 {
     trackedTarget = (Player_ID)trackedEnemy;
 }