Exemple #1
0
    //---------------------------------
    protected override float ModifiedSpeed(float speed)
    {
        float modifiedSpeed = speed;

        if (stabbedTime > 0)
        {
            modifiedSpeed -= speedReducer.x; stabbedTime -= Time.deltaTime;
        }
        if (ammo > 0)
        {
            if (!slider)
            {
                modifiedSpeed -= speedReducer.x;
                shootingTime  += Time.deltaTime;
            }
            else if (shootingTime > 0)
            {
                RecalculateReservedDamage();
                if (shootingTime > 1f)
                {
                    modifiedSpeed += speedReducer.z; shootingTime -= 3 * Time.deltaTime;
                }
                else if (shootingTime > 0.5f)
                {
                    modifiedSpeed += speedReducer.y; shootingTime -= 2 * Time.deltaTime;
                }
                else
                {
                    modifiedSpeed += speedReducer.x; shootingTime -= Time.deltaTime;
                }
            }
        }
        else
        {
            if (shootingTime > 0)
            {
                RecalculateReservedDamage();
                if (shootingTime > 1f)
                {
                    modifiedSpeed += speedReducer.z; shootingTime -= 3 * Time.deltaTime;
                }
                else if (shootingTime > 0.5f)
                {
                    modifiedSpeed += speedReducer.y; shootingTime -= 2 * Time.deltaTime;
                }
                else
                {
                    modifiedSpeed += speedReducer.x; shootingTime -= Time.deltaTime;
                }
            }
        }
        if (adrenalineTime > 0)
        {
            modifiedSpeed       += speedReducer.y;
            adrenalineTime      -= Time.deltaTime;
            adrenalineTimeSpent += Time.deltaTime;
            GameChallenges.HandleEvent(GameChallenges.EventTypes.changedAdrenalineTime, adrenalineTimeSpent);
        }
        return(modifiedSpeed * Time.deltaTime);
    }
Exemple #2
0
 private void UpdateScore(int value)
 {
     score         += (int)Mathf.Floor(value * scoreModifier);
     scoreModifier *= 1 + spentModifier;
     scoreText.text = score.ToString();
     GameChallenges.HandleEvent(GameChallenges.EventTypes.changedScore, score);
 }
Exemple #3
0
 public void GiveNewWeapon(int newWeapon, int amount)
 {
     if (newWeapon != currentWeapon)
     {
         if (currentWeapon != -1)
         {
             weapons[currentWeapon].gameObject.SetActive(false);
         }
         if (newWeapon != -1)
         {
             currentWeapon = newWeapon;
             weapons[currentWeapon].gameObject.SetActive(true);
             weapons[currentWeapon].GetProperties(weaponIcon, weaponNameText, ref maxAmmo, ref shootingCooldown, ref damage, ref spentModifier);
             ammo = 0;
             FillAmmo(amount);
             UpdateShootingSpeedText();
             spent          = -1;
             scoreModifier  = 1f;
             reservedDamage = 0;
             UpdateDamageText();
             if (!gotWeapon)
             {
                 playerInterface.Translate();
                 gotWeapon = true;
             }
             //изменить анимацию под данную пушку
             takenWeapons++;
             GameChallenges.HandleEvent(GameChallenges.EventTypes.tookWeapon, newWeapon);
         }
     }
     else
     {
         FillAmmo(amount);
     }
 }
Exemple #4
0
 public void Dying()
 {
     Destroy(GetComponent <Rigidbody>());
     StopCoroutine(colorChanger);
     StopCoroutine(stabCycle);
     if (alive)
     {
         if (!invulnerable)
         {
             healthBarHandler.Translate();
         }
         if (gotWeapon)
         {
             playerInterface.Translate();
         }
         GameSettings.ChangeHurtIndicator(hurtIndicator, colors[11], colors[8]);
     }
     else
     {
         GameSettings.ChangeHurtIndicator(hurtIndicator, colors[8]);
         GameChallenges.HandleEvent(GameChallenges.EventTypes.enemyKilled);
         Destroy(enemy.gameObject);
     }
     // dying animation
     Destroy(this);
 }
Exemple #5
0
 public void ModifyShootingCooldown(float value)
 {
     shootingCooldownModifier *= value;
     UpdateShootingSpeedText();
     takenShootingSpeedModifiers++;
     GameChallenges.HandleEvent(GameChallenges.EventTypes.tookShootingSpeedModifier, takenShootingSpeedModifiers);
 }
Exemple #6
0
 protected override void MakeStep()
 {
     currentSpeed        = ModifiedSpeed(GameSettings.speed);
     transform.position += new Vector3(0, 0, currentSpeed);
     distance           += currentSpeed;
     GameChallenges.HandleEvent(GameChallenges.EventTypes.changedDistance, distance);
 }
