fixed dragon's ranged attack
This commit is contained in:
@ -16,6 +16,9 @@ long_result dragon::act(level *lvl, character *pc, bool hostile) {
|
||||
if (is_adjacent(pos, pc->get_pos()) && hostile)
|
||||
return attack(pc);
|
||||
|
||||
if (is_adjacent(guards, pc->get_pos()))
|
||||
return attack(pc);
|
||||
|
||||
return {NOTHING, ""};
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,6 @@
|
||||
#include "constants.h"
|
||||
#include "player.h"
|
||||
#include "level.h"
|
||||
#include "enemies/dragon.h"
|
||||
|
||||
enemy_base::enemy_base(RNG *rng, const feature enabled_features,
|
||||
const enum race &nrace, const position &pos,
|
||||
@ -18,10 +17,6 @@ int enemy_base::get_room_num() const {
|
||||
long_result enemy_base::act(level *lvl, character *pc, bool hostile) {
|
||||
if (is_adjacent(pos, pc->get_pos()) && hostile)
|
||||
return attack(pc);
|
||||
else if (race == DRAGON &&
|
||||
is_adjacent(static_cast<dragon * >(this)->get_guards(),
|
||||
pc->get_pos()))
|
||||
return attack(pc);
|
||||
|
||||
if (enabled_features & FEATURE_ENEMIES_CHASE && hostile &&
|
||||
distance_sqr(pos, pc->get_pos()) <= DIST_THRESHOLD_SQR) {
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include "constants.h"
|
||||
#include "pc.h"
|
||||
#include "enemies/dragon.h"
|
||||
|
||||
game::game(const enum race starting_race,
|
||||
const feature enabled_features,
|
||||
@ -90,7 +91,10 @@ character *game::move_enemies() {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (the_world && !is_adjacent(ch->get_pos(), player->get_pos()))
|
||||
if (the_world && !(is_adjacent(ch->get_pos(), player->get_pos()) ||
|
||||
(ch->get_race() == DRAGON &&
|
||||
is_adjacent(static_cast<dragon * >(ch)->get_guards(),
|
||||
player->get_pos()))))
|
||||
continue;
|
||||
|
||||
bool hostile = ch->get_race() == MERCHANT ?
|
||||
|
Reference in New Issue
Block a user