Field.cpp
 1  #include <stdlib.h>
 2  #include "Field.h"
 3  #include "Monster.h"
 4  #include "Player.h"
 5  
 6  Field::Field() : _monster(NULL)
 7  {
 8  
 9  }
10  
11  Field::~Field()
12  {
13  	if (_monster != NULL)
14  		delete _monster;
15  }
16  
17  void	Field::Update(Player* player)
18  {
19  	if (_monster == NULL)
20  		CreateMonster();
21  	StartBattle(player);
22  }
23  
24  void	Field::CreateMonster()
25  {
26  	int	randValue = 1 + rand() % 3;
27  	
28  	switch (randValue)
29  	{
30  		case MT_SLIME:
31  			_monster = new Slime();
32  			break;
33  		case MT_ORC:
34  			_monster = new Orc();
35  			break;
36  		case MT_SKELETON:
37  			_monster = new Skeleton();
38  			break;
39  	}
40  }
41  
42  void	Field::StartBattle(Player* player)
43  {
44  	while (true)
45  	{
46  		player->PrintInfo();
47  		_monster->PrintInfo();
48  
49  		_monster->OnAttacked(player);
50  		if (_monster->IsDead())
51  		{
52  			_monster->PrintInfo();
53  			delete _monster;
54  			_monster = NULL;
55  			break;
56  		}
57  
58  		player->OnAttacked(_monster);
59  		if (player->IsDead())
60  		{
61  			player->PrintInfo();
62  			break;
63  		}
64  	}
65  }