Exemple #1
0
    void PowerUpReset(PowerUp.Type type)
    {
        if (powerUpsCors[(int)type] != null)
        {
            StopCoroutine(powerUpsCors[(int)type]);
        }
        else
        {
            return;
        }

        powerUpsCors[(int)type] = null;

        switch (type)
        {
        case PowerUp.Type.MULTIPLIER:
            GM.PowerUpMultiplier = 1;
            break;

        case PowerUp.Type.IMMORTALITY:
            PM.immortalityOff();
            break;

        case PowerUp.Type.COINS_SPAWN:
            if (CoinsPowerUpEvent != null)
            {
                CoinsPowerUpEvent(false);
            }
            break;
        }
    }
Exemple #2
0
    private void PowerUpReset(PowerUp.Type type)
    {
        if (powerUpsTime[(int)type] != null)
        {
            StopCoroutine(powerUpsTime[(int)type]);
            //ResetAllPowerUps();
        }
        else
        {
            return;
        }

        powerUpsTime[(int)type] = null;

        switch (type)
        {
        case PowerUp.Type.MULTIPLIER:
            GameManager.gameManager.powerUpMultiplier = 1;
            break;

        case PowerUp.Type.IMMORTALITY:
            PlayerMovement.isImmortal = false;
            break;

        case PowerUp.Type.COINS_SPAWN:
            if (CoinsPowerUpEvent != null)
            {
                CoinsPowerUpEvent(false);
            }
            break;
        }
    }
Exemple #3
0
    void PowerUpUse(PowerUp.Type type)
    {
        if (powerUpsCors[(int)type] == null)
        {
            //PowerUpReset(type);
            powerUpsCors[(int)type] = StartCoroutine(PowerUpCor(type, CreateBonus(type)));

            switch (type)
            {
            case PowerUp.Type.MUILTIPLIER:
                GM.PowerUpMultiplier = 2;

                break;

            case PowerUp.Type.IMMORTALITY:
                PM.ImmortalityOn();

                break;

            case PowerUp.Type.GEMSEVERYWHERE:
                if (GemsPowerUpEvent != null)
                {
                    GemsPowerUpEvent(true);
                }

                break;
            }
        }
    }
Exemple #4
0
    private void cascateDeletion(PowerUp.Type damageType)
    {
        // TODO: the animation
        Block[] blocks = Object.FindObjectsOfType(typeof(Block)) as Block[];
        gettingDeleted = true;

        foreach (Block block in blocks)
        {
            if (block.gameObject == gameObject)
            {
                continue;
            }

            if (block.GetComponent <Collider2D>().IsTouching(GetComponent <Collider2D>()))
            {
                if (block.type == type)
                {
                    if (!block.gettingDeleted)
                    {
                        deleting = true;
                        block.cascateDeletion(damageType);
                    }
                }
            }
        }
    }
Exemple #5
0
    void PowerUpReset(PowerUp.Type type)
    {
        if (powerUpsCors[(int)type] != null)        // Если корутина с данным типом паверапа запущена
        {
            StopCoroutine(powerUpsCors[(int)type]); // Останавливаем ее
        }
        else                                        // Иначе выходим из функции
        {
            return;
        }

        powerUpsCors[(int)type] = null; // Обнуляем корутину по индексу

        switch (type)                   // Свич для деактивации эффекта паверапа
        {
        case PowerUp.Type.MUILTIPLIER:
            GM.PowerUpMultiplier = 1;       // Возвращение к норме
            break;

        case PowerUp.Type.IMMORTALITY:
            PM.ImmortalityOff();          // Отключене бессмертия
            break;

        case PowerUp.Type.COINS_SPAWN:
            if (CoinsPowerUpEvent != null)
            {
                CoinsPowerUpEvent(false);
            }
            break;
        }
    }
Exemple #6
0
    void PowerUpReset(PowerUp.Type type)
    {
        if (powerUpsCors[(int)type] != null)
        {
            StopCoroutine(powerUpsCors[(int)type]);
        }
        else
        {
            return;
        }

        powerUpsCors[(int)type] = null;

        switch (type)
        {
        case PowerUp.Type.MUILTIPLIER:
            GM.PowerUpMultiplier = 1;

            break;

        case PowerUp.Type.IMMORTALITY:
            PM.ImmortalityOff();

            break;

        case PowerUp.Type.GEMSEVERYWHERE:
            if (GemsPowerUpEvent != null)
            {
                GemsPowerUpEvent(false);
            }

            break;
        }
    }
