My Project
 
Loading...
Searching...
No Matches
blob.h
Go to the documentation of this file.
1#pragma once
2
3#include "actor.h"
4#include "level.h"
5#include "bpt.h"
6#include "typedefine.h"
7
8class BlobEmitter;
9class Blob :public Actor{
10public:
11 static const int WIDTH = Level::WIDTH;
12 static const int HEIGHT = Level::HEIGHT;
13 static const int LENGTH = Level::LENGTH;
14
15 int volume;
16
17 std::vector<int> cur;
18
20
21 virtual void storeInBundle(Bundle* bundle);
22 virtual void restoreFromBundle(Bundle* bundle);
23 virtual bool act();
24 virtual void use(BlobEmitter* emitter){ this->emitter = emitter; }
25 void seed(int cell, int amount);
26 void clear(int cell);
27 virtual std::string tileDesc() { return ""; }
28 static Blob* seed(int cell, int amount, const std::string& type);
29protected:
30 std::vector<int> off;
31 Blob();
32 virtual void evolve();
33private:
34 static const std::string CUR;
35 static const std::string START;
36
37 std::vector<int> trim(int start, int end);
38};
39
41
42class BlobFire :public Blob{
43protected:
44 virtual void evolve();
45
46private:
47 void burn(int pos);
48
49public:
51
52 void seed(int cell, int amount);
53 virtual void use(BlobEmitter* emitter);
54
55 virtual String tileDesc() {
56 return BPT::getText("lang.blobfire_tiledesc");;
57 }
58};
59
60class ConfusionGas :public Blob{
61public:
63 virtual void use(BlobEmitter* emitter);
64 virtual String tileDesc() {
65 return BPT::getText("lang.ConfusionGas_tileDesc");// "A cloud of confusion gas is swirling here.";
66 }
67protected:
68 virtual void evolve();
69};
70
71class ParalyticGas :public Blob{
72protected:
73 virtual void evolve();
74
75public:
77 virtual void use(BlobEmitter* emitter);
78 virtual String tileDesc() {
79 return BPT::getText("lang.ParalyticGas_tileDesc");// "A cloud of paralytic gas is swirling here.";
80 }
81};
Actor()
Definition actor.cpp:84
static void clear()
Definition actor.cpp:157
static std::string getText(const std::string &key)
Definition bpt.cpp:26
Definition blobemitter.h:6
Definition blob.h:42
virtual String tileDesc()
Definition blob.h:55
CLASSNAME(BlobFire)
virtual void use(BlobEmitter *emitter)
Definition blob.cpp:266
void seed(int cell, int amount)
Definition blob.cpp:258
virtual void evolve()
Definition blob.cpp:193
Definition blob.h:9
static const int HEIGHT
Definition blob.h:12
virtual void use(BlobEmitter *emitter)
Definition blob.h:24
int volume
Definition blob.h:15
BlobEmitter * emitter
Definition blob.h:19
virtual std::string tileDesc()
Definition blob.h:27
Blob()
Definition blob.cpp:135
virtual void storeInBundle(Bundle *bundle)
Definition blob.cpp:27
void seed(int cell, int amount)
Definition blob.cpp:104
static const int WIDTH
Definition blob.h:11
virtual bool act()
Definition blob.cpp:86
static const int LENGTH
Definition blob.h:13
std::vector< int > off
Definition blob.h:30
virtual void restoreFromBundle(Bundle *bundle)
Definition blob.cpp:56
std::vector< int > cur
Definition blob.h:17
virtual void evolve()
Definition blob.cpp:143
Definition blob.h:60
CLASSNAME(ConfusionGas)
virtual String tileDesc()
Definition blob.h:64
virtual void evolve()
Definition blob.cpp:274
virtual void use(BlobEmitter *emitter)
Definition blob.cpp:286
static const int WIDTH
Definition level.h:26
static const int LENGTH
Definition level.h:28
static const int HEIGHT
Definition level.h:27
Definition blob.h:71
CLASSNAME(ParalyticGas)
virtual void use(BlobEmitter *emitter)
Definition blob.cpp:307
virtual String tileDesc()
Definition blob.h:78
virtual void evolve()
Definition blob.cpp:295
#define FACTORY(name)
Definition typedefine.h:89
std::string String
Definition typedefine.h:8