//public GameObject fireEffectPrefab;
    public override void Attack(GameObject source, Vector3 contactPoint, float AttackArg1, float AttackArg2, float AttackArg3, float AttackArg4, Collider collider, GameObject effect, GameObject effect2)
    {
        //float Damage, float timeInterval, float iteration

        IBurnable burnableObject = collider.GetComponent <IBurnable>();

        try{
            if (burnableObject != null)
            {
                burnableObject.TakeFire(AttackArg1, AttackArg2, (int)AttackArg3, contactPoint, effect);
            }
            else if ((string.Compare(collider.tag, "Enemy") == 0))
            {
                if (collider.transform.parent.parent.parent.parent.GetComponent <IBurnable>() != null)
                {
                    collider.transform.parent.parent.parent.parent.GetComponent <IBurnable>().TakeFire(AttackArg1, AttackArg2, (int)AttackArg3, contactPoint, effect);
                }
            }
            else
            {
                Destroy(Instantiate(effect.gameObject, contactPoint + 0.3f * Vector3.up, Quaternion.identity) as GameObject, 3f);
            }
        }
        catch (NullReferenceException e) {}
        //Destroy(source);
        source.SetActive(false);
    }