Exemple #7
0
 public void ModifyDamage(float value)
 {
     damageModifier *= value;
     reservedDamage  = (int)Mathf.Floor(reservedDamage * value);
     UpdateDamageText();
     takenDamageModifiers++;
     GameChallenges.HandleEvent(GameChallenges.EventTypes.tookShootingSpeedModifier, takenDamageModifiers);
 }
Exemple #8
0
 public void Stabbing()
 {
     stabbedTime = 3f;
     StopCoroutine(stabCycle);
     stabCycle = StabCycle();
     StartCoroutine(stabCycle);
     takenInjuries++;
     GameChallenges.HandleEvent(GameChallenges.EventTypes.tookInjury, takenInjuries);
 }
Exemple #9
0
 private void Shooting()
 {
     playerBody.transform.rotation = Quaternion.Lerp(playerBody.transform.rotation, Quaternion.Euler(0, 180, 0), Time.deltaTime * divDelay);
     if (!ready)
     {
         if (currentShootingCooldown < shootingDelay)
         {
             currentShootingCooldown = shootingDelay;
         }
         ready = true;
     }
     else
     {
         if (currentShootingCooldown <= 0)
         {
             ammo--;
             if (ammo == 0)
             {
                 GameChallenges.HandleEvent(GameChallenges.EventTypes.emptyAmmo);
             }
             UpdateAmmoText();
             spent++;
             UpdateDamageText();
             {
                 int currentDamage = (int)(Mathf.Floor(damage * damageModifier)) + (int)(Mathf.Floor(damage * damageModifier * spent * spentModifier)) + reservedDamage;
                 UpdateScore(currentDamage);
                 if (!invulnerable)
                 {
                     currentHealthPoints -= currentDamage;
                     if (currentHealthPoints <= 0)
                     {
                         currentHealthPoints = 0;
                         if (alive)
                         {
                             StartCoroutine(MonsterDying());
                         }
                     }
                     UpdateHealthBar();
                 }
                 if (currentWeapon != -1)
                 {
                     weapons[currentWeapon].Fire();
                 }
             }
             currentShootingCooldown = shootingCooldown * shootingCooldownModifier;
         }
     }
 }
Exemple #10
0
    public void FillAmmo(int amount)
    {
        ammo += amount;
        int difference = ammo - maxAmmo;

        if (difference > 0)
        {
            ammo = maxAmmo;
        }
        else
        {
            difference = 0;
        }
        UpdateAmmoText();
        takenAmmo += amount - difference;
        GameChallenges.HandleEvent(GameChallenges.EventTypes.tookAmmo, takenAmmo);
    }
 public static void GameResult(bool won)
 {
     if (won)
     {
         winWindow.Translate();
         GameChallenges.VisualizeStarsAtTheEnd();
     }
     else
     {
         instance.StopCoroutine(hurtIndicatorOnDying);
         loseWindow.Translate();
     }
     gameOver = true;
     instance.StopCoroutine(dark);
     dark = darkScreen.ChangeAlpha();
     instance.StartCoroutine(dark);
     instance.StartCoroutine(hurtIndicatorColor);
 }
Exemple #12
0
    private IEnumerator MonsterDying()
    {
        enemy.Dying();
        alive = false;
        if (!invulnerable)
        {
            healthBarHandler.Translate();
        }
        if (gotWeapon)
        {
            playerInterface.Translate();
        }
        GameSettings.ChangeHurtIndicator(hurtIndicator, colors[8]);
        yield return(new WaitForSeconds(2f));

        //launch win animation
        GameChallenges.HandleEvent(GameChallenges.EventTypes.enemyKilled);
        Destroy(enemy.gameObject);
        Destroy(this);
    }
Exemple #13
0
 private void UpdateTimer()
 {
     timeSpent += Time.deltaTime;
     GameChallenges.HandleEvent(GameChallenges.EventTypes.changedTime, timeSpent);
     millisecondsSpent += Time.deltaTime;
     if (millisecondsSpent >= 1)
     {
         secondsSpent++;
         millisecondsSpent--;
     }
     if (secondsSpent > 60)
     {
         minutesSpent++;
         secondsSpent -= 60;
     }
     if (minutesSpent == 0)
     {
         timeText.text = secondsSpent.ToString() + millisecondsSpent.ToString(".##");
     }
     else
     {
         timeText.text = minutesSpent.ToString() + ':' + secondsSpent.ToString("D2") + millisecondsSpent.ToString(".##");
     }
 }
Exemple #14
0
 private void Awake()
 {
     instance = this as GameChallenges;
 }