class DamageInfo { public: enum DamageType { NORMAL, FIRE, ICE, ELECTRIC, POISON }; DamageType type; int amount; std::string source; bool critical; DamageInfo(DamageType t, int a, std::string s, bool c) : type(t), amount(a), source(s), critical(c) {} };In the above example, we define the DamageInfo class with an enumeration for different types of damage, an integer for the amount of damage, a string for the source of the damage, and a boolean for whether the damage was critical or not. We also provide a constructor to initialize these values. Package library: The DamageInfo class is not included in any standard C++ library but rather it is typically used within game engines or other simulation software where damage calculations play an important role. Therefore, this class may be found in libraries specific to these purposes, such as the Unreal Engine or Unity.