Exemple #7
0
    PowerUpScript CreatePowerUpPref(PowerUp.Type type)
    {
        GameObject go = Instantiate(powerUpPref, powerUpGrid, false);
        var        ps = go.GetComponent <PowerUpScript>();

        powerUpsList.Add(ps);
        ps.SetData(type);
        return(ps);
    }
Exemple #8
0
    void Start()
    {
        powerUpState = PowerUp.Type.NONE;

        isCollideable = true;

        rb = GetComponent <Rigidbody>();

        gameManager = GameObject.Find("GameManager").GetComponent <GameManager>();
    }
    PowerupScr CreatePowerupPref(PowerUp.Type type)
    {
        GameObject go = Instantiate(PowerupPref, PowerupGrid, false);

        var ps = go.GetComponent <PowerupScr>();

        powerups.Add(ps);

        ps.SetData(type);
        return(ps);
    }
Exemple #10
0
    BonusScr CreateBonus(PowerUp.Type type)
    {
        GameObject go = Instantiate(Bonus, BonusGrid, false);

        var ps = go.GetComponent <BonusScr>();

        powerups.Add(ps);

        ps.SetData(type);
        return(ps);
    }
Exemple #11
0
    PowerupScr CreatePowerupPref(PowerUp.Type type)   // Инстанциируем префаб и возвращем созданный паверап
    {
        GameObject go = Instantiate(PowerupPref, PowerupGrid, false);

        var ps = go.GetComponent <PowerupScr>();

        powerups.Add(ps);

        ps.SetData(type);
        return(ps);
    }
Exemple #12
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.CompareTag("Enemy"))
     {
         if (powerUpState == PowerUp.Type.BOUNCE)
         {
             List <GameObject> nearbyEnemies = new List <GameObject>();
             foreach (GameObject enemyObject in GameObject.FindGameObjectsWithTag("Enemy"))
             {
                 if (Vector3.Distance(transform.position, enemyObject.transform.position) <= 5)
                 {
                     nearbyEnemies.Add(enemyObject);
                 }
             }
             if (!nearbyEnemies.Contains(collision.gameObject))
             {
                 nearbyEnemies.Add(collision.gameObject);
             }
             foreach (GameObject enemyObject in nearbyEnemies)
             {
                 enemyObject.GetComponent <Rigidbody>().AddExplosionForce(50.0f, transform.position, 5.0f, 1.0f, ForceMode.Impulse);
             }
             powerUpState = PowerUp.Type.NONE;
             UpdatePowerUpIndicator();
         }
     }
     if (collision.gameObject.CompareTag("Boss"))
     {
         collision.gameObject.GetComponent <BossController>().isHit(gameObject);
         rb.AddForce(collision.gameObject.GetComponent <BossController>().GetPlayerLaunchVector(gameObject), ForceMode.Impulse);
         if (powerUpState == PowerUp.Type.BOUNCE)
         {
             collision.gameObject.GetComponent <BossController>().isHit(gameObject);
             List <GameObject> nearbyEnemies = new List <GameObject>();
             foreach (GameObject enemyObject in GameObject.FindGameObjectsWithTag("Enemy"))
             {
                 if (Vector3.Distance(transform.position, enemyObject.transform.position) <= 5)
                 {
                     nearbyEnemies.Add(enemyObject);
                 }
             }
             if (!nearbyEnemies.Contains(collision.gameObject))
             {
                 nearbyEnemies.Add(collision.gameObject);
             }
             foreach (GameObject enemyObject in nearbyEnemies)
             {
                 enemyObject.GetComponent <Rigidbody>().AddExplosionForce(50.0f, transform.position, 5.0f, 1.0f, ForceMode.Impulse);
             }
             powerUpState = PowerUp.Type.NONE;
             UpdatePowerUpIndicator();
         }
     }
 }
