protected virtual void Pick(Character _whoPicks) { VisualEffects.CreateVisualEffect(pickVfx, transform); Destroy(gameObject); return; }
protected virtual void OnCollisionEnter(Collision _collision) { foreach (string tag in damageComponent.DamageTags) { if (_collision.gameObject.CompareTag(tag)) { VisualEffects.CreateVisualEffect(hitVfx, transform); PoolsManager.ReturnObjectToPools(this); } } }
protected override IEnumerator Action() { VisualEffects.CreateVisualEffect(actionVfx, character.transform); yield return(new WaitForSecondsRealtime( character.CharacterAnimator.GetCurrentAnimatorStateInfo(0).length + delayAfterAnimationIsFinished )); stoleValue = Mathf.Abs(Random.Range(minStealValue, maxStealValue)); LevelManager.Instance.LoseCrop(stoleValue); hasDrop = true; yield break; }
public void UpgradePlant() { if (currentBlueprint.upgradePlant != null) { // Pool plant Destroy(currentPlant.gameObject); // Manejarlo con eventos if (upgradeSound != null) { SoundManager.Instance.PlaySfx(soundSource, upgradeSound); } currentPlant = Instantiate(currentBlueprint.upgradePlant, transform.position, transform.rotation); isUpgraded = true; VisualEffects.CreateVisualEffect(upgradeVfx, transform); } }
public void PlantPlant(PlantBlueprint blueprint) { if (blueprint.plant != null) { // LevelManager.Instance.TakeMoney(blueprint.price); // LevelManager.Instance.UpdateMoneyDisplay(); if (buySound != null) { SoundManager.Instance.PlaySfx(soundSource, buySound); } currentPlant = Instantiate(blueprint.plant, transform.position, transform.rotation); currentBlueprint = blueprint; //PlantStore.Instance.DeselectCurrentActiveEmptyPlantpoint(); VisualEffects.CreateVisualEffect(buyVfx, transform); } return; }
public IEnumerator Kill() { PoolableObject poolableCharacter = GetComponent <PoolableObject>(); if (poolableCharacter != null) { yield return(CharacterDeath()); PoolsManager.ReturnObjectToPools(poolableCharacter); } else if (poolableCharacter == null) { yield return(CharacterDeath()); Destroy(gameObject); } VisualEffects.CreateVisualEffect(deathVfx, transform); yield break; }
public void TakeDamage(float _damage) { // We are laready dead. if (currentHealth == 0) { return; } StartCoroutine(ToggleHealthBar()); currentHealth -= _damage; VisualEffects.CreateVisualEffect(damageVfx, transform); PlayHitSfx(); currentHealth = Mathf.Max(0, currentHealth); healthBar.fillAmount = currentHealth / maxHealth; if (currentHealth == 0) { StartCoroutine(Kill()); } return; }