diff --git a/Map.cpp b/Map.cpp index a0a505d..67f53d2 100644 --- a/Map.cpp +++ b/Map.cpp @@ -187,22 +187,46 @@ void Map::createRoom(bool first, int x1, int y1, int x2, int y2, bool withActors void Map::addMonster(int x, int y) { TCODRandom* rng = TCODRandom::getInstance(); if (rng->getInt(0, 100) < 80) { - // create an orc - Actor* orc = new Actor(x, y, "o", "orc", - engine->gui->green); - orc->destructible = new MonsterDestructible(10, 0, "dead orc", 5); - orc->attacker = new Attacker(3); - orc->ai = new MonsterAi(); - engine->actors.push(orc); + // create weak monster + if (engine->level < 5) { + // create an rat + Actor* orc = new Actor(x, y, "r", "rat", + engine->gui->purple); + orc->destructible = new MonsterDestructible(10, 0, "dead rat", 5); + orc->attacker = new Attacker(3); + orc->ai = new MonsterAi(); + engine->actors.push(orc); + } + else { + // create an orc + Actor* orc = new Actor(x, y, "o", "orc", + engine->gui->green); + orc->destructible = new MonsterDestructible(15, 0, "dead orc", 7); + orc->attacker = new Attacker(4.5f); + orc->ai = new MonsterAi(); + engine->actors.push(orc); + } } else { - // create a troll - Actor* troll = new Actor(x, y, "T", "troll", - engine->gui->lightGreen); - troll->destructible = new MonsterDestructible(16, 1, "troll carcass", 10); - troll->attacker = new Attacker(4); - troll->ai = new MonsterAi(); - engine->actors.push(troll); + // create strong monster + if (engine->level < 5) { + // create an snake + Actor* orc = new Actor(x, y, "S", "snake", + engine->gui->green); + orc->destructible = new MonsterDestructible(16, 0, "dead snake", 10); + orc->attacker = new Attacker(4); + orc->ai = new MonsterAi(); + engine->actors.push(orc); + } + else { + // create a troll + Actor* troll = new Actor(x, y, "T", "troll", + engine->gui->lightGreen); + troll->destructible = new MonsterDestructible(20, 1, "troll carcass", 15); + troll->attacker = new Attacker(7); + troll->ai = new MonsterAi(); + engine->actors.push(troll); + } } }