Exemple #13
0
    void Start()
    {
        //this.gameObject.name = this.GOname;
        phase = GamePhase.Wait;
        phase = GamePhase.Prepare;

        fuelTimer           = 0.2f;
        fuelTimerIncreasing = true;
        prepareTimer        = 30;
        launchTimer         = 5;
        countdown           = 5;
        shotTimer           = 0;
        magazine            = magazineSize;
        ammo     -= magazineSize;
        reloading = false;
        health    = maxHealth;
        //goLaunch = false;
        ready = false;

        // TODO: Set to NULL
        itemSlot = PowerUp.Type.Bomb;

        activeShield = false;
        gameOver     = false;

        goal     = GameObject.Find("Goal 1").transform;
        pManager = GameObject.Find("Projectile Manager GO").GetComponent <ProjectileManager>();
        cam      = GameObject.Find("Camera").GetComponent <CameraBehaviour>();

        registeredClient = false;
        if (isLocalPlayer)
        {
            cam.playerTransform  = this.transform;
            this.gameObject.name = "PlayerRocket (Local)";

            if (!isServer)
            {
                return;
            }
            hostRocket = this.gameObject;

            // Register this rocket (The host must know himself too)
            pNo = hostRocket.GetComponent <ServerScript>().RegisterRocket();
            hostRocket.GetComponent <ServerScript>().isHost = true;

            if (pNo != 0)
            {
                registeredClient = true;
            }

            playerRB.position           = GameObject.Find("Launch Pad P" + pNo).transform.position + new Vector3(0, 4, 0);
            playerRB.transform.rotation = Quaternion.Euler(new Vector3(0, -90, -60));
        }
    }
Exemple #14
0
    PowerUpScr createPowerUpPref(PowerUp.Type type)
    {
        GameObject go = Instantiate(PowerUpPref, PowerUpGrid, false);

        PowerUpScr p = go.GetComponent <PowerUpScr>();

        powerups.Add(p);

        p.SetData(type);

        return(p);
    }
Exemple #15
0
    void Bomb()
    {
        if (itemSlot == PowerUp.Type.Bomb && (Input.GetKeyDown(KeyCode.Joystick1Button4) || Input.GetKey(KeyCode.F)))
        {
            itemSlot = PowerUp.Type.NULL;
            CmdUseBomb();

            AudioSource audioPlayer = gameObject.GetComponent <AudioSource>();
            audioPlayer.clip = audioClip[3];
            audioPlayer.Play();
        }
    }
Exemple #16
0
    void Update()
    {
        powerUpIndicator.transform.position = transform.position;
        powerUpIndicator.transform.Rotate(new Vector3(0.0f, 15.0f, 0.0f) * Time.deltaTime);

        if (transform.position.y <= -10 && gameManager.gameState == GameManager.GameState.STARTED)
        {
            gameManager.endGame();
            powerUpState = PowerUp.Type.NONE;
            UpdatePowerUpIndicator();
            Destroy(gameObject);
        }
    }
Exemple #17
0
 void Equip(PowerUp.Type type)
 {
     if (powerUp == type)
     {
         powerUp = PowerUp.Type.None;
         powerUps.ForEach(p => p.Unselect());
     }
     else
     {
         powerUps.Where(p => p.type == type).ToList().ForEach(p => { p.Select(); powerUp = type; });
         powerUps.Where(p => p.type != type).ToList().ForEach(p => p.Unselect());
     }
 }
Exemple #18
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("Power Up") && isCollideable)
     {
         if (powerUpState == PowerUp.Type.NONE)
         {
             PowerUp powerUp = other.GetComponent <PowerUp>();
             powerUpState = powerUp.type;
             UpdatePowerUpIndicator();
             Destroy(other.gameObject);
         }
     }
 }
