/// <summary>
 /// Returns the associated data table if it has been added to the data manager
 /// </summary>
 /// <param name="AttackTable"></param>
 /// <returns></returns>
 public AttackDataTable GetAttackDataTable(AttackDataTable AttackTable)
 {
     if (AttackDataTableDictionary.ContainsKey(AttackTable.name))
     {
         return(AttackDataTableDictionary[AttackTable.name]);
     }
     return(null);
 }
    /// <summary>
    /// Returns the attack instance of the data table associated with this
    /// </summary>
    /// <param name="AttackTable"></param>
    /// <param name="AttackHash"></param>
    /// <param name="AttackData"></param>
    /// <param name="MultiHitIndex"></param>
    /// <returns></returns>
    public bool GetAttackDataFromAttackDataTable(AttackDataTable AttackTable, int AttackHash, out FAttackData AttackData)
    {
        AttackDataTable InstancedAttackTable = GetAttackDataTable(AttackTable);

        if (InstancedAttackTable == null)
        {
            AttackData = default;
            return(false);
        }

        return(InstancedAttackTable.GetAttackDataFromAnimationClipHash(AttackHash, out AttackData));
    }
 /// <summary>
 /// Add an attack table that we will reference
 /// </summary>
 /// <param name="AttackTable"></param>
 public void AddAttackDataTable(AttackDataTable AttackTable)
 {
     if (AttackTable == null)
     {
         Debug.LogWarning("Null Attack Table was passed in");
         return;
     }
     if (!AttackDataTableDictionary.ContainsKey(AttackTable.name))
     {
         AttackDataTableDictionary.Add(AttackTable.name, GameObject.Instantiate <AttackDataTable>(AttackTable));
     }
 }