IEnumerator PostEffectTimer(PostEffect postEffect) { PostEffect.PostEffectType postEffectType = postEffect.type; switch (postEffectType) { case PostEffect.PostEffectType.BURN: { for (int i = 0; i < 3; ++i) { Color oldColor = spriteRenderer.color; postEffect.PerformEffect(); yield return(new WaitForSeconds(0.3f)); spriteRenderer.color = oldColor; yield return(new WaitForSeconds(0.8f)); } break; } case PostEffect.PostEffectType.FREEZE: { postEffect.PerformEffect(); yield return(new WaitForSeconds(2f)); } break; default: break; } postEffect.RevertEffect(); }
public override void OnAttack(Transform targetTransform, Color color, GameObject effect = null, GameObject projectile = null, PostEffect.PostEffectType pEffect = PostEffect.PostEffectType.NONE) { GameObject temp = Instantiate(effect, new Vector3(targetTransform.position.x, targetTransform.position.y, targetTransform.position.z), Quaternion.identity) as GameObject; GameObject tArea = Instantiate(Character.instance.meleeAttackArea, new Vector3(targetTransform.position.x, targetTransform.position.y, targetTransform.position.z), Quaternion.identity) as GameObject; AttackAreaDamage Area = tArea.GetComponent <AttackAreaDamage>(); Area.damage = Character.instance.weapon.GetDamage(); Area.typesToAttack.Add("Enemy"); Area.typesToAttack.Add("Enemy"); Area.postEffect = pEffect; temp.GetComponent <SpriteRenderer>().color = color; Vector3 newLocalScale = temp.transform.localScale; if (Character.instance.transform.localScale.x > 0) { newLocalScale.x = 1f - 0.3f; } else { newLocalScale.x = -1f + 0.3f; } temp.transform.localScale = newLocalScale; }
public abstract void OnAttack(Transform targetTransform, Color color, GameObject effect = null, GameObject projectile = null, PostEffect.PostEffectType pEffect = PostEffect.PostEffectType.NONE);
public override void OnAttack(Transform targetTransform, Color color, GameObject effect = null, GameObject projectile = null, PostEffect.PostEffectType pEffect = PostEffect.PostEffectType.NONE) { //effect.GetComponent<SpriteRenderer>().color = color; //Instantiate(effect, new Vector3(targetTransform.position.x, targetTransform.position.y, targetTransform.position.z), Quaternion.identity); GameObject temp = Instantiate(projectile, new Vector3(targetTransform.position.x, targetTransform.position.y, targetTransform.position.z), Quaternion.identity) as GameObject; Projectile tProjectile = temp.GetComponent <Projectile>(); tProjectile.typesToAttack = new List <string>(); tProjectile.typesToAttack.Add("Enemy"); tProjectile.damage = Character.instance.weapon.GetDamage(); tProjectile.SetSpeed(2.0f); tProjectile.postEffect = pEffect; tProjectile.GetComponentInChildren <SpriteRenderer>().color = color; Vector3 newLocalScale = tProjectile.transform.localScale; if (Character.instance.transform.localScale.x > 0) { if (tProjectile != null && tProjectile.xScale != 0) { newLocalScale.x = 1f + tProjectile.xScale; } else { newLocalScale.x = 1f - 0.3f; } tProjectile.GetComponent <Projectile>().SetSpeed(1f * 7.0f); } else { if (tProjectile != null && tProjectile.xScale != 0) { newLocalScale.x = -1f - tProjectile.xScale; } else { newLocalScale.x = -1f + 0.3f; } tProjectile.GetComponent <Projectile>().SetSpeed(-1f * 7.0f); } tProjectile.transform.localScale = newLocalScale; }