/
Crossbow.h
28 lines (20 loc) · 1009 Bytes
/
Crossbow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef DATA_CROSSBOW_H
#define DATA_CROSSBOW_H
#include <map>
#include <string>
#include "Data/Weapon.h"
namespace data {
class Crossbow : public Weapon {
public:
virtual ~Crossbow();
static void init();
static const std::map<const std::string, const Crossbow*>& crossbows();
protected:
Crossbow(const std::string& name, int cost, int weight, char category, int material, unsigned long long properties, bool one_handed, int alignment, const Attack& as0, const Attack& as1, const Attack& as2, const Attack& al0, const Attack& al1, const Attack& al2);
static void addToMap(const std::string& name, const Crossbow* crossbow);
private:
static std::map<const std::string, const Crossbow*> _crossbows;
static void create(const std::string& name, int cost, int weight, const Attack& as0, const Attack& as1, const Attack& as2, const Attack& al0, const Attack& al1, const Attack& al2, int material, char category, unsigned long long properties, bool one_handed, int alignment);
};
}
#endif