-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCreature_All.hpp
126 lines (85 loc) · 3.24 KB
/
Creature_All.hpp
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#pragma once
#ifndef WORLDSIM_CREATURE_ALL_HPP
#define WORLDSIM_CREATURE_ALL_HPP
/* WorldSim: Creature_All.hpp
#include"Creature_All.hpp"
*/
#include "Creature.hpp"
class Creature_Bat: public Creature
{
public:
Creature_Bat();
~Creature_Bat();
void init( int _sex = 0);
virtual void incrementTicks (int nTicks) override;
virtual void attack (Creature*, Creature_Attack*) override;
virtual void attack (Character*, Creature_Attack*) override;
virtual void wander() override;
virtual Texture* currentTexture() override;
virtual std::string getName() override;
};
// Test creatures. They will later be given some vaeriety once the basic wildlife modelling is in place.
// Herbivore which hangs out in groups and grazes on grass. Obviously only present in grassy biomes.
// An example would be zebras or horses.
// They are individually weak and slow but safe in large packs. Generally the old or sick animals will fall behind and be eaten by carnivores.
class Creature_HerbivoreGrazing: public Creature
{
public:
Creature_HerbivoreGrazing();
~Creature_HerbivoreGrazing();
void init( int _sex = 0);
virtual void incrementTicks (int nTicks) override;
virtual void attack (Creature*, Creature_Attack*) override;
virtual void attack (Character*, Creature_Attack*) override;
virtual void wander() override;
virtual Texture* currentTexture() override;
virtual std::string getName() override;
};
// Herbivore which travels in family groups and ranges over medium or long distances to find food.
// An example would be deer or camels
// They rely on speed and alertness to escape predators.
class Creature_HerbivoreScavenging: public Creature
{
public:
Creature_HerbivoreScavenging();
~Creature_HerbivoreScavenging();
void init( int _sex = 0);
virtual void incrementTicks (int nTicks) override;
virtual void attack (Creature*, Creature_Attack*) override;
virtual void attack (Character*, Creature_Attack*) override;
virtual void wander() override;
virtual Texture* currentTexture() override;
virtual std::string getName() override;
};
// Carnivores which hunt in packs. Examples would be hyenas or wolves.
// They rely on teamwork to attack larger creatures
class Creature_CarnivorePack: public Creature
{
public:
Creature_CarnivorePack();
~Creature_CarnivorePack();
void init( int _sex = 0);
virtual void incrementTicks (int nTicks) override;
virtual void attack (Creature*, Creature_Attack*) override;
virtual void attack (Character*, Creature_Attack*) override;
virtual void wander() override;
virtual Texture* currentTexture() override;
virtual std::string getName() override;
};
// Carnivores which hunt alone or in family groups. They rely on their
// individual strength to catch prey.
// An example would be bears.
class Creature_CarnivoreSolo: public Creature
{
public:
Creature_CarnivoreSolo();
~Creature_CarnivoreSolo();
void init( int _sex = 0);
virtual void incrementTicks (int nTicks) override;
virtual void attack (Creature*, Creature_Attack*) override;
virtual void attack (Character*, Creature_Attack*) override;
virtual void wander() override;
virtual Texture* currentTexture() override;
virtual std::string getName() override;
};
#endif