예제 #1
0
    protected virtual void Pick(Character _whoPicks)
    {
        VisualEffects.CreateVisualEffect(pickVfx, transform);

        Destroy(gameObject);

        return;
    }
예제 #2
0
 protected virtual void OnCollisionEnter(Collision _collision)
 {
     foreach (string tag in damageComponent.DamageTags)
     {
         if (_collision.gameObject.CompareTag(tag))
         {
             VisualEffects.CreateVisualEffect(hitVfx, transform);
             PoolsManager.ReturnObjectToPools(this);
         }
     }
 }
예제 #3
0
파일: StealCorn.cs 프로젝트: mono26/Spooky
    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;
    }
예제 #4
0
 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);
     }
 }
예제 #5
0
    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;
    }
예제 #6
0
    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;
    }
예제 #7
0
    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;
    }