reworked potion priority (5 -> 3) (5 is too much)
This commit is contained in:
@ -97,11 +97,9 @@ enum potion_type : int {restore_health = 0, boost_atk, boost_def,
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Calculation priorities
|
// Calculation priorities
|
||||||
static const int CALC_ADD_BASE = 0;
|
static const int CALC_BASE = 0;
|
||||||
static const int CALC_MUL_BASE = 1;
|
static const int CALC_MID = 1;
|
||||||
static const int CALC_ADD_LATER = 2;
|
static const int CALC_LAST = 2;
|
||||||
static const int CALC_MUL_LATER = 3;
|
|
||||||
static const int CALC_ADD_FIXED = 4;
|
|
||||||
|
|
||||||
|
|
||||||
static const int DIRECTION_CNT = 8;
|
static const int DIRECTION_CNT = 8;
|
||||||
|
@ -12,14 +12,17 @@ void boost_atk::apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
|||||||
fraction &base_hit_rate) {
|
fraction &base_hit_rate) {
|
||||||
if (remaining_duration != 0) {
|
if (remaining_duration != 0) {
|
||||||
int tmp = BOOST_ATK;
|
int tmp = BOOST_ATK;
|
||||||
if (race == rdrow) tmp *= DROW_POTION_MUL;
|
|
||||||
|
if (race == rdrow)
|
||||||
|
tmp *= DROW_POTION_MUL;
|
||||||
|
|
||||||
ATK += tmp;
|
ATK += tmp;
|
||||||
--remaining_duration;
|
--remaining_duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int boost_atk::get_priority() const {
|
int boost_atk::get_priority() const {
|
||||||
return CALC_ADD_BASE;
|
return CALC_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *boost_atk::get_name() const {
|
const char *boost_atk::get_name() const {
|
||||||
|
@ -11,14 +11,17 @@ void boost_def::apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
|||||||
fraction &base_hit_rate) {
|
fraction &base_hit_rate) {
|
||||||
if (remaining_duration != 0) {
|
if (remaining_duration != 0) {
|
||||||
int tmp = BOOST_DEF;
|
int tmp = BOOST_DEF;
|
||||||
if (race == rdrow) tmp *= DROW_POTION_MUL;
|
|
||||||
DEF += tmp;
|
if (race == rdrow)
|
||||||
|
tmp *= DROW_POTION_MUL;
|
||||||
|
|
||||||
|
DEF += tmp;
|
||||||
--remaining_duration;
|
--remaining_duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int boost_def::get_priority() const {
|
int boost_def::get_priority() const {
|
||||||
return CALC_ADD_BASE;
|
return CALC_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *boost_def::get_name() const {
|
const char *boost_def::get_name() const {
|
||||||
|
@ -10,14 +10,17 @@ void poison_health::apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
|||||||
fraction &base_hit_rate) {
|
fraction &base_hit_rate) {
|
||||||
if (remaining_duration != 0) {
|
if (remaining_duration != 0) {
|
||||||
int tmp = LOSE_HEALTH;
|
int tmp = LOSE_HEALTH;
|
||||||
if (race == rdrow) tmp *= DROW_POTION_MUL;
|
|
||||||
HP = std::max(HP - tmp, 0);
|
if (race == rdrow)
|
||||||
|
tmp *= DROW_POTION_MUL;
|
||||||
|
|
||||||
|
HP = std::max(HP - tmp, 0);
|
||||||
--remaining_duration;
|
--remaining_duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int poison_health::get_priority() const {
|
int poison_health::get_priority() const {
|
||||||
return CALC_ADD_BASE;
|
return CALC_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *poison_health::get_name() const {
|
const char *poison_health::get_name() const {
|
||||||
|
@ -10,14 +10,17 @@ void restore_health::apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
|||||||
fraction &base_hit_rate) {
|
fraction &base_hit_rate) {
|
||||||
if (remaining_duration != 0) {
|
if (remaining_duration != 0) {
|
||||||
int tmp = GAIN_HEALTH;
|
int tmp = GAIN_HEALTH;
|
||||||
if (race == rdrow) tmp *= DROW_POTION_MUL;
|
|
||||||
|
if (race == rdrow)
|
||||||
|
tmp *= DROW_POTION_MUL;
|
||||||
|
|
||||||
HP = std::min(HP + tmp, MAX_HP[race]);
|
HP = std::min(HP + tmp, MAX_HP[race]);
|
||||||
--remaining_duration;
|
--remaining_duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int restore_health::get_priority() const {
|
int restore_health::get_priority() const {
|
||||||
return CALC_ADD_BASE;
|
return CALC_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *restore_health::get_name() const {
|
const char *restore_health::get_name() const {
|
||||||
|
@ -3,9 +3,6 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "../constants.h"
|
#include "../constants.h"
|
||||||
|
|
||||||
const int WOUND_ATK = 5;
|
|
||||||
const int WOUND_ATK_DROW = 7;
|
|
||||||
|
|
||||||
wound_atk::wound_atk(const position &pos):
|
wound_atk::wound_atk(const position &pos):
|
||||||
potion{potion_type::wound_atk, -1, pos} {}
|
potion{potion_type::wound_atk, -1, pos} {}
|
||||||
|
|
||||||
@ -13,14 +10,17 @@ void wound_atk::apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
|||||||
fraction &base_hit_rate) {
|
fraction &base_hit_rate) {
|
||||||
if (remaining_duration != 0) {
|
if (remaining_duration != 0) {
|
||||||
int tmp = WOUND_ATK;
|
int tmp = WOUND_ATK;
|
||||||
if (race == rdrow) tmp *= DROW_POTION_MUL;
|
|
||||||
|
if (race == rdrow)
|
||||||
|
tmp *= DROW_POTION_MUL;
|
||||||
|
|
||||||
ATK = std::max(ATK - tmp, 0);
|
ATK = std::max(ATK - tmp, 0);
|
||||||
--remaining_duration;
|
--remaining_duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int wound_atk::get_priority() const {
|
int wound_atk::get_priority() const {
|
||||||
return CALC_ADD_BASE;
|
return CALC_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *wound_atk::get_name() const {
|
const char *wound_atk::get_name() const {
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "../constants.h"
|
#include "../constants.h"
|
||||||
|
|
||||||
|
|
||||||
wound_def::wound_def(const position &pos):
|
wound_def::wound_def(const position &pos):
|
||||||
potion{potion_type::wound_def, -1, pos} {}
|
potion{potion_type::wound_def, -1, pos} {}
|
||||||
|
|
||||||
@ -11,14 +10,17 @@ void wound_def::apply(const enum race &race, int &HP, int &ATK, int &DEF,
|
|||||||
fraction &base_hit_rate) {
|
fraction &base_hit_rate) {
|
||||||
if (remaining_duration != 0) {
|
if (remaining_duration != 0) {
|
||||||
int tmp = WOUND_DEF;
|
int tmp = WOUND_DEF;
|
||||||
if (race == rdrow) tmp *= DROW_POTION_MUL;
|
|
||||||
|
if (race == rdrow)
|
||||||
|
tmp *= DROW_POTION_MUL;
|
||||||
|
|
||||||
DEF = std::max(DEF - tmp, 0);
|
DEF = std::max(DEF - tmp, 0);
|
||||||
--remaining_duration;
|
--remaining_duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int wound_def::get_priority() const {
|
int wound_def::get_priority() const {
|
||||||
return CALC_ADD_BASE;
|
return CALC_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *wound_def::get_name() const {
|
const char *wound_def::get_name() const {
|
||||||
|
Reference in New Issue
Block a user