Ejemplo n.º 1
0
    public IEnumerator provideAnimation(bool playerTurn, Transform dest, SkillEffect.Effect effect, TileMeta.GemType gem)
    {
        Glossary  glossy = PanelManager.instance.glossaryObj.GetComponent <Glossary>();
        Transform start  = GameObject.Find("HMonsterImg").transform;

        if (!playerTurn)
        {
            start = GameObject.Find("MMonsterImg").transform;
        }

        GameObject throwObj;
        bool       playerToGem = true;

        if (effect == SkillEffect.Effect.Change)
        {
            throwObj = glossy.GetParticleSystem("MagicParticleSystem");
            StartCoroutine(sendProjectile(throwObj, playerToGem, start, dest, effect, gem, Vector3.one));
        }
        else if (effect == SkillEffect.Effect.Sabotage)
        {
            throwObj = glossy.GetParticleSystem("PoisonParticleSystem");
            String[] playerPanels = new String[] { "HClick1", "HClick2", "HClick3", "HClick4" };
            String[] enemyPanels  = new String[] { "MClick1", "MClick2", "MClick3", "MClick4" };

            List <String> destinations = new List <string>();
            for (int i = 0; i < (playerTurn ? PanelManager.instance.getComputerSkills() : PanelManager.instance.getPlayerSkills()).Count; i++)
            {
                string    thisDest = playerTurn ? enemyPanels[i] : playerPanels[i];
                Transform newDest  = GameObject.Find(thisDest).transform;
                StartCoroutine(sendProjectile(throwObj, playerToGem, start, newDest, effect, gem, Vector3.one));
            }
        }
        else
        {
            throwObj    = glossy.GetParticleSystem("ExplosionParticleSystem");
            playerToGem = false;
            StartCoroutine(sendProjectile(throwObj, playerToGem, start, dest, effect, gem, Vector3.one));
        }

        yield return(null);
    }
Ejemplo n.º 2
0
    public IEnumerator sendProjectile(GameObject obj, bool playerToGem, Transform start, Transform dest, SkillEffect.Effect effect, TileMeta.GemType gem, Vector3 scale)
    {
        Vector3 sPos = new Vector3(start.position.x, start.position.y, 80);
        Vector3 ePos = new Vector3(dest.position.x, dest.position.y, 80);

        GameObject projectile = Instantiate(obj, playerToGem ? sPos : ePos, Quaternion.identity);

        projectile.transform.localScale = scale;

        projectile.GetComponent <ParticleSystem>().Play();
        if (effect != SkillEffect.Effect.Sabotage && effect != SkillEffect.Effect.None)
        {
            projectile.GetComponent <ParticleSystem>().startColor = SkillEffect.ColorGem(gem);
        }
        iTween.MoveTo(projectile, playerToGem ? ePos : sPos, animationWait - .1f);
        yield return(new WaitForSeconds(animationWait));

        Destroy(projectile);
    }