41 lines
845 B
C++
41 lines
845 B
C++
#ifndef ICOSTCOMPONENT_H
|
|
#define ICOSTCOMPONENT_H
|
|
|
|
#include <bitset>
|
|
#include "../model/Community.h"
|
|
#include "../Config.h"
|
|
|
|
class ICostComponent {
|
|
protected:
|
|
enum NET_LEVEL
|
|
{
|
|
NetLevel1,
|
|
NetLevel2,
|
|
NetLevel3,
|
|
NetLevel4,
|
|
NetLevel5,
|
|
NetLevel6,
|
|
NetLevel7mp,
|
|
NetLevel7op,
|
|
NetLevel7unt
|
|
};
|
|
enum MEASUREMENT_TYPE
|
|
{
|
|
NIEDER_WANDLERZAEHLER,
|
|
MITTLE_WANDLERZAEHLER,
|
|
DREHSTROM_ZEAHLUNG
|
|
};
|
|
public:
|
|
std::bitset<MAX_CONDITIONS> applicableConditions;
|
|
|
|
template<typename... Conditions>
|
|
explicit ICostComponent(Conditions... conditions) {
|
|
}
|
|
|
|
virtual ~ICostComponent() = default;
|
|
|
|
virtual void apply(std::unique_ptr<Building::Base> &building, std::unique_ptr<Community> &community) = 0;
|
|
};
|
|
|
|
#endif //ICOSTCOMPONENT_H
|