abbau von hp nur noch am ende der runde in regeneration

This commit is contained in:
Katja Zedel 2002-11-03 12:47:29 +00:00
parent 84c9609e25
commit 1d3f6a727e
2 changed files with 13 additions and 11 deletions

View File

@ -3197,27 +3197,28 @@ monthly_healing(void)
for (u = r->units; u; u = u->next) {
int umhp;
/* dann wirkt bei Untoten das Elixier der Macht ewig */
umhp = unit_max_hp(u) * u->number;
/* hp über Maximum bauen sich ab. Wird zb durch Elixier der Macht
* oder verändertes Ausdauertalent verursacht */
if (u->hp > umhp) {
u->hp -= (int) ceil((u->hp - umhp) / 2.0);
if (u->hp < umhp)
u->hp = umhp;
}
if((u->race->flags & RCF_NOHEAL) || fval(u, FL_HUNGER) || fspecial(u->faction, FS_UNDEAD))
continue;
if(rterrain(r) == T_OCEAN && !u->ship && !(canswim(u)))
continue;
umhp = unit_max_hp(u) * u->number;
if(fspecial(u->faction, FS_REGENERATION)) {
u->hp = umhp;
continue;
}
/* Effekt von Elixier der Macht schwindet */
if (u->hp > umhp) {
u->hp -= (int) ceil((u->hp - umhp) / 2.0);
if (u->hp < umhp)
u->hp = umhp;
}
else if (u->hp < umhp && (p=canheal(u)) > 0) {
if (u->hp < umhp && (p=canheal(u)) > 0) {
/* Mind 1 HP wird pro Runde geheilt, weil angenommen wird,
das alle Personen mind. 10 HP haben. */
int max_unit = max(umhp, u->number * 10);

View File

@ -671,7 +671,8 @@ move_unit(unit * u, region * r, unit ** ulist)
u->faction->first = 0;
u->faction->last = 0;
u->region = r;
if (maxhp>0) u->hp = u->hp * unit_max_hp(u) / maxhp;
/* keine automatische hp reduzierung bei bewegung */
/* if (maxhp>0) u->hp = u->hp * unit_max_hp(u) / maxhp; */
}
/* ist mist, aber wegen nicht skalierender attirbute notwendig: */