Präkampfzauber beim Einrundenkampf kostet Aura

Ab sofort kosten Präkampfzauber immer Aura. Wer nicht will, dass sie gezaubert werden, möge sie abschalten, dafür gibt es einen Befehl. Ausserdem werden sie gezaubert, auch wenn der Magier auf KÄMPFE NICHT steht. Ein Mechanismus zur Verhinderung von Präkampfzaubern sollte reichen, zwei führen nur zu Fehlern und Verwirrung.
This commit is contained in:
Enno Rehling 2005-07-14 18:37:16 +00:00
parent 617457f3d6
commit f78105d262
2 changed files with 0 additions and 25 deletions

View File

@ -1480,9 +1480,7 @@ do_combatmagic(battle *b, combatmagic_t was)
for (fi = b->fighters.begin; fi != b->fighters.end; ++fi) { for (fi = b->fighters.begin; fi != b->fighters.end; ++fi) {
fighter * fig = *fi; fighter * fig = *fi;
unit * mage = fig->unit; unit * mage = fig->unit;
int row = get_unitrow(fig);
if (row>BEHIND_ROW) continue;
if (fig->alive <= 0) continue; /* fighter kann im Kampf getötet worden sein */ if (fig->alive <= 0) continue; /* fighter kann im Kampf getötet worden sein */
level = eff_skill(mage, SK_MAGIC, r); level = eff_skill(mage, SK_MAGIC, r);
@ -1549,9 +1547,6 @@ do_combatmagic(battle *b, combatmagic_t was)
level = ((cspell_f)sp->sp_function)(fig, level, power, sp); level = ((cspell_f)sp->sp_function)(fig, level, power, sp);
if (level > 0) { if (level > 0) {
pay_spell(fig->unit, sp, level, 1); pay_spell(fig->unit, sp, level, 1);
if (was == DO_PRECOMBATSPELL) {
get_mage(fig->unit)->precombataura = level;
}
} }
} }
} }
@ -2433,24 +2428,6 @@ aftermath(battle * b)
#endif #endif
} }
/* Wenn die Schlacht kurz war, dann gib Aura für den Präcombatzauber
* zurück. Nicht logisch, aber die einzige Lösung, den Verlust der
* Aura durch Dummy-Angriffe zu verhindern. */
cv_foreach(s, b->sides) {
if (s->bf->lastturn+(b->has_tactics_turn?1:0)<=1) continue;
/* Prüfung, ob faction angegriffen hat. Geht nur über die Faction */
if (!s->bf->attacker) {
fighter *fig;
cv_foreach(fig, s->fighters) {
sc_mage * mage = get_mage(fig->unit);
if (mage)
mage->spellpoints += mage->precombataura;
} cv_next(fig);
}
/* Alle Fighter durchgehen, Mages suchen, Precombataura zurück */
} cv_next(s);
/* validate_sides(b); */ /* validate_sides(b); */
/* POSTCOMBAT */ /* POSTCOMBAT */
do_combatmagic(b, DO_POSTCOMBATSPELL); do_combatmagic(b, DO_POSTCOMBATSPELL);

View File

@ -117,8 +117,6 @@ typedef struct sc_mage {
int spellcount; int spellcount;
spellid_t combatspell[MAXCOMBATSPELLS]; spellid_t combatspell[MAXCOMBATSPELLS];
int combatspelllevel[MAXCOMBATSPELLS]; int combatspelllevel[MAXCOMBATSPELLS];
int precombataura; /* Merker, wieviel Aura in den Präcombatzauber
gegangen ist. Nicht speichern. */
struct spell_ptr *spellptr; struct spell_ptr *spellptr;
} sc_mage; } sc_mage;