//--------------------------------- 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); }
private void UpdateScore(int value) { score += (int)Mathf.Floor(value * scoreModifier); scoreModifier *= 1 + spentModifier; scoreText.text = score.ToString(); GameChallenges.HandleEvent(GameChallenges.EventTypes.changedScore, score); }
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); } }
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); }
public void ModifyShootingCooldown(float value) { shootingCooldownModifier *= value; UpdateShootingSpeedText(); takenShootingSpeedModifiers++; GameChallenges.HandleEvent(GameChallenges.EventTypes.tookShootingSpeedModifier, takenShootingSpeedModifiers); }
protected override void MakeStep() { currentSpeed = ModifiedSpeed(GameSettings.speed); transform.position += new Vector3(0, 0, currentSpeed); distance += currentSpeed; GameChallenges.HandleEvent(GameChallenges.EventTypes.changedDistance, distance); }
public void ModifyDamage(float value) { damageModifier *= value; reservedDamage = (int)Mathf.Floor(reservedDamage * value); UpdateDamageText(); takenDamageModifiers++; GameChallenges.HandleEvent(GameChallenges.EventTypes.tookShootingSpeedModifier, takenDamageModifiers); }
public void Stabbing() { stabbedTime = 3f; StopCoroutine(stabCycle); stabCycle = StabCycle(); StartCoroutine(stabCycle); takenInjuries++; GameChallenges.HandleEvent(GameChallenges.EventTypes.tookInjury, takenInjuries); }
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; } } }
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); }
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); }
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(".##"); } }
private void Awake() { instance = this as GameChallenges; }