// AUTOMATICALLY GENERATED, DO NOT EDIT
using System;
using System.Runtime.InteropServices;

namespace Creaturelibbattling.Generated
{
    internal static class AttackTurnChoice
    {
        /// <param name="user">Creature *</param>
        /// <param name="attack">LearnedAttack *</param>
        /// <param name="sideIndex">unsigned char</param>
        /// <param name="targetIndex">unsigned char</param>
        /// <returns>AttackTurnChoice *</returns>
        [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackTurnChoice_Construct")]
        internal static extern IntPtr Construct(IntPtr user, IntPtr attack, byte sideIndex, byte targetIndex);

        /// <param name="p">const AttackTurnChoice *</param>
        /// <returns>LearnedAttack *</returns>
        [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackTurnChoice_GetAttack")]
        internal static extern IntPtr GetAttack(IntPtr p);

        /// <param name="p">const AttackTurnChoice *</param>
        /// <returns>TurnChoiceKind</returns>
        [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackTurnChoice_GetKind")]
        internal static extern TurnChoiceKind GetKind(IntPtr p);

        /// <param name="p">const AttackTurnChoice *</param>
        /// <returns>Script *</returns>
        [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackTurnChoice_GetAttackScript")]
        internal static extern IntPtr GetAttackScript(IntPtr p);

    }
}