Exemple #19
0
    void OnTriggerEnter(Collider collider)
    {
        // Check for Power-Ups here
        if (collider.CompareTag("Finish"))
        {
            I_Win();
        }

        if (collider.CompareTag("Power-Up"))
        {
            // Remove power up object
            Destroy(collider.gameObject);
            PowerUp powerUp = collider.GetComponent <PowerUp>();

            AudioSource audioPlayer = gameObject.GetComponent <AudioSource>();
            audioPlayer.clip = audioClip[4];
            audioPlayer.Play();

            switch (powerUp.type)
            {
            case (PowerUp.Type.Fuel):
                // 15% fuel per Power-Up lvl
                fuel += powerUp.value * 15;
                fuel  = Mathf.Min(fuel, 100);
                break;

            case (PowerUp.Type.Speed):
                // ThrusterForce equal to the force the player would get when thrusting for 1 sec (roughly)
                // Multiplied with Power-Up lvl
                Vector3 thrustForce = playerRB.transform.up * thrusterForce * 60 * powerUp.value;
                playerRB.AddForce(thrustForce);
                break;

            case (PowerUp.Type.Health):
                // 15% health regained per Power-Up lvl
                health += maxHealth * 15 * powerUp.value;
                break;

            case (PowerUp.Type.Bomb):
                // Player now has a Bomb
                itemSlot = PowerUp.Type.Bomb;
                break;

            case (PowerUp.Type.Shield):
                // Player now has a Shield
                itemSlot = PowerUp.Type.Shield;
                break;
            }
        }
    }
Exemple #20
0
    /// <summary>
    /// Реализует сверхспособность
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    IEnumerator PowerUpCor(PowerUp.Type type)
    {
        float duration = powerUps[(int)type].Duration;


        while (duration > 0)
        {
            duration -= Time.deltaTime;
            yield return(null);
        }



        PowerUpReset(type);
    }
Exemple #21
0
    /// <summary>
    /// Метод реализует использование сверхспособности любого типа
    /// </summary>
    /// <param name="type"></param>
    public void PowerUpUse(PowerUp.Type type)
    {
        PowerUpReset(type);
        powerUpsCors[(int)type] = StartCoroutine(PowerUpCor(type));

        switch (type)
        {
        case PowerUp.Type.MUILTIPLIER:
            GM.PowerUpMultiplier = 2;
            break;

        case PowerUp.Type.IMMORTALITY:
            PM.ImmortalityOn();
            break;
        }
    }
Exemple #22
0
    /// <summary>
    /// Interrupts a ship ability, if it's active.
    /// </summary>
    /// <param name="powerup">Ability to Stop.</param>
    private void StopPowerUp(PowerUp.Type powerup)
    {
        switch (powerup)
        {
        case PowerUp.Type.TripleShot:
            if (tripleShotCoroutine != null)
            {
                StopCoroutine(tripleShotCoroutine);
                tripleShotCoroutine = null;
            }

            ReturnToDefaultFireRate();
            break;

        case PowerUp.Type.HeatSeek:
            if (heatSeekShotCoroutine != null)
            {
                StopCoroutine(heatSeekShotCoroutine);
                heatSeekShotCoroutine = null;
            }

            ReturnToDefaultFireRate();
            break;

        case PowerUp.Type.Speed:
            if (extraSpeedCoroutine != null)
            {
                StopCoroutine(extraSpeedCoroutine);
                extraSpeedCoroutine = null;
            }
            break;

        case PowerUp.Type.Shield:
            StopShield();
            break;

        case PowerUp.Type.Virus:
            if (virusCoroutine != null)
            {
                StopCoroutine(virusCoroutine);
                virusCoroutine = null;
            }
            break;
        }
    }
 public void ActivatePowerUp(PowerUp.Type type)
 {
     if (type == PowerUp.Type.TripleShot)
     {
         tripleShotActivated = true;
         tripleShotTimer     = Time.time + 10f;
     }
     else if (type == PowerUp.Type.Shield)
     {
         shieldActivated = true;
         shieldGameObject.SetActive(true);
         shieldTimer = Time.time + 10f;
     }
     else if (type == PowerUp.Type.Speed)
     {
         uiManager.fuelCount += .25f;
         //Debug.Log("add more fuel");
     }
 }
Exemple #24
0
    IEnumerator PowerUpTime(PowerUp.Type type, PowerUpScript powerUpPref)
    {
        float time        = powerUps[(int)type].duration;
        float currentTime = time;

        while (currentTime > 0)
        {
            powerUpPref.SetProgress(currentTime / time);
            if (GameManager.gameManager.runnin)
            {
                currentTime -= Time.deltaTime;
            }
            yield return(null);
        }

        powerUpsList.Remove(powerUpPref);
        StartCoroutine(powerUpPref.DestroyBar());

        PowerUpReset(type);
    }
