Fliegende Einheiten ertrinken

Aussserdem: Verschieben der Astralraumänderungen (wg. schwerem Magiepatzer)
This commit is contained in:
Enno Rehling 2005-07-01 22:54:14 +00:00
parent 61e063cb66
commit b125e84ada
6 changed files with 12 additions and 16 deletions

View File

@ -3733,7 +3733,7 @@ monthly_healing(void)
if (fval(u, UFL_HUNGER)) continue; if (fval(u, UFL_HUNGER)) continue;
if (fspecial(u->faction, FS_UNDEAD)) continue; if (fspecial(u->faction, FS_UNDEAD)) continue;
if (rterrain(r)==T_OCEAN && u->ship==NULL && !canswim(u)) continue; if (rterrain(r)==T_OCEAN && u->ship==NULL && !(canswim(u) || canfly(u))) continue;
if(fspecial(u->faction, FS_REGENERATION)) { if(fspecial(u->faction, FS_REGENERATION)) {
u->hp = umhp; u->hp = umhp;

View File

@ -737,7 +737,7 @@ drown(region *r)
ADDMSG(&u->faction->msgs, new_message(u->faction, ADDMSG(&u->faction->msgs, new_message(u->faction,
"drown_amphibian_nodead%u:unit%r:region",u, r)); "drown_amphibian_nodead%u:unit%r:region",u, r));
} }
} else if (!canswim(u)) { } else if (!(canswim(u) || canfly(u))) {
scale_number(u, 0); scale_number(u, 0);
ADDMSG(&u->faction->msgs, new_message(u->faction, ADDMSG(&u->faction->msgs, new_message(u->faction,
"drown%u:unit%r:region", u, r)); "drown%u:unit%r:region", u, r));

View File

@ -356,10 +356,6 @@ canwalk(unit * u)
boolean boolean
canfly(unit *u) canfly(unit *u)
{ {
if (get_movement(&u->attribs, MV_CANNOTMOVE)) return false;
if (get_item(u, I_HORSE) || get_item(u, I_UNICORN)) return false;
if (get_item(u, I_PEGASUS) >= u->number && effskill(u, SK_RIDING) >= 4) if (get_item(u, I_PEGASUS) >= u->number && effskill(u, SK_RIDING) >= 4)
return true; return true;
@ -373,10 +369,6 @@ canfly(unit *u)
boolean boolean
canswim(unit *u) canswim(unit *u)
{ {
if (get_movement(&u->attribs, MV_CANNOTMOVE)) return false;
if (get_item(u, I_HORSE) || get_item(u, I_UNICORN)) return false;
if (get_item(u, I_DOLPHIN) >= u->number && effskill(u, SK_RIDING) >= 4) if (get_item(u, I_DOLPHIN) >= u->number && effskill(u, SK_RIDING) >= 4)
return true; return true;
@ -1247,11 +1239,14 @@ travel_route(unit * u, region_list * route_begin, region_list * route_end, order
/* Ozeanfelder können nur von Einheiten mit Schwimmen und ohne /* Ozeanfelder können nur von Einheiten mit Schwimmen und ohne
* Pferde betreten werden. */ * Pferde betreten werden. */
if (rterrain(next) == T_OCEAN && !canswim(u)) { if (rterrain(next) == T_OCEAN) {
ADDMSG(&u->faction->msgs, msg_message("detectocean", if (!(canswim(u) || canfly(u))) {
"unit region", u, next)); ADDMSG(&u->faction->msgs, msg_message("detectocean",
break; "unit region", u, next));
break;
}
} }
} }
/* movement blocked by a wall */ /* movement blocked by a wall */

View File

@ -55,6 +55,7 @@ extern void run_to(struct unit * u, struct region * to);
extern struct unit *is_guarded(struct region * r, struct unit * u, unsigned int mask); extern struct unit *is_guarded(struct region * r, struct unit * u, unsigned int mask);
extern int enoughsailors(const struct ship * sh, const struct region * r); extern int enoughsailors(const struct ship * sh, const struct region * r);
extern boolean canswim(struct unit *u); extern boolean canswim(struct unit *u);
extern boolean canfly(struct unit *u);
extern struct unit *get_captain(const struct ship * sh); extern struct unit *get_captain(const struct ship * sh);
extern void travelthru(const struct unit * u, struct region * r); extern void travelthru(const struct unit * u, struct region * r);
extern struct ship * move_ship(struct ship * sh, struct region * from, struct region * to, struct region_list * route); extern struct ship * move_ship(struct ship * sh, struct region * from, struct region * to, struct region_list * route);

View File

@ -5553,7 +5553,7 @@ sp_sweetdreams(castorder *co)
/* Zieleinheit */ /* Zieleinheit */
u = pa->param[n]->data.u; u = pa->param[n]->data.u;
if (!ucontact(u, mage, HELP_GUARD)) { if (!ucontact(u, mage)) {
cmistake(mage, co->order, 40, MSG_EVENT); cmistake(mage, co->order, 40, MSG_EVENT);
continue; continue;
} }

View File

@ -37,7 +37,7 @@
#define HUNGER_REDUCES_SKILL /* Hunger reduziert den Talentwert #define HUNGER_REDUCES_SKILL /* Hunger reduziert den Talentwert
auf die Hälfte */ auf die Hälfte */
#define ASTRAL_ITEM_RESTRICTIONS /* keine grossen dinge im astralraum */ #undef ASTRAL_ITEM_RESTRICTIONS /* keine grossen dinge im astralraum */
#define MUSEUM_MODULE #define MUSEUM_MODULE
#define ARENA_MODULE #define ARENA_MODULE