forked from github/server
fix for flee spell
This commit is contained in:
parent
4ee01be75f
commit
5a595bd315
|
@ -6195,21 +6195,21 @@ static int sp_flee(castorder *co) {
|
||||||
if (co->force <= 0) {
|
if (co->force <= 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return flee_spell(co, 4);
|
return flee_spell(co, 4, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sp_song_of_fear(castorder *co) {
|
static int sp_song_of_fear(castorder *co) {
|
||||||
if (co->force <= 0) {
|
if (co->force <= 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return flee_spell(co, 3);
|
return flee_spell(co, 3, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sp_aura_of_fear(castorder *co) {
|
static int sp_aura_of_fear(castorder *co) {
|
||||||
if (co->force <= 0) {
|
if (co->force <= 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return flee_spell(co, 5);
|
return flee_spell(co, 5, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sp_armor_shield(struct castorder * co) {
|
static int sp_armor_shield(struct castorder * co) {
|
||||||
|
|
|
@ -861,7 +861,7 @@ static bool select_afraid(const side *vs, const fighter *fig, void *cbdata)
|
||||||
|
|
||||||
/* Gesang der Furcht (Kampfzauber) */
|
/* Gesang der Furcht (Kampfzauber) */
|
||||||
/* Panik (Praekampfzauber) */
|
/* Panik (Praekampfzauber) */
|
||||||
int flee_spell(struct castorder * co, int strength)
|
int flee_spell(struct castorder * co, int strength, bool wounded)
|
||||||
{
|
{
|
||||||
fighter * fi = co->magician.fig;
|
fighter * fi = co->magician.fig;
|
||||||
int level = co->level;
|
int level = co->level;
|
||||||
|
@ -882,7 +882,7 @@ int flee_spell(struct castorder * co, int strength)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
fgs = select_fighters(b, fi->side, FS_ENEMY, select_afraid, NULL);
|
fgs = select_fighters(b, fi->side, FS_ENEMY, wounded?select_afraid:select_alive, NULL);
|
||||||
scramble_fighters(fgs);
|
scramble_fighters(fgs);
|
||||||
|
|
||||||
for (qi = 0, ql = fgs; force > 0 && ql; selist_advance(&ql, &qi, 1)) {
|
for (qi = 0, ql = fgs; force > 0 && ql; selist_advance(&ql, &qi, 1)) {
|
||||||
|
@ -895,7 +895,7 @@ int flee_spell(struct castorder * co, int strength)
|
||||||
++panik;
|
++panik;
|
||||||
}
|
}
|
||||||
else if (!(df->person[n].flags & FL_COURAGE)
|
else if (!(df->person[n].flags & FL_COURAGE)
|
||||||
|| !(u_race(df->unit)->flags & RCF_UNDEAD)) {
|
&& !(u_race(df->unit)->flags & RCF_UNDEAD)) {
|
||||||
if (!is_magic_resistant(mage, df->unit, 0)) {
|
if (!is_magic_resistant(mage, df->unit, 0)) {
|
||||||
df->person[n].flags |= FL_PANICED;
|
df->person[n].flags |= FL_PANICED;
|
||||||
++panik;
|
++panik;
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef H_GC_COMBATSPELLS
|
#ifndef H_GC_COMBATSPELLS
|
||||||
#define H_GC_COMBATSPELLS
|
#define H_GC_COMBATSPELLS
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,7 +38,7 @@ extern "C" {
|
||||||
int sp_undeadhero(struct castorder * co);
|
int sp_undeadhero(struct castorder * co);
|
||||||
int sp_immolation(struct castorder * co);
|
int sp_immolation(struct castorder * co);
|
||||||
|
|
||||||
int flee_spell(struct castorder * co, int strength);
|
int flee_spell(struct castorder * co, int strength, bool wounded);
|
||||||
int damage_spell(struct castorder * co, int dmg, int strength);
|
int damage_spell(struct castorder * co, int dmg, int strength);
|
||||||
int armor_spell(struct castorder * co, int per_level, int time_multi);
|
int armor_spell(struct castorder * co, int per_level, int time_multi);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue