public void OnActivate()
    {
        if (called)
        {
            return;
        }

        ParticlesSceneObject effect = ObjectPool.instance.GetObjectForType("ExplotionEffectBoss", false) as ParticlesSceneObject;

        effect.SetColor(Color.red);
        Game.Instance.sceneObjectsManager.AddSceneObjectAndInitIt(effect, transform.position);

        if (marker != null)
        {
            marker.Pool();
        }

        called = true;
        CancelInvoke();

        if (boss.HasOnlyOneLifeLeft())
        {
            Data.Instance.events.OnProjectilStartSnappingTarget(transform.position);
        }

        boss.OnPartBroken(this);
        gameObject.SetActive(false);
    }
Beispiel #2
0
    public void Hitted()
    {
        if (called)
        {
            return;
        }
        if (bossAttackManager != null)
        {
            bossAttackManager.Reset();
        }

        ParticlesSceneObject effect = ObjectPool.instance.GetObjectForType("ExplotionEffectBoss", false) as ParticlesSceneObject;

        Data.Instance.events.OnSoundFX("punch", -1);
        lifes--;
        if (lifes > 0)
        {
            // progressBar.SetProgression((float)lifes / (float)totalLife);
            HittedAnim();
            effect.SetColor(Color.green);
            Game.Instance.sceneObjectsManager.AddSceneObjectAndInitIt(effect, transform.position);
        }
        else
        {
            effect.SetColor(Color.red);
            Game.Instance.sceneObjectsManager.AddSceneObjectAndInitIt(effect, transform.position);
        }
        boss.Hitted();
    }
Beispiel #3
0
    public void OnAddExplotion(Vector3 position, string _name, string _explotionEffect, string _explotionGift, int force, Color color)
    {
        Data.Instance.events.OnSoundFX("FX explot00", -1);
        Vector3 newPos = position;

        newPos.y -= 4;

        SceneObject explotionNew = ObjectPool.instance.GetObjectForType(_name, true);

        if (explotionNew == null)
        {
            // Debug.LogError("No hay explosion");
            return;
        }
        FXExplotion fxExplotion = explotionNew.GetComponent <FXExplotion> ();

        if (fxExplotion != null)
        {
            fxExplotion.SetSize(force);
        }

        // explotionNew.GetComponent<FXExplotion>()._scale = force;

        if (explotionNew)
        {
            Game.Instance.sceneObjectsManager.AddSceneObjectAndInitIt(explotionNew, newPos);
            explotionNew.GetComponent <FXExplotion> ().SetColor(color);
            //explotionNew.Restart (newPos);
        }

        if (_explotionEffect != "")
        {
            SceneObject explpotionEffect = ObjectPool.instance.GetObjectForType(_explotionEffect, true);
            if (explpotionEffect)
            {
                Game.Instance.sceneObjectsManager.AddSceneObject(explpotionEffect, newPos);
                // explpotionEffect.Restart(newPos);
                ParticlesSceneObject ps = explpotionEffect.GetComponent <ParticlesSceneObject>();
                if (ps != null)
                {
                    ps.SetColor(color);
                }
            }
        }

        if (Random.Range(0, 100) > 70 && Data.Instance.isArcadeMultiplayer)
        {
            Data.Instance.events.OnAddPowerUp(position);
        }
        else
        {
            AddHeartsByBreaking(position, 14, 470);
        }
    }
    public void OnAddExplotion(Vector3 position, string _name, string _explotionEffect, string _explotionGift, int force, Color color)
    {
        Data.Instance.events.OnSoundFX("FX explot00", -1);
        Vector3 newPos = position;

        newPos.y -= 4;

        SceneObject explotionNew = ObjectPool.instance.GetObjectForType(_name, true);

        if (explotionNew == null)
        {
            // Debug.LogError("No hay explosion");
            return;
        }

        explotionNew.GetComponent <FXExplotion>()._scale = force;

        if (explotionNew)
        {
            explotionNew.Restart(newPos);
        }

        if (_explotionEffect != "")
        {
            SceneObject explpotionEffect = ObjectPool.instance.GetObjectForType(_explotionEffect, true);
            if (explpotionEffect)
            {
                explpotionEffect.Restart(newPos);
                ParticlesSceneObject ps = explpotionEffect.GetComponent <ParticlesSceneObject>();
                if (ps != null)
                {
                    ps.SetColor(color);
                }
            }
        }

        if ((Data.Instance.playMode == Data.PlayModes.STORY && Data.Instance.missions.MissionActiveID < 7) ||
            !powerupsManager.CanBeThrown() ||
            Random.Range(0, 100) > 50 ||
            charactersManager.getDistance() < 300
            )
        {
            AddHeartsByBreaking(position, 12, 450);
        }
        else
        {
            Data.Instance.events.OnAddPowerUp(position);
        }
    }