//
// Created by main on 31-10-22.
//

#ifndef FUGG_ELEMENT_H
#define FUGG_ELEMENT_H

#include <cstdint>
#include <ostream>

namespace flyff {
    enum class Element : uint32_t {
        None,
        Fire,
        Water,
        Electricity,
        Air,
        Earth
    };

    static std::ostream &operator<<(std::ostream &os, const Element &element) {
        switch(element) {
            case Element::None:
                os << "None";
                break;
            case Element::Fire:
                os << "Fire";
                break;
            case Element::Water:
                os << "Water";
                break;
            case Element::Electricity:
                os << "Electricity";
                break;
            case Element::Air:
                os << "Air";
                break;
            case Element::Earth:
                os << "Earth";
                break;
            default:
                os << "Element(" << static_cast<unsigned>(element) << ")";
                break;
        }
        return os;
    }
};


#endif //FUGG_ELEMENT_H
