Example #1
0
 private void InitializePlayerData()
 {
     PlayerData = new FCharacterSelectData[MAX_PLAYERS];
     for (int PlayerIdx = 0; PlayerIdx < PlayerData.Length; ++PlayerIdx)
     {
         PlayerData[PlayerIdx] = new FCharacterSelectData();
     }
 }
Example #2
0
    // Use this for initialization
    void Start()
    {
        // GameObject finds
        PersistentDataObject = GameObject.Find("PersistentData").GetComponent <GPersistentData>();

        // Late Allocations
        PlayerPrefabs = new GameObject[PersistentDataObject.PlayerData.Length];

        for (int PlayerIdx = 0; PlayerIdx < PersistentDataObject.PlayerData.Length; ++PlayerIdx)
        {
            GameObject CurrentPlayerObject = null;
            Texture2D  Texture             = PersistentDataObject.PlayerData[PlayerIdx].SelectedCharacterTexture;

            CurrentPlayerObject = GameObject.Instantiate(Resources.Load("Prefabs/Characters/PlayerPrefab")) as GameObject;
            CurrentPlayerObject.GetComponent <SpriteRenderer>().sprite = Sprite.Create(Texture, new Rect(0, 0, Texture.width, Texture.height), new Vector2(0.5f, 0.5f));

            // DEBUG::For camera testing purposes, otherwise all characters move the same way from the same input
            if (PlayerIdx > 0)
            {
                CurrentPlayerObject.GetComponent <GCharacterController>().enabled = false;
            }

            CurrentPlayerObject.name = PersistentDataObject.PlayerData[PlayerIdx].PlayerTitle;

            PlayerPrefabs[PlayerIdx] = CurrentPlayerObject;
        }

        // Determine which player controller to enable on each player object.
        for (int PlayerIdx = 0; PlayerIdx < PersistentDataObject.PlayerData.Length; ++PlayerIdx)
        {
            FCharacterSelectData PlayerInfo = PersistentDataObject.PlayerData[PlayerIdx];

            if (PlayerInfo.IsXBoxController())
            {
                GameObject.Find(PlayerInfo.PlayerTitle).GetComponent <GCharacterXboxController>().enabled = true;
            }
            else
            {
                GameObject.Find(PlayerInfo.PlayerTitle).GetComponent <GCharacterController>().enabled = true;
            }
        }

        GBattleCam BattleCamScript = Camera.main.GetComponent <GBattleCam>();

        if (BattleCamScript)
        {
            BattleCamScript.enabled = true;
        }


        DefaultTimeScale  = UnityEngine.Time.timeScale;
        GameSlowTimeScale = 0.4f;

        WeaponSpawnTime = Random.Range(30.0f, 60.0f);
    }
Example #3
0
    private void ProcessControllerInput()
    {
        // Joystick enumeration index. This is a base value and should be added to (KCode + ButtonOffset) only.
        const KeyCode        KCode      = KeyCode.JoystickButton0;
        FCharacterSelectData PlayerInfo = PlayerData[FControllerIndex.XBoxController];

        // Xbox Controller: A
        if (Input.GetKeyDown(KCode))
        {
            if (!PlayerInfo.IsEnabled())
            {
                PlayerInfo.Enable();
                PlayerInfo.IsKeyboard(false);
            }
        }

        // Actions only available once the player is ready to select.
        if (PlayerInfo.IsEnabled() && !PlayerInfo.IsReady())
        {
            float AxisX = Input.GetAxis("XboxP1_DPadHorizontal");
            if (bAllowDPadInput)
            {
                if (AxisX < 0)
                {
                    PlayerInfo.PrevTexture();
                    bAllowDPadInput = false;
                }
                else if (AxisX > 0)
                {
                    PlayerInfo.NextTexture();
                    bAllowDPadInput = false;
                }
            }

            if (Input.GetKeyDown(KCode + FXboxControllerButton.Button_Start))
            {
                PlayerInfo.IsReady(true);
            }

            if (!bAllowDPadInput)
            {
                bAllowDPadInput = (AxisX == 0);
            }
        }

        if (PlayerInfo.IsReady())
        {
            if (Input.GetKeyDown(KCode + FXboxControllerButton.Button_B))
            {
                PlayerInfo.IsReady(false);
            }
        }
    }