Exemple #25
0
    void ApplyPowerUp(GameObject powerUp)
    {
        PowerUp.Type type = powerUp.GetComponent <PowerUp>().type;

        if (type == PowerUp.Type.Enlarge)
        {
            Vector3 gain = new Vector3(.2f, 0, 0);

            transform.localScale += gain;
            audioSrc.pitch        = Random.Range(.9f, 1.1f);
            audioSrc.PlayOneShot(powerUpSound);
            ScoreController.instance.Add(100);
        }
        else if (type == PowerUp.Type.BottomWall)
        {
            GameObject.Find("BottomWall").GetComponent <BottomWall>().Activate();
        }

        Destroy(powerUp);
    }
Exemple #26
0
    private void shootAtPoint(Vector3 target, PowerUp.Type pType)
    {
        GameObject        prefab    = inventory.powerUpsPrefabs[powerTypeToShoot];
        GameObject        bullet    = GameObject.Instantiate(prefab, spawnPlace.position, Quaternion.identity);
        MoveForwardsAngle mfa       = bullet.GetComponent <MoveForwardsAngle>();
        Vector3           direction = target - spawnPlace.position;
        float             angle     = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;

        mfa.angle = angle;

        GameObject  popUp = GameObject.Instantiate(popUpPrefab);
        CameraPopUp pS    = popUp.GetComponent <CameraPopUp>();

        pS.followTarget(bullet.transform, player, GameManager.instance.getMaxPlayers());

        //Volta a mover bloco
        isUsingPowerUp = false;
        controlledPiece.gameObject.SetActive(true);
        cursor.gameObject.SetActive(false);
        camera.returnToFollowLine();
    }
Exemple #27
0
    IEnumerator PowerUpCor(PowerUp.Type type, PowerupScr powerupPref)   // Контроль длительности действия паверапов
    {
        float duration     = powerUps[(int)type].Duration;
        float currDuration = duration;

        while (currDuration > 0)
        {
            powerupPref.SetProgress(currDuration / duration);

            if (GM.CanPlay)                     // Чтобы во время паузы не уменьшалось время паверапов
            {
                currDuration -= Time.deltaTime; // Уменьшение времени паверапов
            }
            yield return(null);
        }

        powerups.Remove(powerupPref);   // Удаляем паверап из списка
        powerupPref.Destroy();

        PowerUpReset(type);
    }
Exemple #28
0
    IEnumerator PowerUpCor(PowerUp.Type type, PowerUpScr powerupPref)
    {
        float duration     = powerUps[(int)type].Duration;
        float currDuration = duration;

        while (currDuration > 0)
        {
            powerupPref.SetProgress(currDuration / duration);

            if (GM.CanPlay)
            {
                currDuration -= Time.deltaTime;
            }

            yield return(null);
        }

        powerups.Remove(powerupPref);
        powerupPref.Destroy();

        PowerUpReset(type);
    }
Exemple #29
0
    void PowerUpUse(PowerUp.Type type)
    {
        PowerUpReset(type);   // Чтоб при поднятии 2х одинаковых паверапов подряд эффекты не накладывались друг на друга
        powerUpsCors[(int)type] = StartCoroutine(PowerUpCor(type, CreatePowerupPref(type)));

        switch (type)    // Свич для применения эффекта паверапа
        {
        case PowerUp.Type.MUILTIPLIER:
            GM.PowerUpMultiplier = 2;        // Удвоение очков
            break;

        case PowerUp.Type.IMMORTALITY:
            PM.ImmortalityOn();             // Включение бессмертия
            break;

        case PowerUp.Type.COINS_SPAWN:
            if (CoinsPowerUpEvent != null)
            {
                CoinsPowerUpEvent(true);
            }
            break;
        }
    }
Exemple #30
0
    void PowerUpUse(PowerUp.Type type)
    {
        PowerUpReset(type);
        powerUpsCors[(int)type] = StartCoroutine(PowerUpCor(type, createPowerUpPref(type)));

        switch (type)
        {
        case PowerUp.Type.MULTIPLIER:
            GM.PowerUpMultiplier = 2;
            break;

        case PowerUp.Type.IMMORTALITY:
            PM.ImmortalityOn();
            break;

        case PowerUp.Type.COINS_SPAWN:
            if (CoinsPowerUpEvent != null)
            {
                CoinsPowerUpEvent(true);
            }
            break;
        }
    }