#pragma once
#include <string>
#define F(attr) GetFloat(attr)
#define I(attr) GetInt(attr)
#define S(attr) GetString(attr)
#define B(attr) GetBool(attr)
#define V(attr) GetVf2d(attr)

enum class Attribute{
    IFRAME_TIME_UPON_HIT, //When this is set, the monster gains iframes if they take damage based on the value this is set to.
    SHOOT_RING_TIMER,
    SHOOT_RING_DELAY,
    SHOOT_RING_COUNTER,
    SHOOT_RING_RIGHT,
    SHOOT_RING_OFFSET,
    PATTERN_REPEAT_COUNT,
    JUMP_ORIGINAL_LANDING_TIMER,
    JUMP_LANDING_TIMER,
    JUMP_TARGET_POS,
    RECOVERY_TIME,
    SHOOT_ANIMATION_TIME,
    SHOOT_TIMER,
    JUMP_MOVE_SPD,
    JUMP_COUNT,
    CASTING_TIMER,
    RUN_AWAY_TIMER,
    PHASE_REPEAT_COUNT,
    JUMP_TOWARDS_PLAYER,
    HITS_UNTIL_DEATH, //When this is set, it is reduced by 1 each time the monster is hit.
    INDEXED_THEME,
    SCROLL_OFFSET,
    CLASS_SELECTION, //A class name that represents what the menu's class is.
    LOADOUT_SLOT, //Which loadout slot we are selecting an item for.
    ALLOW_DRAGGING, //Whether or not to allow inventory dragging.
};