IEnumerator Respawn(float cooldown)
    {
        yield return(new WaitForSeconds(cooldown));

        GameObject arturSceneManager = GameObject.FindGameObjectWithTag("SceneManager");

        ArturMetaInf metaInf      = arturSceneManager.GetComponent <ArturMetaInf>();
        LevelMetaInf levelMetaInf = transform.GetComponentInParent <LevelMetaInf>();

        Vector3 respawnPosition = levelMetaInf.respawnLocation;


        GameObject playerOne = GameObject.FindGameObjectWithTag("Player1");
        GameObject playerTwo = GameObject.FindGameObjectWithTag("Player2");

        playerOne.transform.parent = null;
        playerTwo.transform.parent = null;

        ArturPlayerOneController p1 = playerOne.GetComponent <ArturPlayerOneController>();
        ArturPlayerTwoController p2 = playerTwo.GetComponent <ArturPlayerTwoController>();

        p1.Respawn(respawnPosition + new Vector3(0, 3, 0));
        p2.Respawn(respawnPosition + new Vector3(2, 3, 0));


        metaInf.playerLives--;


        GameObject[] rooms = GameObject.FindGameObjectsWithTag("Room");

        foreach (GameObject g in rooms)
        {
            Vector3    instantiateAt = g.GetComponent <LevelMetaInf>().instantiatedAt;
            GameObject room          = Resources.Load <GameObject>("Rooms/" + ArturSceneManager.currentLevel + "/" + g.GetComponent <LevelMetaInf>().roomNumber);
            room.GetComponent <LevelMetaInf>().instantiatedAt  = instantiateAt;
            room.GetComponent <LevelMetaInf>().lastBlock       = g.GetComponent <LevelMetaInf>().lastBlock;
            room.GetComponent <LevelMetaInf>().respawnLocation = g.GetComponent <LevelMetaInf>().respawnLocation;

            Instantiate(room, instantiateAt, Quaternion.identity);
            Destroy(g);
        }
        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject enemy in enemies)
        {
            Destroy(enemy);
        }

        string         enemyPath         = "Prefabs/Main/Enemies/Enemy";
        List <Vector3> allEnemyPositions = GameObject.FindGameObjectWithTag("ProceduralGenerator").GetComponent <ArturProceduralGeneratorManagerScript>().allEnemyPositions;

        foreach (Vector3 enemyPos in allEnemyPositions)
        {
            GameObject enemy = Resources.Load <GameObject>(enemyPath);
            Instantiate(enemy, enemyPos, Quaternion.identity);
        }
    }
Exemple #2
0
    public void Start()
    {
        pauseScreen            = GameObject.Find("PauseScreen");
        saveScoreScreen        = GameObject.Find("SaveScoreScreen");
        afterSavingNamesScreen = GameObject.Find("AfterSavingNamesScreen");
        gameoverScreen         = GameObject.Find("GameOverScreen");
        endOfLevelScreen       = GameObject.Find("EndOfLevelScreen");
        endOfLevelScreenFire   = GameObject.Find("EndOfLevelScreenFire");
        endLevelScore          = GameObject.Find("EndOfLevel - Score").GetComponent <Text>();
        endLevelScoreF         = GameObject.Find("EndOfLevel - ScoreF").GetComponent <Text>();

        player1 = GameObject.FindGameObjectWithTag("Player1").GetComponent <ArturPlayerOneController>();
        player2 = GameObject.FindGameObjectWithTag("Player2").GetComponent <ArturPlayerTwoController>();

        p1GameObject = GameObject.FindGameObjectWithTag("Player1");
        p2GameObject = GameObject.FindGameObjectWithTag("Player2");

        metaInf = GetComponent <ArturMetaInf>();

        pauseScreen.SetActive(false);
        gameoverScreen.SetActive(false);
        endOfLevelScreen.SetActive(false);
        endOfLevelScreenFire.SetActive(false);

        StandaloneInputModule inputModule = EventSystem.current.gameObject.GetComponent <StandaloneInputModule>();

        if (player1.controllerType == "DS4" && player1.playerNumber == 1)
        {
            inputModule.cancelButton   = "ds4_p1_button_circle";
            inputModule.submitButton   = "ds4_p1_button_x";
            inputModule.verticalAxis   = "ds4_p1_left_vertical";
            inputModule.horizontalAxis = "ds4_p1_left_horizontal";
        }
        else if (player1.controllerType == "DS4" && player1.playerNumber == 2)
        {
            inputModule.cancelButton   = "ds4_p2_button_circle";
            inputModule.submitButton   = "ds4_p2_button_x";
            inputModule.verticalAxis   = "ds4_p2_left_vertical";
            inputModule.horizontalAxis = "ds4_p2_left_horizontal";
        }
        else if (player1.controllerType == "Xbox" && player1.playerNumber == 1)
        {
            inputModule.cancelButton   = "xbox_p1_button_x";
            inputModule.submitButton   = "xbox_p1_button_a";
            inputModule.verticalAxis   = "xbox_p1_left_vertical";
            inputModule.horizontalAxis = "xbox_p1_left_horizontal";
        }
        else if (player1.controllerType == "Xbox" && player1.playerNumber == 2)
        {
            inputModule.cancelButton   = "xbox_p2_button_x";
            inputModule.submitButton   = "xbox_p2_button_a";
            inputModule.verticalAxis   = "xbox_p2_left_vertical";
            inputModule.horizontalAxis = "xbox_p2_left_horizontal";
        }
    }
