fixed: adjacent merchants under The World will now no move unless hostile
fixed typo
This commit is contained in:
@ -348,7 +348,7 @@ const char *POTIONS_LIST = "\
|
|||||||
Gets 3x final ATK multiplier;\n\
|
Gets 3x final ATK multiplier;\n\
|
||||||
Gets 0.5x final DEF multiplier;\n\
|
Gets 0.5x final DEF multiplier;\n\
|
||||||
Lasts 12 turns.\n\n\
|
Lasts 12 turns.\n\n\
|
||||||
- Bezerk Brew (BB):\n\
|
- Berzerk Brew (BB):\n\
|
||||||
Gets 2x basic ATK multiplier;\n\
|
Gets 2x basic ATK multiplier;\n\
|
||||||
Gets 0.5x basic DEF multiplier;\n\
|
Gets 0.5x basic DEF multiplier;\n\
|
||||||
Lasts 15 turns.\n\n\
|
Lasts 15 turns.\n\n\
|
||||||
|
@ -96,7 +96,7 @@ enum potion_type : int {RESTORE_HEALTH = 0, BOOST_ATK, BOOST_DEF,
|
|||||||
POISON_HEALTH, WOUND_ATK, WOUND_DEF,
|
POISON_HEALTH, WOUND_ATK, WOUND_DEF,
|
||||||
CONTINUOUS_RESTORATION, SAVAGE_STRIKE,
|
CONTINUOUS_RESTORATION, SAVAGE_STRIKE,
|
||||||
ECHOING_RESIL, TEMPEST_TANTRUM,
|
ECHOING_RESIL, TEMPEST_TANTRUM,
|
||||||
BEZERK_BREW, BORROW_LIFE,
|
BERZERK_BREW, BORROW_LIFE,
|
||||||
FINE_BOOZE, IRONCLAD_WARD
|
FINE_BOOZE, IRONCLAD_WARD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
12
src/game.cc
12
src/game.cc
@ -91,10 +91,14 @@ character *game::move_enemies() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (the_world && !(is_adjacent(ch->get_pos(), player->get_pos()) ||
|
if (ch->get_race() == MERCHANT) {
|
||||||
(ch->get_race() == DRAGON &&
|
if (!hostile_merchants)
|
||||||
is_adjacent(static_cast<dragon * >(ch)->get_guards(),
|
continue;
|
||||||
player->get_pos()))))
|
} else 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;
|
continue;
|
||||||
|
|
||||||
bool hostile = ch->get_race() == MERCHANT ?
|
bool hostile = ch->get_race() == MERCHANT ?
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#include "potions/savage_strike.h"
|
#include "potions/savage_strike.h"
|
||||||
#include "potions/echoing_resilience.h"
|
#include "potions/echoing_resilience.h"
|
||||||
#include "potions/tempest_tantrum.h"
|
#include "potions/tempest_tantrum.h"
|
||||||
#include "potions/bezerk_brew.h"
|
#include "potions/berzerk_brew.h"
|
||||||
#include "potions/borrow_life.h"
|
#include "potions/borrow_life.h"
|
||||||
#include "potions/fine_booze.h"
|
#include "potions/fine_booze.h"
|
||||||
#include "potions/ironclad_ward.h"
|
#include "potions/ironclad_ward.h"
|
||||||
@ -48,8 +48,8 @@ std::unique_ptr<potion> new_potion(potion_type type, const position &pos) {
|
|||||||
case TEMPEST_TANTRUM:
|
case TEMPEST_TANTRUM:
|
||||||
return std::make_unique<tempest_tantrum>(pos);
|
return std::make_unique<tempest_tantrum>(pos);
|
||||||
|
|
||||||
case BEZERK_BREW:
|
case BERZERK_BREW:
|
||||||
return std::make_unique<bezerk_brew>(pos);
|
return std::make_unique<berzerk_brew>(pos);
|
||||||
|
|
||||||
case BORROW_LIFE:
|
case BORROW_LIFE:
|
||||||
return std::make_unique<borrow_life>(pos);
|
return std::make_unique<borrow_life>(pos);
|
||||||
|
24
src/potions/berzerk_brew.cc
Normal file
24
src/potions/berzerk_brew.cc
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "berzerk_brew.h"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include "../constants.h"
|
||||||
|
|
||||||
|
berzerk_brew::berzerk_brew(const position &pos):
|
||||||
|
potion{potion_type::BERZERK_BREW, DURATION, pos} {}
|
||||||
|
|
||||||
|
void berzerk_brew::apply(const enum race &race, int &HP, int &ATK,
|
||||||
|
int &DEF, fraction &base_hit_rate) {
|
||||||
|
if (remaining_duration != 0) {
|
||||||
|
ATK *= ATK_MUL * (race == DROW ? DROW_POTION_MUL : 1);
|
||||||
|
DEF *= DEF_MUL * (race == DROW ? DROW_POTION_MUL : 1);
|
||||||
|
--remaining_duration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int berzerk_brew::get_priority() const {
|
||||||
|
return CALC_MID;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *berzerk_brew::get_name() const {
|
||||||
|
return "BB";
|
||||||
|
}
|
@ -1,14 +1,14 @@
|
|||||||
#ifndef __BEZERK_BREW_H__
|
#ifndef __BERZERK_BREW_H__
|
||||||
#define __BEZERK_BREW_H__
|
#define __BERZERK_BREW_H__
|
||||||
|
|
||||||
#include "../potion.h"
|
#include "../potion.h"
|
||||||
|
|
||||||
class bezerk_brew final: public potion {
|
class berzerk_brew final: public potion {
|
||||||
static const int ATK_MUL = 2;
|
static const int ATK_MUL = 2;
|
||||||
inline static const float DEF_MUL = 0.5f;
|
inline static const float DEF_MUL = 0.5f;
|
||||||
static const int DURATION = 15;
|
static const int DURATION = 15;
|
||||||
public:
|
public:
|
||||||
bezerk_brew(const position &pos);
|
berzerk_brew(const position &pos);
|
||||||
void apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
void apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
||||||
fraction &base_hit_rate) override;
|
fraction &base_hit_rate) override;
|
||||||
int get_priority() const override;
|
int get_priority() const override;
|
@ -1,24 +0,0 @@
|
|||||||
#include "bezerk_brew.h"
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include "../constants.h"
|
|
||||||
|
|
||||||
bezerk_brew::bezerk_brew(const position &pos):
|
|
||||||
potion{potion_type::BEZERK_BREW, DURATION, pos} {}
|
|
||||||
|
|
||||||
void bezerk_brew::apply(const enum race &race, int &HP, int &ATK,
|
|
||||||
int &DEF, fraction &base_hit_rate) {
|
|
||||||
if (remaining_duration != 0) {
|
|
||||||
ATK *= ATK_MUL * (race == DROW ? DROW_POTION_MUL : 1);
|
|
||||||
DEF *= DEF_MUL * (race == DROW ? DROW_POTION_MUL : 1);
|
|
||||||
--remaining_duration;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int bezerk_brew::get_priority() const {
|
|
||||||
return CALC_MID;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *bezerk_brew::get_name() const {
|
|
||||||
return "BB";
|
|
||||||
}
|
|
Reference in New Issue
Block a user