Esempio n. 1
0
    public void Init(Vector2 orgPos, Vector2 targetPos, float progressTime)
    {
        Vector2 dir = (targetPos - orgPos).normalized;

        transform.rotation = Quaternion.Euler(new Vector3(0, 0, Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg));
        this.StartCoroutine(AnimationUtil.MoveAnimationCoroutine(gameObject, orgPos, targetPos, progressTime));
        this.StartCoroutine(AnimationUtil.DespawnAnimationCoroutine(gameObject, progressTime));
    }
Esempio n. 2
0
    public IEnumerator SpellCoroutine(Player player, Vector2 position)
    {
        if (preEffectPrefab != null)
        {
            GameObject preEffect = GameData.field.Spawn(preEffectPrefab, position);
            CoroutineManager.RegisterCoroutine(AnimationUtil.DespawnAnimationCoroutine(preEffect, preDelay));
        }
        yield return(new WaitForSeconds(preDelay));

        List <GameEntity> gameEntityList = GameData.field.FindEnemyGameEntityRadius(position, player.team, radius);

        for (int i = 0; i < gameEntityList.Count; i++)
        {
            gameEntityList[i].HitDamage(damage);
        }
        if (damageEffectPrefab != null)
        {
            GameObject damageEffect = GameData.field.Spawn(damageEffectPrefab, position);
            CoroutineManager.RegisterCoroutine(AnimationUtil.DespawnAnimationCoroutine(damageEffect, damageEffectExposureTime));
        }
    }