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); }
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); }