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 }