Untitled

mail@pastecode.io avatar
unknown
csharp
5 months ago
1.7 kB
2
Indexable
using UnityEngine;
using System.Collections.Generic;

[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(Collider2D))]
public class Fireball : MonoBehaviour
{
    public float radius = 1f;
    public float damage = 10f;

    private Rigidbody2D rb;
    private HashSet<GameObject> hitEnemies;
    public SpriteRenderer sr;

    private void Awake()
    {
        // Obtém o Rigidbody2D anexado
        rb = GetComponent<Rigidbody2D>();
        rb.isKinematic = true; // Torna o Rigidbody cinemático para controle manual do movimento

        // Inicializa a lista de inimigos atingidos
        hitEnemies = new HashSet<GameObject>();
    }

    private void OnEnable()
    {
        // Limpa a lista de inimigos atingidos quando a fireball é reativada
        hitEnemies.Clear();
    }

    public void SetRadius(float newRadius)
    {
        radius = newRadius;
        sr.transform.localScale = new Vector3(radius * 2, radius * 2, 1); // Ajusta o tamanho do sprite
        transform.localScale = new Vector3(radius * 2, radius * 2, 1); // Ajusta o tamanho da Fireball
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("enemy"))
        {
            if (!hitEnemies.Contains(collision.gameObject))
            {
                // Registra o inimigo na lista de atingidos
                hitEnemies.Add(collision.gameObject);

                // colocar funções de dano, pushback aqui.
                var enemy = collision.GetComponent<Transform>();
                if (enemy != null)
                {
                    //
                }
            }
        }
    }
}
Leave a Comment