Example #4
0
    // Update is called once per frame
    void Update()
    {
        ProcessInput();

        // Determine whether all players are ready to start the game.
        int NumReadyPlayers = 0;

        for (int PlayerIdx = 0; PlayerIdx < PlayerData.Length; ++PlayerIdx)
        {
            FCharacterSelectData PlayerInfo = PlayerData[PlayerIdx];
            if (PlayerInfo.IsReady())
            {
                ++NumReadyPlayers;
            }
        }

        if (NumReadyPlayers == GInputManager.NumConnectedControllers)
        {
            PreGameSetup();
            Application.LoadLevel("Level_Recourse");
        }
    }
Example #5
0
    private void ProcessKeyboardInput()
    {
        FCharacterSelectData PlayerInfo = PlayerData[FControllerIndex.Keyboard];

        if (!PlayerInfo.IsEnabled())
        {
            if (Input.GetKeyDown(KeyCode.Return))
            {
                PlayerInfo.Enable();
                PlayerInfo.IsKeyboard(true);
            }
        }
        else
        {
            if (!PlayerInfo.IsReady())
            {
                if (Input.GetKeyDown(KeyCode.Return))
                {
                    PlayerInfo.IsReady(true);
                }

                if (Input.GetKeyDown(KeyCode.LeftArrow))
                {
                    PlayerInfo.PrevTexture();
                }
                else if (Input.GetKeyDown(KeyCode.RightArrow))
                {
                    PlayerInfo.NextTexture();
                }
            }
            else
            {
                if (Input.GetKeyDown(KeyCode.Return))
                {
                    PlayerInfo.IsReady(false);
                }
            }
        }
    }
Example #6
0
    void OnGUI()
    {
        GUI.skin = PersistentData.UISkin;

        Vector2 GroupPos = new Vector2(PersistentData.ScreenHalfWidth - GROUP_WIDTH / 2, PersistentData.ScreenHalfHeight - GROUP_HEIGHT / 2);

        GUI.BeginGroup(new Rect(GroupPos.x, GroupPos.y, GROUP_WIDTH, GROUP_HEIGHT));

        for (int BoxIdx = 0; BoxIdx < MAX_PLAYERS; ++BoxIdx)
        {
            GUI.Box(new Rect(BoxIdx * (INFO_BOX_WIDTH + INFO_BOX_PADDING), 0, INFO_BOX_WIDTH, INFO_BOX_HEIGHT), PlayerData[BoxIdx].PlayerTitle);

            Texture2D CharacterTexture = PlayerData[BoxIdx].SelectedCharacterTexture;
            Vector2   ImagePosition    = new Vector2(INFO_BOX_WIDTH / 2 - CharacterTexture.width / 2, INFO_BOX_HEIGHT / 2 - CharacterTexture.height / 2);

            GUI.DrawTexture(new Rect(ImagePosition.x + BoxIdx * (INFO_BOX_WIDTH + INFO_BOX_PADDING), ImagePosition.y, CharacterTexture.width, CharacterTexture.height), CharacterTexture);

            FCharacterSelectData PlayerInfo = PlayerData[BoxIdx];
            if (!PlayerInfo.IsEnabled())
            {
                GUI.Label(new Rect(BoxIdx * INFO_BOX_WIDTH + INFO_BOX_WIDTH + (INFO_BOX_PADDING / 2) - 100, INFO_BOX_HEIGHT - 25, 100, 40), "Press To Start");
            }
            else
            {
                if (!PlayerInfo.IsReady())
                {
                    GUI.Label(new Rect(BoxIdx * INFO_BOX_WIDTH + INFO_BOX_WIDTH + (INFO_BOX_PADDING / 2) - 100, INFO_BOX_HEIGHT - 25, 100, 40), "Select Character");
                }
                else
                {
                    GUI.Label(new Rect(BoxIdx * INFO_BOX_WIDTH + INFO_BOX_WIDTH + (INFO_BOX_PADDING / 2) - 100, INFO_BOX_HEIGHT - 25, 100, 40), "Player Ready");
                }
            }
        }

        GUI.EndGroup();
    }