// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class Enchant {

#define AFTER_EXTRA

#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_ENCHANT
public:
    class Enchant& operator=(class Enchant const &) = delete;
    Enchant(class Enchant const &) = delete;
    Enchant() = delete;
#endif

public:
    /*0*/ virtual ~Enchant();
    /*1*/ virtual bool isCompatibleWith(enum Enchant::Type) const;
    /*2*/ virtual int getMinCost(int) const;
    /*3*/ virtual int getMaxCost(int) const;
    /*4*/ virtual int getMinLevel() const;
    /*5*/ virtual int getMaxLevel() const;
    /*6*/ virtual int getDamageProtection(int, class ActorDamageSource const &) const;
    /*7*/ virtual float getDamageBonus(int, class Actor const &) const;
    /*8*/ virtual void doPostAttack(class Actor &, class Actor &, int) const;
    /*9*/ virtual void doPostHurt(class ItemInstance &, class Actor &, class Actor &, int) const;
    /*10*/ virtual bool isMeleeDamageEnchant() const;
    /*11*/ virtual bool isProtectionEnchant() const;
    /*12*/ virtual bool isTreasureOnly() const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_ENCHANT
#endif
    MCAPI Enchant(enum Enchant::Type, enum Enchant::Frequency, std::string const &, std::string const &, int, int, bool);
    MCAPI bool isAvailable() const;
    MCAPI static void initEnchants(bool);
    MCAPI static std::vector<std::unique_ptr<class Enchant>> mEnchants;

//protected:

protected:
    MCAPI static bool mAllowExperimental;

};