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; } }
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; } }
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; } } }
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); } } } } }
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; } }
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; } }
PowerUpScript CreatePowerUpPref(PowerUp.Type type) { GameObject go = Instantiate(powerUpPref, powerUpGrid, false); var ps = go.GetComponent <PowerUpScript>(); powerUpsList.Add(ps); ps.SetData(type); return(ps); }
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); }
BonusScr CreateBonus(PowerUp.Type type) { GameObject go = Instantiate(Bonus, BonusGrid, false); var ps = go.GetComponent <BonusScr>(); powerups.Add(ps); ps.SetData(type); return(ps); }
PowerupScr CreatePowerupPref(PowerUp.Type type) // Инстанциируем префаб и возвращем созданный паверап { GameObject go = Instantiate(PowerupPref, PowerupGrid, false); var ps = go.GetComponent <PowerupScr>(); powerups.Add(ps); ps.SetData(type); return(ps); }
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(); } } }
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)); } }
PowerUpScr createPowerUpPref(PowerUp.Type type) { GameObject go = Instantiate(PowerUpPref, PowerUpGrid, false); PowerUpScr p = go.GetComponent <PowerUpScr>(); powerups.Add(p); p.SetData(type); return(p); }
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(); } }
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); } }
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()); } }
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); } } }
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; } } }
/// <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); }
/// <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; } }
/// <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"); } }
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); }
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); }
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(); }
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); }
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); }
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; } }
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; } }