Exemple #3
0
    public void Respawn(Vector3 position)
    {
        transform.position = position;
        energy             = 1;
        ArturMetaInf inf = GameObject.FindGameObjectWithTag("SceneManager").GetComponent <ArturMetaInf>();

        inf.playerHealth = inf.initialPlayerHealth;
        if (gravityReversed)
        {
            ReverseGravity();
        }
    }
    IEnumerator SetBuff(ArturBasePlayerController player)
    {
        player.speedBonus = true;
        GetComponent <Renderer>().enabled = false;
        GetComponent <Collider>().enabled = false;
        player.maxAccelerationGrounded   += speedmod;
        ArturMetaInf metaInf = GameObject.FindGameObjectWithTag("SceneManager").GetComponent <ArturMetaInf>();

        yield return(new WaitForSeconds(metaInf.speedBonusTime));

        player.maxAccelerationGrounded -= speedmod;
        player.speedBonus = false;
        Destroy(gameObject);
    }
Exemple #5
0
    public override void Effects(ArturBasePlayerController player)
    {
        // player.health += healthmod;
        ArturMetaInf arturMetaInf = GameObject.FindGameObjectWithTag("SceneManager").GetComponent <ArturMetaInf>();

        if (arturMetaInf.playerHealth + healthmod > arturMetaInf.initialPlayerHealth)
        {
            arturMetaInf.playerHealth = arturMetaInf.initialPlayerHealth;
        }
        else
        {
            arturMetaInf.playerHealth += healthmod;
        }
        Destroy(gameObject);
    }
Exemple #6
0
    void Start()
    {
        player1 = GameObject.FindGameObjectWithTag("Player1").GetComponent <ArturPlayerOneController>();
        player2 = GameObject.FindGameObjectWithTag("Player2").GetComponent <ArturPlayerTwoController>();
        metaInf = GetComponent <ArturMetaInf>();

        speedBonusTimePlayer1 = metaInf.speedBonusTime;
        speedBonusTimePlayer2 = metaInf.speedBonusTime;

        //splitScreenController = GameObject.Find("SplitScreen").GetComponent<SplitScreenController>();
        splitScreenController = GameObject.FindGameObjectWithTag("SplitScreenController").GetComponent <ArturSplitScreenCamera>();

        barContainerRight = GameObject.Find("Right Corner").GetComponent <Transform>();
        barTemplate       = GameObject.Find("BarTemplate").GetComponent <Transform>();
        barTemplate.gameObject.SetActive(false); // Template is not visible
        barContainerLeft = GameObject.Find("Left Corner").GetComponent <Transform>();
        barPositionRight = new Vector3(1650, 1000, 0);
        barPositionLeft  = new Vector3(-1650, 1000, 0);

        scorebarleft  = GameObject.Find("ScoreBarLeft");
        scorebarright = GameObject.Find("ScoreBarRight");
        livesleft     = GameObject.Find("LivesLeft");
        livesright    = GameObject.Find("LivesRight");
        middlecorner  = GameObject.Find("Middle Corner");

        AddNewBar(1, "energy");
        AddNewBar(2, "energy");

        // Initialize Scoretexts
        scoretexts = GameObject.FindGameObjectsWithTag("HighScoreText");
        foreach (GameObject g in scoretexts)
        {
            g.GetComponent <Text>().text = "0";
        }

        // Initialize Livetexts
        livetexts = GameObject.FindGameObjectsWithTag("LiveText");
        foreach (GameObject g in livetexts)
        {
            g.GetComponent <Text>().text = metaInf.playerLives.ToString();
        }
        // Initialize Health
        livesleft.transform.Find("Health").GetComponent <Image>().fillAmount  = (float)metaInf.playerHealth / (float)metaInf.initialPlayerHealth;
        livesright.transform.Find("Health").GetComponent <Image>().fillAmount = (float)metaInf.playerHealth / (float)metaInf.initialPlayerHealth;
        middlecorner.transform.Find("LivesMiddle").Find("Health").GetComponent <Image>().fillAmount = (float)metaInf.playerHealth / (float)metaInf.initialPlayerHealth;
    }